BEA Logo BEA MessageQ Release 5.0

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy


   MessageQ Doc Home   |   LU6.2 Services for OpenVMS User's Guide   |   Previous Topic   |   Next Topic   |   Contents   |   Index

LU6.2 User Callback Interface Logical Names and Error Codes


This appendix describes the logical names and error codes used in the LU6.2 User Callback Interface.

User Callback Logical Names

Table A-1 describes the logical names that affect the behavior of the LU6.2 User Callback, upon which the LU6.2 Port Server is based.

Table A-1 User Callback Support Logical Names

Use This Logical Name . . .

To . . .


Set the maximum size of buffers in the private buffer pool used by BEA MessageQ applications or set the buffer size to the actual expected size of the load. You can set the buffer size equal to the largest user data message plus 18 bytes, the number of bytes required for the buffer header. The minimum value is 100. The maximum value is 32,000 bytes. If this logical name is not defined, the buffer size is set equal to the size of the largest buffers defined in DMQ$INIT.TXT.


Set the size of the BEA MessageQ LU6.2 Services private buffer pool. Set the number of buffers equal to the number of LUs defined in the LU_TABLE configuration file plus 4. The minimum value is 20. The maximum value is 500. If this logical name is not defined, the buffer count is set equal to the number of large buffers defined in DMQ$INIT.TXT. The buffer pool must be large enough to hold all messages received from a remote IBM partner in a single burst or chain. For example:

If the remote IBM partner sends 100 messages in a response to a query from the BEA MessageQ client, DMQLU62$BUFFER_COUNT must be at least 100. If multiple active conversations receive traffic in large bursts, the value of DMQLU62$BUFFER_COUNT must be increased accordingly.

The BEA MessageQ LU6.2 Services Port Server logs a PAMSLU62_NOBUFFER error if DMQLU62$BUFFER_COUNT is inadequate. (For a description of PAMSLU62_NOBUFFER, see Table A-2.)


Define this logical name as any arbitrary value that enables selectable SYNC_LEVEL processing and allows you to set SYNC_LEVEL to 0 or 1 for each target in the TARGET_TABLE configuration file. Enabling DMQLU62$SELECT_SYNC overrides the disabling of CONFIRM by defining DMQLU62$DISABLE_CONFIRM. This value is not interpreted or otherwise used by the LU6.2 User Callback.


Explicitly disable CONFIRM processing. Disabling CONFIRM processing causes all conversations to operate at SYNC_LEVEL=NONE.
The LU62_REQ_CONFIRM message is ignored by the User Callback if CONFIRM processing is disabled. Note that DMQLU62$DISABLE_CONFIRM is ignored if DMQLU62$SELECT_SYNC is defined. This value is not interpreted or otherwise used by the LU6.2 User Callback.


When defined as a valid OpenVMS file specification, provides a trace of LU6.2 User Callback activity. Trace output shows each routine entered and the status returned by each APPC routine.

Linking a User-Written Port Server

To link a user-written port server with the LU6.2 User Callback, include the DMQLU62_LIB and MSG.LIB libraries in the following order, with the specified linker options files:

link /exe:user_prog.exe user_prog.obj,- 

Error Handling

The LU6.2 User Callback can return an error in two ways:

Table A-2 describes the error codes specific to the User Callback and the method by which they are delivered to the user.

Table A-2 User Callback Error Codes

Error Code





The number of active conversations is already at its maximum limit (256); no additional conversations can be allocated.



The User Callback was unable to allocate a buffer from the private buffer pool. If this error occurs, increase the size of the buffer pool by defining the DMQLU62$BUFFER_COUNT logical name or, if it is already defined, by increasing the value.



An unexpected value for WHAT_RECEIVED was returned on an SNALU62$RECEIVE_IMMEDIATE call. This generally indicates that a problem with the network has resulted in loss or truncation of a data message.



A previously activated session has been disconnected while no conversation was active. The LU62_REQUESTER field contains the value passed on the LU62_ACTIVATE message that activated the failed session.



A message sent to the User Callback has an invalid message type.



The value in the LU62_CONV_ID field was invalid.



The previous LU62_RECV_DATA message on the conversation specified in the LU62_CONV_ID field was truncated. This error occurs because the size of the buffers in the private buffer pool is insufficient. Increase the size of the private buffers by defining the DMQLU62$BUFFER_SIZE logical name or, if it is already defined, by increasing the value.