Container interoperability describes the ability of WebSphere Application Server clients and servers at different versions to successfully negotiate differences in native Enterprise JavaBeans (EJB) Version 1.1 finder methods support and Java 2 Platform, Enterprise Edition (J2EE) Version 1.3 compliance.
At one time, there were significant interoperability problems among WebSphere Application Server, versions 4.0.x and 3.5.x distributed, and Version 4.0.x for zSeries. The introduction of interoperable versions of some class types solved these problems for distributed versions 3.5.6, 4.0.3, and 5 as well as for zSeries Version 4.0.x.
Older 4.0.x and 3.5.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 remedies this situation by enabling newer versions of the application server to turn off the interoperability classes. This lets a 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, 4.0.3 and later, and 3.5.6 and later, return different classes for the following:
Instructions for setting the com.ibm.websphere.container.portable property are in the release notes for versions 3.5.6 and later, and 4.0.3 and later. 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 Version 3.5.x client with Version 5 (and later) application server
Clients at Version 3.5.5 and earlier are not interoperable with Version 5 and later servers when using:
If you would like to use updated Handle classes in EJB 2.x-compliant beans but have one of the older clients (versions 3.5.5 and earlier) installed, set the system property com.ibm.websphere.container.portable.finder to false. With this setting in place, the Version 5 application server uses the updated handles but returns the enumerations and collections that were used in the earlier clients.
Interoperability of Version 5 (and later) client with Version 3.5.x application server
Client at Version 5 and later, using this function | Application server at Version 3.5.6, property true | Application server at Version 3.5.6, property false (default) | Application server at Version 3.5.5 and earlier |
---|---|---|---|
EJBMetaData | Does not work across domains | Works | Does not work |
Handle to session bean | Works | Works | Does not work |
Handle to entity bean | Does not work across domains | Does not work across domains | Does not work across domains |
Enumeration returned by EJB 1.x finder method | Works | Works | Works |
Interoperability of Version 4.0.x client with Version 5 (and later) application server
Ideally, all 4.0.x clients that use Version 5 application servers should be at Version 4.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 EJB 1.1 finder methods.
Although it is strongly discouraged, you can set com.ibm.websphere.container.portable to false on a Version 5 and later application server. This causes the application server to return the old class types, providing interoperability with clients at Version 4.0.2 and earlier. This is discouraged because:
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 Version 5 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 Version 4.0.2 and earlier with Version 5 (and later) application server
Client at Version 4.0.2 and earlier, using this function | Application server at Version 5 and later, property true (default) | Application server at Version 5 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 3.5.5 and earlier, and 4.0.2 and earlier) installed, set the system property com.ibm.websphere.container.portable.finder to false. With this setting in place, the Version 5 and later server uses the new Handle classes but returns the older enumeration and collection classes.
Interoperability of client at Version 4.0.3 and later with Version 5 and later application server
Clients at Version 4.0.3 and later work well with Version 5 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 Version 4.0.3 and later, using this function | Application server at Version 5 and later, property true (default) | Application server at Version 5 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 Version 5 and later client with Version 4.0.x application server
Clients at Version 5 and later work well with Version 4.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 Version 4.0.3 server with com.ibm.websphere.container.portable at the default value, false. Version 5 client handles to application servers at Version 4.0.2 and earlier also have restrictions.
Client at Version 5 and later, using this function | Application server at Version 4.0.3, property true | Application server at Version 4.0.3, property false (default) | Application server at Version 4.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 Version 4.0.x client with Version 5 and later application server
The only valid configuration for container interoperability with zSeries Version 4.0.x clients is the default configuration for the Version 5 application server.
Interoperability of Version 5 and later client with zSeries Version 4.0.x application server
Version 5 clients should work with a zSeries Version 4.0.x application server with the correct interoperability fixes described in the zSeries documentation. The interoperability characteristics should be the same as for a Version 4.0.3 distributed application server with the property set to true.
Client at Version 5 and later, using this function | zSeries application server at Version 4.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 |