user manual

326 BES Developers Guide
Other Considerations
mapping, which includes C, C++, Delphi (Object Pascal), Ada, COBOL,
COBOL Scripting Language, Lisp, PL/1, Python, and Smalltalk.
Working with Poorly Implemented Resource Adapters
Some commercially available Resource Adapters may be poorly implemented.
As there does not yet exist any mechanism to test a Resource Adapter for
compliance to the Connectors specs (as the J2EE Compatibility Test Suite
(CTS) tests a Connectors implementation for spec compliance), it is currently
not a simple task to recognize, but among the symptoms, you will find:
1 The Resource Adapter will exhibit strange errors during deployment
2 The Resource Adapter will exhibit strange errors during method invocation
on the connection factory.
As VisiConnect strictly implements J2EE 1.3 and Connectors 1.0
requirements, it is often the only Connector Container which will detect poorly
implemented Resource Adapters and not ignore the problem.
Examples of Poorly Implemented Resource Adapters
Generally, poorly implemented Resource Adapters are not compliant with the
Connectors 1.0 specification. Examples of such Resource Adapters include:
The Resource Adapter with a connection factory implementing only
java.io.Serializable, and not both java.io.Serializable and
javax.resource.Referenceable as per the Connectors specification (Section
10.5 "JNDI Configuration and Lookup"). The local JNDI context handlers of
application servers such as Borland Enterprise Server can only register
objects if they implement both interfaces. If a Resource Adapter
implements a connection factory as Serializable, and doesn't implement
Referenceable, you will see exceptions thrown when the application server
attempts to deploy the connection factory to JNDI.
The Resource Adapter with a connection factory which poorly implements
javax.resource.Referenceable (which inherits getReference() from
javax.naming.Referenceable). The J2SE 1.3.x and 1.4.x specs specify that for
javax.naming.Referenceable, getReference() either:
1 Returns a valid, non-null reference of the Referenceable object, or
2 Throws an exception (javax.naming.NamingException).
If the Resource Adapter implements Referenceable such that getReference() can
(and will) return null, you will see exceptions thrown when a client attempts to
invoke a connection factory method such as getConnection().
The Resource Adapter with a connection factory correctly implementing
Referenceable, but which does not provide an implementation of
javax.naming.spi.ObjectFactory (which is required by the Connectors
specification (Section 10.5 "JNDI Configuration and Lookup")). Although
such a Resource Adapter can be deployed to an application server without
incident, it cannot be deployed to JNDI outside the aegis of an application
server, as a non-managed Connector. Also, including a