docs: SITransaction getTransaction() throws JMSException {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "getTransaction");
          SITransaction transaction = null;
  
          try {
              transaction = jcaSession.getCurrentTransaction();
          } catch (javax.resource.spi.IllegalStateException ise) {
              // No FFDC code needed
              // d238447 FFDC review. Possible result of a race condition. No FFDC.
              throw (javax.jms.IllegalStateException) JmsErrorUtils.newThrowable(javax.jms.IllegalStateException.class,
                                                                                 "EXCEPTION_RECEIVED_CWSIA0053",
                                                                                 new Object[] { ise, "JmsSessionImpl.getTransaction (#1)" },
                                                                                 ise,
                                                                                 null, // null probeId = no FFDC.
                                                                                 this,
                                                                                 tc
                              );
          } catch (Exception e) {
              // No FFDC code needed
              // d238447 FFDC review. Need to consider:
              //   IllegalStateException - handled above.
              //   ResourceException, SIException, SIErrorException - generate FFDC.
              throw (JMSException) JmsErrorUtils.newThrowable(JMSException.class,
                                                              "EXCEPTION_RECEIVED_CWSIA0053",
                                                              new Object[] { e, "JmsSessionImpl.getTransaction (#2)" },
                                                              e,
                                                              "JmsSessionImpl.getTransaction#2",
                                                              this,
                                                              tc
                              );
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "getTransaction", transaction);
          return transaction;
      }