Resource Recovery Services (RRS)

WebSphere® Application Server for z/OS® supports resource adapters that use Resource Recovery Services (RRS) to support global transaction processing. RRS is an z/OS extension to the JCA resource adapter specifications.

WebSphere Application Server for z/OS supports the Java™ Platform, Enterprise Edition (Java EE) Connector Architecture (JCA) 1.0., and because of this, any resource adapter that is designed to use the 1.0 level of the Java EE Connector Architecture (JCA) is supported.

In addition to the 3 types of transaction support defined by JCA, WebSphere Application Server for z/OS supports a fourth type, RRSTransactional support, which is a z/OS only extension to the architecture. Resource adapters that are capable of using RRS and that properly indicate to WAS z/OS they are RRSTransactional will be supported as RRS compliant resource adapters.

z/OS resource adapters that are capable of using RRS are:
  • IMS Connector for Java
  • CICS® CTG ECI Java EE Connector
  • IMS JDBC Connector
  • DB2® for z/OS Local JDBC connector when used as aJDBC Provider under the WebSphere Relational Resource Adapter (RRA)
  • WebSphere MQ adapter
All RRS Compliant resource adapters are required to support the property RRSTransactional in their ManagedConnectionFactory and must support a getter method for the property.
java.lang.Boolean.RRSTransactional=true;

java.lang.Boolean getRRSTransactional(){
    // Determine if the adapter can run RRSTransactional based
   // on it's configuration, and set the RRSTransactional property 
   // appropriately to true or false.
	return RRSTransactional;
}

RRS support is only applicable in a local environment, where the backend must reside on the system. CICS and IMS resources adapters may use RRSTransactional support only when these adapters are configured to use local interfaces to their backend resource manager, which must reside on the same system as the IBM® WebSphere Application Server for z/OS. These adapters are also capable of being configured to a remote instance of their backend resource manager. In this case, the adapters will respond "false" when the getRRSTransactional() method is invoked and instead of running as RRSTransactional will use whichever one of the three types of Java EE Transaction support they have chosen to support.