LANSA Listener fails with references to LCOTPJOBS in joblog

Date:2 November 2004
Product/Release:All products
Abstract:LANSA/Listener fails after being started.
Submitted By:LANSA Technical Support
Last Review:November 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 pre-started 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 specfied 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 
    System: ABCDEFGH 
    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.