public void setTMRecoveryService(TMRecoveryService tmrec) {
        if (tc.isDebugEnabled())
            Tr.debug(tc, "setTMRecoveryService " + tmrec);
        if (tmsRef != null) {
            if (!_isSQLRecoveryLog) {
                if (_cc != null) {
                    tmsRef.doStartup(this, _isSQLRecoveryLog);
                }
            } else {
                // If the JTMConfigurationProvider has been activated, and if the DataSourceFactory
                // has been provided, we can initiate recovery
                ServiceReference<ResourceFactory> serviceRef = dataSourceFactoryRef.getReference();
                if (tc.isDebugEnabled())
                    Tr.debug(tc, "retrieved datasourceFactory service ref " + serviceRef);
                if (_cc != null && serviceRef != null) {
                    tmsRef.doStartup(this, _isSQLRecoveryLog);
                }
            }
        } else if (tc.isDebugEnabled())
            Tr.debug(tc, "tmsref is null");

    }
public void setTMRecoveryService ( TMRecoveryService tmrec ) { if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "setTMRecoveryService " + tmrec ) ; if ( tmsRef != null ) { if ( ! _isSQLRecoveryLog ) { if ( _cc != null ) { tmsRef . doStartup ( this , _isSQLRecoveryLog ) ; } } else { ServiceReference < ResourceFactory > serviceRef = dataSourceFactoryRef . getReference ( ) ; if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "retrieved datasourceFactory service ref " + serviceRef ) ; if ( _cc != null && serviceRef != null ) { tmsRef . doStartup ( this , _isSQLRecoveryLog ) ; } } } else if ( tc . isDebugEnabled ( ) ) Tr . debug ( tc , "tmsref is null" ) ; }
The setTMRecoveryService method call is used to alert the JTMConfigurationProvider to the presence of a
TMRecoveryService. This Service was introduced under issue #5119 to break a potential circular reference in
DS as the TransactionManagerService and jdbc's DataSourceService are mutually dependent.

@param tmrec