InfoCenter Home >
4: Developing applications >
4.9: Programming model for the Connector Architecture (J2C) >
4.9.1: Mapping the current implementation to the Connector Architecture (J2C) Specification

4.9.1: Mapping the current implementation to the Connector Architecture (J2C) Specification

The sections referenced in this article map to sections of the JCA Specification. Download the JCA Specification from the Sun Web site before proceeding. The download site is located at:
java.sun.com/j2ee/download.html

The following aspects of the JCA Specification are currently implemented in WebSphere Application Server:

  • Connection Management (Section 5) in the JCA Specification

    WebSphere Application Server provides an implementation of javax.resource.spi.ConnectionManager (section 5.5.2).

    The implementation of the J2C Connection Manager is separate from the JDBC Connection Manager implementation that was already part of IBM WebSphere Application Server.

    The ConnectionManager receives requests for Connection objects from the ConnectionFactory object. The requests are then processed by the application server. The Connection Manager implementation delegates to the application server runtime to provide generic Qualities of Service (security, transactions, and others). These Qualities of Service are supported and managed by the application server.

    WebSphere Application Server also provides an implementation of javax.resource.spi.ConnectionEventListener (section 5.5.6). The ConnectionEventListener is used for event notification for managing the connection pool, cleaning up invalid or terminated connections, and managing local transactions.

    Only the EJB container is supported for managed connections in the current release.

  • Pool Management (Section 5.5.3 and the scenarios in Section 5.8) in the JCA Specification

    Very much related to Connection Management is the Connection Pool Implementation. In the JCA Specification, only guidelines are given for the implementation of the pool manager.

    The current release has a pool manager implementation which involves aspects of both WebSphere Application Server and the Enterprise Access Builder component of VisualAge for Java. The resulting class files and jar file are used by both environments.

  • Transaction Management (Section 6) in the JCA Specification

    The transaction manager requirements (section 6.6.3) are satisfied by the JTA implementation provided within IBM WebSphere Application Server. The "last resource optimization" is an implementation-specific option, and is not part of the JTA implementation as provided.

    All three transaction-support types (NoTransaction, LocalTransaction, and XATransaction) on the Resource Adapter deployment descriptor are supported in the current release. LocalTransaction one phase commit protocol (1PC) resources are wrappered within a "local transaction wrapper", thus allowing these 1PC resources to be used within a global JTA transaction. If there is an attempt to use more than one of these resources within a global transaction, then the prepare() method throws an exception and the transaction is rolled back.

  • The use of Common Client Interface (CCI), for local transactions (6.7 and 9.6.3), is allowed, with these restrictions:

    • Downstream calls must not share the same local transaction context.
    • Resource adapters must detect and handle the case of CCI local transaction begin() when there is a global transaction in existence (that is, when SPI transaction begin has first been invoked on the resource adapter).
    • Applications must do their own cleanup, since the container/connector runtime in the current release does not detect "dangling local transactions" and cleanup on behalf of the application.

    Local transaction optimization (section 6.12) is not provided by the Advanced Container.

    Connection sharing (section 6.9) is supported within the global XA transactions, but not within CCI local transactions. Connection sharing is assumed (default action). The ability to turn off connection sharing via the res-sharing-scope attribute on the resource-ref deployment descriptor is not supported in the current release (this is deemed an Enterprise Java Beans 2.0 Specification item).

    Related to this connection sharing concept is connection association (section 6.11). The ManagedConnection.associateConnection method is not supported in the current release. Instead, the programming model of get/use/close connections on every method request (which is the inferred programming model of the JCA Specification) is strongly encouraged. This means that each usage (getConnection, Interaaction usage, and close) of a connection should be completed with a transaction (either CMT or BMT).

    In general, policing and cleaning up of badly behaved or untidy applications is minimal in the current release. Applications are expected to properly complete or terminate their resources.

    The requirement for XA Recovery as noted in Section 5.5.3 of the JCA Specification is not supported in the current release.

  • Security Management (Sections 7 and 8) in the JCA Specification

    Only component-managed signon (Option C in the specification) is supported in the current release. This allows the component to pass in user id and password credentials through the ConnectionSpec object. If nothing is passed in through the ConnectionSpec object, then the ManagedConnectionFactory is interrogated by the Resource Adapter for a user id and password credential and that is used for signon to the EIS. 

    WebSphere Application Server ignores the setting of the authentication-mechanism-type element of the deployment descriptor and operates as though credential-interface is set to PasswordCredential and authentication-mechanism-type is set to BasicPassword. That is, the settings of GenericCredential or Kerbv5 are ignored.

    Security Permissions (Section 11.2) are not implemented for the current release. This means that all permissions are automatically given to the resource adapters.

  • RAS (Section 5.6)in the JCA Specification

    The current release supports error logging and tracing through the TR facility of IBM WebSphere Application Server. The LogWriter on the ManagedConnectionFactory is set to propagate to the ManagedConnections that are created by this factory.

    Notes:

    • To enable tracing for the J2C runtime, the following trace setting can be used: com.ibm.ejs.j2c.*=all=enabled.
    • To enable tracing for the IBM-supplied Resource Adapters, the following trace setting can be used:com.ibm.connector2.*=all=enabled.
    • Tracing can be enabled for other third party Resource Adapters by specifying their package name: package.*=all=enabled.
  • Packaging and Deployment (Section 10) in the JCA Specification

    Resource Adapters are packaged into J2EE modules called Resource Adapter Archives (.rar files). These .rar files contain a deployment descriptor along with the Java interfaces, implementation, and utility classes required by the Resource Adapter.

    Assembly Tool (Section 10.1):

    • In Section 10.2, there is mention of bundling .rar modules into an .ear file. This configuration is not supported in the current release, which only processes stand-alone .rar modules.

    Deployment Tool (Sections 10.3.2 and 10.3.3):

    • In WebSphere Application Server, .rar files are deployed through the Systems Management adminClient. 
    • You can configure individual connection factories through properties declared in the resource adapter's deployment descriptors.
    • There is support for multiple property sets (one per configured ManagedConnectionFactory instance) for a resource adapter.
    • You can remove resource adapters from an operational environment. The impact of this removal does not take effect until the server is recycled.

    Systems Management (All of Section 10):

    • Systems Management encompasses all aspects of the deployment and configuration of resource adapters as well as the server environments. The current release enables the two main areas of functionality:
      • Resource Adapter (Connector) SM Support.
      • ConnectionFactory SM Support.
Go to previous article: Programming model for the Connector Architectue (J2C) Go to next article: Implementing connector architecture

 

 
Go to previous article: Programming model for the Connector Architectue (J2C) Go to next article: Implementing connector architecture