code: public void prePrepare(Transaction transaction)
                      throws ObjectManagerException
      {
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.entry(this,
                          cclass,
                          "prePrepare",
                          new Object[] { transaction });
  
          // By default does nothing, unless overridden. 
  
          if (Tracing.isAnyTracingEnabled() && trace.isEntryEnabled())
              trace.exit(this
                         , cclass
                         , "prePrepare"
                              );
      }
docs: Driven just before the object changes to prepared state within a transaction,
  if requested. This is only redriven at recovery time if the the ManagedObject
  explicitly re-requests this at recovery time. Any ManagedObject requesting this
  callback should override this method.
  
  @param transaction causing the prepare.
  @throws ObjectManagerException