public final int registerRRSXAResourceInfo ( String actSpecId ) { RRSXAResourceFactory xaFactory = rrsXAResFactorySvcRef . getService ( ) ; // Make sure that the bundle is active. if ( xaFactory == null ) { String formattedMessage = Utils . getMessage ( "J2CA8807.native.rrs.not.available" , new Object [ 0 ] ) ; throw new IllegalStateException ( formattedMessage ) ; } // Create a filter for the transaction manager to be able to find the native // transaction factory in the service registry during recovery. String filter = FilterUtils . createPropertyFilter ( "native.xa.factory" , ( xaFactory . getClass ( ) . getCanonicalName ( ) ) ) ; // NOTE: At this point in time, the transaction manager does not support logging // XAResourceInfo type objects; However, they do allow generic serializable objects such as a String // to be logged and retrieved during recovery. So, a String is what is currently passed as resource info to // the registerResourceInfo call. Serializable xaResInfo = xaFactory . getXAResourceInfo ( null ) ; int recoveryToken = transactionManager . registerResourceInfo ( filter , xaResInfo ) ; return recoveryToken ; }
Registers RRS XA resource information with the transaction manager . This is used for inbound .