 |
Compatibility between IBM WebSphere 5 and Parallel Crystal/Harmoni
The information in this FAQ will be of interest to customers using IBM WebSphere 5.0 and successors, including customers who are:
- Upgrading from WebSphere 3 or 4 to 5
- Switching their Web/Portal Server to WebSphere 5 from competitors
- Moving their WebSphere tier to Sun Solaris from alternative OSes
Background
Compatibility between IBM WebSphere and Dynalivery PCRE/Harmoni depends upon interoperability of their underlying Object Request Brokers (ORBs). IBM generally uses the Java version of their own Component Broker ORB in WebSphere. An exception is WebSphere on Solaris where IBM uses the free Java ORB embedded in the Java Run-Time Environment (JRE). Dynalivery uses the TAO C++ open source ORB in Parallel Crystal and Harmoni. For more information on WebSphere and TAO, see the Reference Section below.
Dynalivery has tested the compatibility of the version of TAO in Harmoni 1.0 (TAO 1.2) with WebSphere 5.1. Here is what we have learned about the various possible combinations.
Recommendations for compatibility:
- Crystal Reports 7 users may integrate PCRE 2.7.2 or successors, including Harmoni, with IBM WebSphere 5. Please do not use PCRE 2.6.x, 2.7.0, 2.7.1, or with WebSphere 5. (To the extent that you would use Dynalivery's load balancing/failover with WebSphere 5 on Solaris as discussed in point 5 below, please use PCRE 2.7.3 instead of PCRE 2.7.2.)
- Crystal Reports 8.5 users may integrate PCRE 3.6 with IBM WebSphere 5.0. However, we invite them to contact techsupport@dynalivery.com
for use of other combinations.
- Crystal Reports 9 users may integrate PCRE 3.7.2 or successors, including Harmoni, with IBM WebSphere 5. Please do not use PCRE 3.7.1 with WebSphere 5. (To the extent that you would use Dynalivery's load balancing/failover with WebSphere 5 on Solaris as discussed in point 5 below, please use PCRE 3.7.3 instead of PCRE 3.7.2.)
- If you use the WebSphere 5 Studio (WSAD) at design-time to connect to a remote Parallel Crystal or Harmoni server, you may experience a CORBA error, Gateway timeout, or Server timeout -- unless you configure three specific settings in the WSAD console to your actual machine name. If you use the default of "localhost," then you will indeed experience the above errors. The settings that you should set to the actual machine name are:
- Server name under the "Configuration" tab
- Host Name under the "Port" tab
- Host under the "JMS Properties" tab
Please carefully check all of the orb.properties files corresponding to any design-time or run-time use of IBM JRE 1.4.1 and IBM Component Broker ORB (including, but not limited to IBM WebSphere) for the following line:
com.ibm.CORBA.LocalHost=localhost
It may appear at the end of these orb.properties files, in the ORB and plugins properties section. To the extent that you are communicating with a remote PCRE or Harmoni server, please delete the string "localhost" following the equal sign. It is an apparent bug in WebSphere 5.1 (and perhaps other versions) that the various configuration GUI tools do not set this value. A simple text editor is sufficient to make this edit. Note that if you use the WebSphere Studio (WSAD), your configuration would consist of at least two Java Run-Time Environments, each of which has its own orb.properties file and would require this edit. If you have multiple test or production environments on one machine, you may have more than two orb.properties files which require this edit. - IBM's WebSphere 5 for the Sun Solaris operating system is an exception as it uses the Sun JRE and ORB. It has certain behaviors that are different from WebSphere 5 on other platforms. In most cases these behaviors are of no consequence to Dynalivery customers. However, if you are using Dynalivery's load balancing and failover mechanism and our standard Java invocation, these behaviors may lead to the spawning of many extra Java threads. These extra threads may lead to hangs, CORBA errors, or timeouts.
Fortunately, if you slightly recode your invocation of Dynalivery software to reuse a single ORB instance obtained from WebSphere, you can proceed safely and avoid this problem.
Consider the following Harmoni sample code:
javax.naming.Context ctx = new javax.naming.InitialContext();
org.omg.CORBA.ORB orb= (org.omg.CORBA.ORB)
javax.rmi.PortableRemoteObject.narrow (ctx.lookup ("java:comp/ORB"),
org.omg.CORBA.ORB.class);
client = new HarmoniApplicationClient();
LoadBalanceInfo lbinfo = new LoadBalanceInfo (chnlname, algo);
client.Connect (serverName,0,servertype,lbinfo,orb,null,null);
Please rebuild your Java code with this pattern, redeploy it, and the extra threads should disappear. Note the same pattern will work with Parallel Crystal.
Further References:
TAO open source C++ ORB used by Dynalivery:
http://www.ociweb.com
TAO versions used by Dynalivery:
- TAO 1.1: PCRE 2.6.x, 2.7.0, 2.7.1, 3.6, 3.7.1
- TAO 1.2: PCRE 2.7.2, 2.7.3, 3.7.2, 3.7.3, Harmoni 1.0
- TAO 1.3: Harmoni 1.1
Dynalivery recommends against its customers using TAO 1.1 together with the ORBs in IBM (or Sun) JRE 1.4 and successors. IBM generally began recommending JRE 1.4 with WebSphere 5.1.
IBM WebSphere Home Page:
http://www.ibm.com/software/info1/websphere/index.jsp
IBM WebSphere clustering using the Network Deployment Manager:
http://www.ibm.com/developerworks/websphere/library/techarticles/0304_alcott/alcott.html
http://www.ibm.com/developerworks/websphere/library/bestpractices/deploying_j2ee_applications.html
To use IBM's load balancing/failover mechanism in the Network Deployment Manager in conjunction with Dynalivery's load balancing/failover mechanism, please contact techsupport@dynalivery.com for more information.
CORBA - industry standard for ORBs:
http://www.omg.org
GIOP - underlying interoperability protocol for ORBs:
http://dret.net/glossary/giop
http://www.blackmagic.com/people/gabe/iiop.html
Note that PCRE 2.7.2+, 3.7.2+, and Harmoni all have registry settings to lower the GIOP protocol version used by TAO. In the case you are using an older version of IBM WebSphere (and the Component Broker ORB) and a newer version of Dynalivery software, the ORBs may not be able to negotiate a common protocol. In this case, lower the GIOP protocol setting on the Dynalivery (TAO) tier.
However, it is recommended to use the default value of the GIOP protocol setting in the registry at its default value and upgrade to recent versions of both IBM WebSphere and Dynalivery software.
|