docs: public void start(Xid xid, int flags) throws XAException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.entry(this, tc, "start", new Object[] 
                       {
                        ivManagedConnection,
                        AdapterUtil.toString(xid), 
                        AdapterUtil.getXAResourceStartFlagString(flags)
              });
  
          if (dsConfig.get().enableMultithreadedAccessDetection) 
              ivManagedConnection.detectMultithreadedAccess(); 
  
          try {
              ivManagedConnection.setAutoCommit(false);
              ivStateManager.setState(WSStateManager.XA_START);
          } catch (SQLException sqle) {  
              FFDCFilter.processException(sqle, "com.ibm.ws.rsadapter.spi.WSRdbOnePhaseXaResourceImpl.start", "406", this);
              Tr.error(tc, "DSA_ERROR", new Object[] { sqle, "com.ibm.ws.rsadapter.spi.WSRdbOnePhaseXaResourceImpl.start" });
              XAException xae = new XAException(XAException.XA_RBPROTO);
              traceXAException(xae, currClass);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(this, tc, "start", "Exception"); 
              throw xae;
          } catch (TransactionException te) {
              //Exception means setState failed because it was invalid to set the state in this case
              FFDCFilter.processException(te, "com.ibm.ws.rsadapter.spi.WSRdbOnePhaseXaResourceImpl.start", "407", this);
              Tr.error(tc, "INVALID_TX_STATE", new Object[] { "OnePhaseXAResource.start()", ivManagedConnection.getTransactionStateAsString() });
              XAException xae = new XAException(XAException.XA_RBPROTO);
              traceXAException(xae, currClass);
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
                  Tr.exit(this, tc, "start", "Exception"); 
              throw xae;
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              Tr.exit(this, tc, "start"); 
      }