@ Override public final void forget ( ) throws XAException { if ( tc . isEntryEnabled ( ) ) Tr . entry ( tc , "forget" , new Object [ ] { _resource , _xid } ) ; if ( tcSummary . isDebugEnabled ( ) ) Tr . debug ( tcSummary , "xa_forget" , this ) ; int rc = - 1 ; // not an XA RC try { if ( ! _completed && _resource != null ) { if ( _state == FAILED ) _resource = reconnectRM ( ) ; // D419307A _resource . forget ( _xid ) ; rc = XAResource . XA_OK ; destroy ( ) ; } } catch ( XAException xae ) { rc = xae . errorCode ; throw xae ; } finally { if ( tc . isEntryEnabled ( ) ) Tr . exit ( tc , "forget" ) ; if ( tcSummary . isDebugEnabled ( ) ) Tr . debug ( tcSummary , "xa_rollback result: " + XAReturnCodeHelper . convertXACode ( rc ) ) ; } }
The resource manager can forget all knowledge of the transaction .