docs: 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");
     }