LANSA Listener fails with references to LCOTPJOBS in joblog

Product/Release:All products
Abstract:LANSA Listener fails after being started
Submitted By:LANSA Technical Support
Last Review:December 2010

When trying to start the LANSA Listener, the Listener fails, and in the job log there are references to object "LCOTPJOBS".

There are two reasons why this might happen:

1. When there is more than one LANSA system on the AS/400 and there may be more than one Listener.

In the LANSA Communications Extensions for the Configuration Items under Communications Definitions there is a parameter called "User queue for session jobs".

User Queue for Session Jobs
The qualified name (library/user queue) of the AS/400 user queue used by the prestarted session jobs to make themselves available to the listener job. It must satisfy these requirements:

The nominated library must allow for user domain objects to be created in it (review the AS/400 system value QALWUSRDMN).

If left blank the default value of QUSRSYS/LCOTPJOBS is returned.

By default, both of the LANSA systems will use the QUSRSYS/LCOTPJOBS value when it has not been specified or left blank.

This results in error message MCH5802 in the joblog because one of the Listeners is then in a Wait status and then fails because it cannot lock the LCOTPJOBS queue.

Error example:

Message . . . . : Lock operation for object LCOTPJOBS not satisfied.
                     Cause . . . . . : The lock operation was not
satisfied for object LCOTPJOBS in the specified time interval of  9 seconds. 

The solution is to specify a user queue name for one or both of the LANSA systems.

Note: The configuration information for a LANSA Listener is stored in a data area called LCOA01. If multiple LANSA systems exist, it is recommended that a copy of this data area be created for each LANSA system. A suggestion is to create a copy in each LANSA program library only.

E.g:                Display Data Area 
Data area . . . . . . . : LCOA01 
Library . . . . . . . : DC@PGMLIB 
Type . . . . . . . . . : *CHAR 
Length . . . . . . . . : 1024 
Text . . . . . . . . . : LANSA Communications Extensions Definitions /PC=H8 

Offset *...+....1....+....2....+....3....+....4....+....5 
0     'QGPL/LCROUT.DAT          QGPL/LCROUT.TRC 000100QU'              
50    'SRSYS/LCOTPJOBS    *LISTENER            TP 000003'
100   '00300                                            ' 
150   '                                                 ' 
200   '                                                 ' 
250   '                                                 ' 
300   '                                                 ' 
350   '                                                 ' 
400   '                                                 ' 

2. Security and authority levels set for the AS/400 system.

The library specified for the user queue must allow for user domain objects to be created in it. This is set at system level through system value QALWUSRDMN.

Error message MCH6801 may also appear in the joblog if the system security  level is set at level 40 and above.

Message ID . . . . . . . . . :   MCH6801
Message file . . . . . . . . :   QCPFMSG
Library  . . . . . . . . . :     QSYS
Message . . . . :   Object domain or hardware storage protection violation.
Cause . . . . . :   An
attempt was made to use a blocked instruction or to access a
protected object from a program running with user state. The object
that was accessed is LOCTPJOBS. A protected object is one that is in the system
domain or which has storage protection attributes that restrict its use.
In most cases, this exception is signalled only at system security levels
40 and above. However, it is signalled at all security levels for some
objects when their storage protection attributes are incompatible with the
attempted use. The system objects that are always protected with the storage
protection mechanism are: programs (object type hex 02), except for
any associated space(s), modules (object type hex 03), except for any
associated space(s), SOM objects (object type hex 20), and any objects
with type value greater than hex 20.