Container interoperability
Overview
Container interoperability describes the ability of WAS (WAS) clients and servers at different versions to successfully negotiate differences in native EJB finder methods support and J2EE compliance.
WAS uses interoperable versions of some class types to enable interoperability. However, older 4.0.x client and application server versions do not support the interoperability classes, which makes them uninteroperable with versions that use the classes.
The system property...
com.ibm.websphere.container.portable...enables newer versions of the application server to turn off the interoperability classes, allowing more recent application server return class types that are interoperable with an older client.
Depending on the value of com.ibm.websphere.container.portable, application servers at versions 5 and later, and 4.0.3 and later, return different classes for the following:
- Enumerations and collections returned by EJB 1.1 finder methods
- EJBMetaData
- Handles to:
- Entity beans
- Session beans
- Home interfaces
If the property is set to false, application servers return the old class types, to enable interoperability with 4.0.2 and earlier. If the property is set to true, application servers return the new classes.
The following tables show interoperability characteristics for various version combinations of application servers and clients as well as default property values for each combination.
Interoperability of V4.0.x client with V5 (and later) application server
Ideally, all 4.0.x clients that use Version 5 or later application servers should be at V4.0.3 or later.
Version 5 and later application servers return the interoperability class types by default (true). This can cause interoperability problems for distributed clients at versions 4.0.1 or 4.0.2. In particular, problems can occur with collections and enumerations returned by Enterprise JavaBeans V1.1 finder methods.
Although it is strongly discouraged, one can set com.ibm.websphere.container.portable to false on a V5 and later application server. This causes the application server to return the old class types, providing interoperability with clients at V4.0.2 and earlier. This is discouraged because:
- The V5 application server instance would become non-J2EE 1.3 (and later) compliant with regard to handles, home interface handles, and EJBMetaData.
- EJB 1.x finder methods return collection and enumeration objects that do not originate from ejbportable.jar.
- Interoperability restrictions still exist with the property set to false.
- V5 and later client handles to entity beans and home interfaces do not work across domains for the server you set to false.
If you would like to use updated Handle classes in EJB 2.x-compliant beans but have one of the older clients (versions 4.0.2 and earlier) installed, set the system property com.ibm.websphere.container.portable.finder to false. With this setting in place, the V5 and later application server uses the updated handles but returns the enumerations and collections that were used in the earlier clients.
Interoperability of client at V4.0.2 and earlier with> V5 (and later) application server
Client at V4.0.2 and earlier, using this function Application server at V5 and later, property true (default) Application server at V5 and later, property false EJBMetaData Does not work Works for 4.0.2 client Handle to session bean Does not work Works Handle to entity bean Does not work Does not work across cells Enumeration returned by EJB 1.x finder method Does not work Works Collection returned by EJB 1.x finder method Does not work Works Handle to home interface Does not work Does not work across cells If you would like to use updated Handle classes in EJB 2.x-compliant beans but have one of the older clients (versions 4.0.2 and earlier) installed, set the system property com.ibm.websphere.container.portable.finder to false. With this setting in place, the V5 and later server uses the new Handle classes but returns the older enumeration and collection classes.
Interoperability of client at V4.0.3 and later with> V5 and later application server
Clients at V4.0.3 and later work well with V5 and later application servers. However, if you set the com.ibm.websphere.container.portable to false, client handles to entity beans and home interfaces do not work across domains for the server you set to false.
Client at V4.0.3 and later, using this function Application server at V5 and later, property true (default) Application server at V5 and later, property false EJBMetaData Works Works Handle to session bean Works Works Handle to entity bean Works Does not work across cells Enumeration returned by EJB 1.x finder method Works Works Collection returned by EJB 1.x finder method Works Works Handle to home interface Works Does not work across cells
Interoperability of V5 and later client with Version 4.0.x application server
Clients at V5 and later work well with V4.0.3 application servers if you set com.ibm.websphere.container.portable to true. Client handles to entity beans and home interfaces do not work across domains for any V4.0.3 server with com.ibm.websphere.container.portable at the default value, false. V5 client handles to application servers at V4.0.2 and earlier also have restrictions.
Client at V5 and later, using this function Application server at V4.0.3, property true Application server at V4.0.3, property false (default) Application server at V4.0.2 or earlier EJBMetaData Works Works Works for 4.0.2 server only Handle to session bean Works Works Works Handle to entity bean Works Does not work across domains Does not work across domains Enumeration returned by EJB 1.x finder method Works Works Works Collection returned by EJB 1.x finder method Works Works Works Handle to home interface Works Does not work across domains Does not work across domains
Interoperability of zSeries V4.0.x client with Version 5 and later application server
The only valid configuration for container interoperability with zSeries V4.0.x clients is the default configuration for the V5 application server.
Interoperability of V5 and later client with zSeries V4.0.x application server
V5 clients should work with a zSeries V4.0.x application server with the correct interoperability fixes described in the zSeries documentation. The interoperability characteristics should be the same as for a V4.0.3 distributed application server with the property set to true.
Client at V5 and later, using this function zSeries application server at V4.0.x EJBMetaData Works Handle to session bean Works Handle to entity bean Works Enumeration returned by EJB 1.x finder method Works Collection returned by EJB 1.x finder method Works Handle to home interface Works
See Also
EJB containers
Related Tasks
Manage EJB containers
See Also
EJB container settings