code: public final void commit(final PersistentTransaction transaction) throws SevereMessageStoreException
      {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "commit", "Transaction=" + transaction);
  
          if (STATE_END_PRECOMMIT == _state)
          {
              // normal processing
          }
          else
          {
              if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())  SibTr.exit(tc, "commit");
              throw new TaskListException(_state);
          }
  
          _state = STATE_BEGIN_COMMIT;
  
          Task task = _firstTask;
          while (null != task)
          {
              task.commitInternal(transaction);
              task = task._nextTask;
          }
  
          task = _firstTask;
          while (null != task)
          {
              task.commitExternal(transaction);
              task = task._nextTask;
          }
  
          _state = STATE_END_COMMIT;
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())  SibTr.exit(tc, "commit");
      }
docs: /* (non-Javadoc)
  @see com.ibm.ws.sib.msgstore.Transactable#transactableCommit(com.ibm.ws.sib.msgstore.Transaction)