Team Development Projects and ZOM

ZOM provides services and features to support multi-person development teams. These capabilities can be used to identify and track changes, control changes, exchange changes between environments, and merge developments from one environment into another.

ZOM supports various development methodologies. Some of these are described in the following topics; however, ZOM can be applied in many ways to support other methodologies including customized approaches.

ZOM Requirements

All objects must be assigned valid directory names in your Object Dictionary to be accessible in ZOM. In other words, the directory name (i.e., DirName) attributes in your Object Dictionary must be assigned and cannot be left blank or null.

If you have objects defined in multiple directories, you must complete the DirName and FormDirName fields in the Object Dictionary (if they are blank or null) prior to using ZOM. If you do not, the ZOM services automatically assign a default directory name.

Note: You can select a default directory by using the ZOM configuration facility, ZOMConfig. Initially, the default directory is “Zim”.

Pre-Installation Steps for 64-bit Linux

Zim 9.50 requires changes in the configuration of the client and/or the server machines for its proper execution after installation.

The required configuration changes for different versions of Unix are listed below:

Installing Zim 9.50 on a 64-bit Machine

If your system is installed on a 64-bit architecture, the 32-bit architecture libraries must be added to the system such that you system will be able to execute Zim 9.50.

The steps below were based on the Debian 7 version of Linux. You may need to adapt the instructions to your system.

1. Check whether your system is 64-bits (x86_64) or 32-bits (i686)

2. Update your system to ensure there are no missing libraries

3. Add the i386 architecture libraries and update your system again

Increased Shared Memory

The size of the shared memory needed will depend on the particular configuration used by Zim Server.

If not enough memory is available, Zim Server will return an error informing the amount of shared memory needed.

Check the current size of the shared memory [Based on Debian 7]

 ipcs -lm

In the example above, the system will be able to execute any application smaller than 32Mb (32768 Kb) without any adjustment.

It should be enough to run Zim Server.

If you need to increase the size of the shared memory, take the following steps according to your system.

Note: In all examples below, NNN represents the size (in bytes) of shared memory needed.

Linux

Add the NNN value to shmmax

echo NNN > /proc/sys/kernel/shmmax

Increase the Number of Message Queues

Each Zim session requires two message queues.

1. Check the number of existing queues

ipcs -lq

2. If you need to increase the number of queues, edit the file /etc/sysctl.conf and add the following line

kernel.msgmni=QQQ

where QQQ is the number of message queues needed (that is, 2 * number of users).

3. Force the operating system to accept this new setting

/sbin/sysctl -p

Increase the Number of Open Files

Zim 9.50 now keeps open as many files as possible, that is, whenever data from a Zim file is requested, this file is opened by Zim Server and kept open until Zim Server is terminated.

Therefore, the maximum number of files open simultaneously must be increased to the sum of all  Zim files in databases being controlled by Zim Server.

1. Check the current maximum number of open files that the operating system supports

ulimit -n

2. If you need to increase this number, edit the file /etc/security/limits.conf and add the following lines

*               soft    nofile  NNNN
*               hard    nofile  MMMM

Where:

NNNN is a reasonable number needed by your Zim applications

MMMM is some maximum number (> NNNN, to be used in case NNNN is too low).

Suggested Values

root            soft    nofile  32767

root            hard    nofile  32767

*               soft    nofile  32767

*               hard    nofile  32767

3. Force the operating system to accept this new setting

ulimit -n NNNN

Update the System Control File

Update the file /etc/security/sysctl.conf with the following values. They should be adequate for most Zim 9 applications

kernel.sem=250 3200 100 128

fs.file-max=32767

net.core.rmem_default=262144

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=1048576

kernel.msgmnb=65536

kernel.msgmax=65536

kernel.shmmax=8192000000

kernel.sysrq=0

net.ipv4.conf.default.rp_filter=1

net.ipv4.tcp_syncookies=1

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.ip_forward=1

net.ipv4.tcp_timestamps=0

net.ipv4.conf.default.accept_source_route=0

kernel.shmall=268435456

kernel.core_uses_pid=1

✓You have finished the pre-installation procedure Zim 9.50 for Unix and you are now ready to install it

Pre-Installation Steps for Windows

Zim:X may require changes in the configuration of the client and/or the server machines for its proper execution after installation.

Increasing the Virtual Memory

Increasing the virtual memory may be necessary in case an out-of-memory error message occurs when Zim Server starts. Follow these steps to increase the virtual memory (a reboot of your system may be required):

Windows Servers:

  1. Open the Windows Control Panel;
  2. Select the System component;
  3. Select the Advanced tab;
  4. Select the Performance Options button;
  5. Select the virtual memory Change button;
  6. From the drive box, select the drive where Zim was installed;
  7. Choose Custom Size;
  8. Set the Initial Size and Maximum Size to the recommended values;
  9. Select the Set button to apply the changes;
10. Select the OK button.

Window 7 / Windows 8 / Windows 10 and Windows 11:

  1. Open the Windows Control Panel;
  2. Select the System component;
  3. Select the Performance link;
  4. Select the Advanced Tools link;
  5. Select the Adjust Appearance and performance of Windows tab;
  6. Select the Advanced tab;
  7. From the drive box, select the drive where Zim was installed;
  8. Choose Custom Size;
  9. Set the Initial Size and Maximum Size to the recommended values;
10. Select the Set button to apply the changes;
11. Select the OK button.

Troubleshooting an Application

Despite thorough testing, an application can experience operational problems. These problems can result from faulty coding or they can be environmental in origin (e.g., stemming from the interaction of the application and the operating system). In either case, the approach to troubleshooting an application uses the same three-step process:

1. Reproducing the Situation

A fundamental rule of problem-solving in any software system is that if you are unable to reproduce the problem, you are unable to solve it.

Some problems can be difficult to reproduce, but the following guidelines make reproduction simpler.

If a problem arises while you are running an application, make note of what was being done with the application at the time.

When you are ready to attempt to reproduce a problem, make the following preparations:

Back up all files.

Reproduce the external environment as closely as possible. If other processes were running, make sure they run during your test.

Try to carry out the same steps that you were performing when the error occurred. Remember to back up your files before each attempt to reproduce the error. Some problems are data dependent, and using the correct initial data can be crucial to successfully reproducing the error.

If you cannot cause the error to occur, the problem could also depend on commands executed earlier in the session. Try again, making sure to run through exactly the same steps that you did when the error first occurred.

During this phase, it is very important to make careful notes of all your actions; you want to be able to repeat, again and again, the exact situation that caused the problem. You should not be concerned at this point with eliminating unnecessary steps; you can deal with that question when you try to isolate the cause of the problem.

2. Isolating the Cause

Once a problem is reproducible, you can attempt to isolate its cause. Isolation involves eliminating potential causes until you have pinpointed exactly what causes the error to occur.

The following strategies can be used to determine the cause of an environmental problem:

Run the application on another computer system. This process helps to determine if hardware problems are involved.

Remove external processes from your system. If the problem does not recur, it could have been a result of system stresses created by these external processes, or the external processes could be interfering with your application.

Reduce memory requirements by changing various options in the configuration files (e.g., sort buffers,  maximum forms, etc.).

If possible, try changing your operating system configuration (e.g., system limits on resources, such as the number of files, number of locks, and so on) before running your application.

Try these strategies one at a time. If your problem disappears, you may have discovered its cause.

The object of the isolation process is to pinpoint the problem. For example, do not worry if reducing memory usage affects performance. If memory usage is causing the problem, at least you can trade some performance for correct operation.

3. Solving the Problem

Once you have isolated the problem, proceed with solving it.

If you have a hardware problem, components of your computer system can be repaired or replaced. Problems stemming from the operation of external processes can be prevented by ensuring that the external processes do not run simultaneously with the application. If the problem stems from memory usage, changes to the configuration files or memory allocation could be required.

pt_BRPortuguese