static void rcvSessReceive ( CommsServerByteBuffer request , Conversation conversation , int requestNumber , boolean allocatedFromBufferPool , boolean partOfExchange ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "rcvSessReceive" , new Object [ ] { request , conversation , "" + requestNumber , "" + allocatedFromBufferPool } ) ; ConversationState conversationState = ( ConversationState ) conversation . getAttachment ( ) ; ServerLinkLevelState linkState = ( ServerLinkLevelState ) conversation . getLinkLevelAttachment ( ) ; final boolean optimizedTx = CommsUtils . requiresOptimizedTransaction ( conversation ) ; short connectionObjectID = request . getShort ( ) ; // BIT16 ConnectionObjectId short consumerObjectID = request . getShort ( ) ; // BIT16 ConsumerObjectId int transactionObjectId = request . getSITransactionId ( connectionObjectID , linkState , optimizedTx ) ; long timeout = request . getLong ( ) ; // BIT64 TimeOut if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { SibTr . debug ( tc , "connectionObjectID" , connectionObjectID ) ; SibTr . debug ( tc , "consumerObjectID" , consumerObjectID ) ; SibTr . debug ( tc , "transaction Id" , transactionObjectId ) ; SibTr . debug ( tc , "timeout" , timeout ) ; } CATMainConsumer mainConsumer = ( CATMainConsumer ) conversationState . getObject ( consumerObjectID ) ; mainConsumer . receive ( requestNumber , transactionObjectId , timeout ) ; request . release ( allocatedFromBufferPool ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "rcvSessReceive" ) ; }
Receive a message using the Synchronous Consumer Session provided by the client .