code: 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;
      }
docs: Registers RRS XA resource information with the transaction manager. This is used for inbound.
  
  @param actSpecId The id of the activation spec
  @return the recovery ID (or -1 if an error occurs)