docs: public void commit()
      {
          checkOpen();
          try
          {
              prepareCommit();
              checkForCommit();
  
              txStatus = Status.STATUS_COMMITTING;
              if (log.isDebugEnabled()) log.debug("Commit transaction " + this);
              // now do real commit on broker
              if(hasBroker()) getBroker().commitTransaction();
  
              // Now, we notify everything the commit is done.
              performTransactionAwareAfterCommit();
  
              doClose();
              txStatus = Status.STATUS_COMMITTED;
          }
          catch(Exception ex)
          {
              log.error("Error while commit objects, do abort tx " + this + ", " + ex.getMessage(), ex);
              txStatus = Status.STATUS_MARKED_ROLLBACK;
              abort();
              if(!(ex instanceof ODMGRuntimeException))
              {
                  throw new TransactionAbortedExceptionOJB("Can't commit objects: " + ex.getMessage(), ex);
              }
              else
              {
                  throw (ODMGRuntimeException) ex;
              }
          }
      }