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.