A task invoked from IDMS to communicate with a CICS transaction is doing a #TREQ ALLOC and gets an allocation error.

Document ID : KB000006502
Last Modified Date : 14/02/2018
Show Technical Document Details

A task is invoked from IDMS to communicate with a CICS transaction.

The program in IDMS will perform the following:



The program in CICS will do a RECEIVE and then SEND with the LAST option

The program in CV will perform #TREQ GET.


The following is failing with an ALLOCATE ERROR in IDMS


It fails with a UIOUCOM error code x’20’ & UIOUCM2 secondary error code of x’30’.

Which means: 


Is this caused not having any WINNER sessions available?



Having only a contention LOSER available will not prevent IDMS from allocating a session to a program. A session can be allocated by IDMS to a program on both a contention WINNER or contention LOSER. The contention winner/loser designation determines who will win a contention situation if both nodes attempt to initiate a conversation simultaneously. 

This problem occurs because there are no sessions available to be allocated and with OPTNS=(IMM), IDMS will not wait for one to become available.

It could mean there are insufficient PTE/LTEs defined for this LU or sessions are not being released.

A conversation is usually terminated with a #TREQ PUT,OPTNS=LAST

This will end the conversation and also end the session with the program but the session is not closed, it will remain open to be allocated to the next program that starts a conversation. 


The best way to get around this problem is to change the #TREQ ALLOC,OPTNS=(IMM) to #TREQ ALLOC,OPTNS=(ANY), this will cause the program to wait until a session becomes available. 

Other possible solutions are: 

  • Change the program to code a retry of the #TREQ ALLOC when the problem occurs. 

  • Define more LTERMs/PTERMs for this LU in the SYSGEN.
Additional Information:

See DocOpS section Regular and Execute #TREQ Syntax and Parameters