public static void rcvXA_setTxTimeout(CommsByteBuffer request, Conversation conversation,
                                         int requestNumber, boolean allocatedFromBufferPool,
                                         boolean partOfExchange)
   {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "rcvXA_setTxTimeout",
                                           new Object[]
                                           {
                                              request,
                                              conversation,
                                              ""+requestNumber,
                                              ""+allocatedFromBufferPool,
                                              ""+partOfExchange
                                            });

      try
      {
         int clientTransactionId = request.getInt();
         int timeout = request.getInt();

         if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled())
         {
            SibTr.debug(tc, "XAResource Object ID", clientTransactionId);
            SibTr.debug(tc, "Timeout", timeout);
         }

         // Get the transaction out of the table
         ServerLinkLevelState linkState = (ServerLinkLevelState) conversation.getLinkLevelAttachment();
         SITransaction tran = linkState.getTransactionTable().get(clientTransactionId, true);

         boolean success = false;
         if ((tran != null) && (tran != IdToTransactionTable.INVALID_TRANSACTION))
         {
                 // tran may be null if the client is calling this method on
                 // an unenlisted XA resource.

                 // Get the actual transaction ...
                 SIXAResource xaResource = (SIXAResource) tran;

                 // Now call the method on the XA resource
                 success = xaResource.setTransactionTimeout(timeout);
         }
         if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Result: " + success);

         CommsByteBuffer reply = poolManager.allocate();
         if (success)
         {
            reply.put((byte) 1);
         }
         else
         {
            reply.put((byte) 0);
         }

         try
         {
            conversation.send(reply,
                              JFapChannelConstants.SEG_XA_SETTXTIMEOUT_R,
                              requestNumber,
                              JFapChannelConstants.PRIORITY_MEDIUM,
                              true,
                              ThrottlingPolicy.BLOCK_THREAD,
                              null);
         }
         catch (SIException e)
         {
            FFDCFilter.processException(e,
                                        CLASS_NAME + ".rcvXA_setTxTimeout",
                                        CommsConstants.STATICCATXATRANSACTION_SETTXTIMEOUT_01);

            SibTr.error(tc, "COMMUNICATION_ERROR_SICO2027", e);
         }
      }
      catch (XAException e)
      {
         FFDCFilter.processException(e,
                                     CLASS_NAME + ".rcvXA_setTxTimeout",
                                     CommsConstants.STATICCATXATRANSACTION_SETTXTIMEOUT_02);

         if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "XAException - RC: " + e.errorCode, e);

         StaticCATHelper.sendExceptionToClient(e,
                                               CommsConstants.STATICCATXATRANSACTION_SETTXTIMEOUT_02,
                                               conversation, requestNumber);
      }

      request.release(allocatedFromBufferPool);

      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "rcvXA_setTxTimeout");
   }
public static void rcvXA_setTxTimeout ( CommsByteBuffer request , Conversation conversation , int requestNumber , boolean allocatedFromBufferPool , boolean partOfExchange ) { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( tc , "rcvXA_setTxTimeout" , new Object [ ] { request , conversation , "" + requestNumber , "" + allocatedFromBufferPool , "" + partOfExchange } ) ; try { int clientTransactionId = request . getInt ( ) ; int timeout = request . getInt ( ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) { SibTr . debug ( tc , "XAResource Object ID" , clientTransactionId ) ; SibTr . debug ( tc , "Timeout" , timeout ) ; } ServerLinkLevelState linkState = ( ServerLinkLevelState ) conversation . getLinkLevelAttachment ( ) ; SITransaction tran = linkState . getTransactionTable ( ) . get ( clientTransactionId , true ) ; boolean success = false ; if ( ( tran != null ) && ( tran != IdToTransactionTable . INVALID_TRANSACTION ) ) { SIXAResource xaResource = ( SIXAResource ) tran ; success = xaResource . setTransactionTimeout ( timeout ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "Result: " + success ) ; CommsByteBuffer reply = poolManager . allocate ( ) ; if ( success ) { reply . put ( ( byte ) 1 ) ; } else { reply . put ( ( byte ) 0 ) ; } try { conversation . send ( reply , JFapChannelConstants . SEG_XA_SETTXTIMEOUT_R , requestNumber , JFapChannelConstants . PRIORITY_MEDIUM , true , ThrottlingPolicy . BLOCK_THREAD , null ) ; } catch ( SIException e ) { FFDCFilter . processException ( e , CLASS_NAME + ".rcvXA_setTxTimeout" , CommsConstants . STATICCATXATRANSACTION_SETTXTIMEOUT_01 ) ; SibTr . error ( tc , "COMMUNICATION_ERROR_SICO2027" , e ) ; } } catch ( XAException e ) { FFDCFilter . processException ( e , CLASS_NAME + ".rcvXA_setTxTimeout" , CommsConstants . STATICCATXATRANSACTION_SETTXTIMEOUT_02 ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( tc , "XAException - RC: " + e . errorCode , e ) ; StaticCATHelper . sendExceptionToClient ( e , CommsConstants . STATICCATXATRANSACTION_SETTXTIMEOUT_02 , conversation , requestNumber ) ; } request . release ( allocatedFromBufferPool ) ; if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( tc , "rcvXA_setTxTimeout" ) ; }
Calls setTransactionTimeout() on the SIXAResource.

Fields:

BIT16    XAResourceId
BIT32    Timeout

@param request
@param conversation
@param requestNumber
@param allocatedFromBufferPool
@param partOfExchange