contents.gifindex.gifprev1.gifnext1.gif

2.12.3.1 Runtime handling of errors

The runtime system gracefully handles errors relating to shared code and network license management.

If the runtime cannot use shared code for some reason (such as acushare not being started or running out of shared memory), the program is loaded into conventional memory and execution continues.

If a new runtime process exceeds the limits specified in the site's license agreement, the new process exits gracefully with a message, and all other runtime processes continue uninterrupted.

If acushare stops running or is stopped while networked runtime processes are active, the runtime issues a warning message, to alert the user to restart acushare. If the runtime later detects that acushare has not been restarted, it exits.

If you have the runtime's warning messages enabled (see the WARNINGS configuration variable and the "-w" command line option), then certain errors will cause a warning message to be printed. These messages are:

"Shared memory and license manager (acushare) is not running"
This indicates either: (1) code sharing has been requested (with the SHARED-CODE configuration entry), but cannot be implemented because the acushare memory manager is not currently running, or (2) a multiple-user license is in effect, and a runtime process cannot register itself with acushare because acushare is not running. The runtime process will exit.

"Timeout waiting for reply from acushare"
A connection has been made with acushare, but acushare did not respond to a request within 15 seconds. This typically indicates that acushare has been killed. For sites having a multiple-user runtime license, a new runtime process that cannot register itself with acushare will exit.

For shared memory, execution will normally continue. If you kill acushare after some processes have attached to shared memory, those processes will continue to use the shared memory, but new processes will use conventional memory instead.

You can increase the length of time that an ACUCOBOL-GT process will wait for a response from acushare for license validation. To do this, set the environment variable ACUSHARE_TIMEOUT to the number of seconds you want the process to wait. The default is 15 seconds.

"Error sending message to acushare"
The system has returned an error of an unknown nature when it tried to send a message to acushare. On a network with a multiple-user license, a new process cannot continue if it cannot register itself with acushare.

For shared memory, execution will normally continue. If you kill acushare after some processes have attached to shared memory, those processes will continue to use the shared memory but new processes will use conventional memory instead.

The following error messages indicate a serious problem detected by the license manager. These messages are:

"You have exceeded the licensed number of users for ACUCOBOL. If you would like to add users, please contact your Customer Service representative at 1-800-262-6585"
A new runtime process cannot be registered with acushare, either because (1) the maximum number of licensed users has already been reached on the network, or (2) the maximum number of runtime processes has been reached. The new runtime process will exit.

"License manager (acushare) is not running"
This is a one-time message warning you that the runtime will exit soon if acushare is not restarted immediately. It indicates that a multiple-user license is in effect, and the runtime has detected that acushare has been stopped and not restarted.

"The license manager (acushare) has been killed and restarted. You have exceeded the licensed number of users for ACUCOBOL. If you would like to add users, please contact your Customer Service representative at 1-800-COBOL-85"
This message may follow the warning message listed immediately above. It indicates that a runtime process detected that acushare had been stopped and restarted, so the runtime attempted to re-register itself. However, it could not register itself, either because (1) the maximum number of licensed users had already been reached on the network, or (2) the maximum number of runtime processes had been reached. The runtime process will now exit.


Important: If there are no shared memory identifiers or message queue identifiers available, acushare will abort and print one of these error messages:

acushare: can't create shared memory

acushare: can't create message queue

These messages indicate that you do not have enough of the proper resource (either shared memory or message queues) configured in your system. Either your UNIX kernel does not have the resource configured, or all of the resource is in use by other programs. In either case, you should regenerate your UNIX kernel for more shared memory or message queues. Because network license management requires shared memory, you must be able to execute acushare to qualify for a multiple-user license.