BEA Logo BEA WebLogic Server

  Corporate Info  |  News  |  Solutions  |  Products  |  Partners  |  Services  |  Events  |  Download  |  How To Buy

WebLogic Server 6.1 and 5.1 Interoperability

The following document describes the level of interoperability between WebLogic Servers 5.1 and 6.1 that has become available with the addition of WebLogic 5.1 Service Pack 12 and WebLogic 6.1 Service Pack 3. It also details how to set up your systems to achieve interoperability.

Introduction
Restrictions
RMI-IIOP
System Requirements
Installation
Enabling IIOP
Enabling Interoperability
Examples

Introduction

This Service Pack includes an example and the necessary files for achieving interoperability between your 5.1 WebLogic Server and your 6.1 WebLogic Server. The level of interoperability includes the following:

  • EJB - Bi-directional support (i.e. being able to invoke an EJB hosted in one WLS server from another WLS server of a different version, and vice versa). This support includes all types of 2.0 EJB's hosted on a WebLogic Server 6.1 and all types of 1.1 EJB's hosted on a 5.1 WebLogic server or a 6.1 WebLogic Server.

  • Web Application to EJB - You can call an EJB hosted on WebLogic 5.1 Server from a Servlet or JSP on a WebLogic 6.1 Server, and vice versa.

  • RMI - You can remotely invoke objects hosted on WebLogic Server 5.1 from a 6.1 WebLogic Server, and vice-versa.

  • Security - Security context is propagated from server to server. This feature allows the carry over of security information about the requesting WebLogic Server to the serving server.

  • Messaging Bridge - You can configure a message forwarding mechanism between any two messaging products, thereby providing interoperability between WebLogic JMS and another messaging product. You can use the Messaging Bridge to integrate your messaging applications between:

    • Separate releases of WebLogic Server (for example, WebLogic Server 5.1 with release 6.1 or higher).

    • WebLogic JMS implementations that reside in separate WebLogic Server domains (for example, a WebLogic Server 6.1 domain with another release 6.1 domain).

    • WebLogic JMS with a third-party JMS product (for example, WebLogic Server 6.1 and MQSeries).

    • WebLogic JMS with non-JMS messaging products (only by using specialized adapters that are not provided with WebLogic Server).

Restrictions

  • This interoperability solution is only for 5.1 Service Pack 12 WebLogic Servers and 6.1 Service Pack 3 or higher WebLogic Servers. Other servers are not supported.

  • WebLogic 5.1 does not support EJB 2.0. So any beans you place on your 5.1 WebLogic Server must be 1.1 EJBs in order to be successfully called by a WebLogic 6.1 Server.

  • You cannot modify the admistration of the client server via interoperability. Each server must be administered on it's own. You cannot modify your WebLogic 5.1 Server through a WebLogic 6.1 Administration Conosle, or vice-versa.

  • JDK 1.3.1 is required, clients running a different JVM may not function.

  • Transactions and SSL are not supported between the servers

  • If you have WebLogic 5.1 IDL clients, the IDL compiler provided with WebLogic rmic has issues; compile these clients by using the rmic compiler that is provided with WebLogic 6.1 Service Pack 3 and then use the generated files on your WebLogic 5.1 Server. The 5.1 rmic compiler will be fixed in a future WebLogic 5.1 Service Pack.

  • Refresh of connections in a cluster is not supported. If you are calling into a cluster of WebLogic Servers and one of the managed servers goes down, the connection to that server will not be refreshed until you reset it yourself.

RMI-IIOP

This solution for inter-server communication is based on the RMI-IIOP model. All calls use the IIOP (the Internet-Inter-Orb-Protcol). The use of IIOP is standardized based on a specification by the Object-Management-Group at http://cgi.omg.org/cgi-bin/doc?formal/99-10-07. See our guide at http://download.oracle.com/docs/cd/E13222_01/wls/docs61/rmi_iiop/index.html for further information on the use of RMI-IIOP with WebLogic Server.

System Requirements

WebLogic 6.1 with Service Pack 3 or higher.

WebLogic 5.1 with Service Pack 12 or higher

JDK 1.3.1

Installation

You must have the Service Packs listed above installed. Your WebLogic Server 6.1 includes a 1.3.1 JDK; your 5.1 WebLogic Server must also have a 1.3.1 JDK it can access.

Enabling RMI-IIOP

WebLogic 5.1 and 6.1 Servers interoperate using RMI-IIOP. T3 and plain RMI protocols are not supported in this configuration. By default, RMI-IIOP support is enabled with WebLogic. However, you may wish to note the points below:
  • The WebLogic 6.1 server should require no added steps to use IIOP. In the <server> mbean of your config.xml file you can add a line IIOPEnabled="false" to turn off IIOP. Without this entry however, the default is 'true'.

  • On your WebLogic 5.1 server, IIOP is also enabled by default. However, you can add the following to your weblogic.properties file to turn off IIOP: weblogic.system.enableIIOP=false.

  • Although it will not hinder establishing interoperability, the identity of any client connecting to IIOP on your 6.1 server will default to 'guest'. If you wish to change this you can add an entry to change the user name, as well as add a password. In WebLogic 6.1 set this in the config.xml file to establish a single identity for all clients connecting over IIOP, as shown in the example below:

    <Server
    Name="myserver"
    DefaultIIOPUser="Bob"
    DefaultIIOPPassword="Gumby1234"
    ListenPort="7001">

  • If you set securtclient To establish specific users and passwords for your WebLogic Interoperability solution on your WebLogic 6.1 Server, open the Administration Console and click on the 'Security' tab and then on 'Users'. Here you can add any users and passwords In WebLogic 5.1 you would add the following lines in your WebLogic properties file to accomplish the same:

    weblogic.iiop.user=bob
    weblogic.iiop.password=Gumby1234
    

Enabling Interoperability

The following are the basic steps required to make your 5.1 and 6.1 Weblogic Server interoperate. See the example for a working sample of how this is accomplished.

  1. Your remote object must have the necessary code that binds it to the JNDI tree of its host server. EJBean homes are bound to the JNDI tree at the time of deployment and the WebLogic EJB container takes care of this for you. RMI Objects are typically bound to the JNDI tree with a startup class.

  2. Modify your lookup of an initial context from the code that calls the EJB or other remote object. You must specify a provider URL that A) uses the iiop protocol B) refers to the machine name and port on which the EJB or remote object resides. For example you could change a servlet's lookup of an initial context in the following way:

    h.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    h.put(Context.PROVIDER_URL, "iiop://gotham:7004");

  3. Use the ejbc compiler with the -iiop option on your bean. If you are not using bean but another object use the rmic compiler with the -iiop option. You must use a 1.3.1 JDK or higher when doing so. Deploy the object on the server that you want to host it.

  4. Whether you are calling an object from a 6.1 server or a 5.1 server, you will need to have certain bean/object classes on the client server that is doing the calling.

    If you are calling from a WebLogic 6.1 Server you must add an entry to the ejb-jar.xml: <ejb-client-jar>. Designate a name within this tag, such as <ejb-client-jar>my_interop_client.jar</ejb-client-jar>. Including this XML tag will add the remote interface class that the 6.1 Server needs once you recompile; when this has been done, add the generated client-jar to where it can be referenced by your WebLogic 6.1 server (either the lib directory of your Web Application or in the classpath). If you are not calling an EJB but some other type of remote object, just copy the remote interface of your object to where it can be referenced by your 6.1 Server (either the lib directory of your Web Application or in the classpath).

    If you are calling from a WebLogic 5.1 Server you must run ejbc on the bean, using the -clientJar option. The 5.1 Server needs both the remote interface and stub classes and this option will generate them for you; once this has been done, add the generated client-jar to where it can be referenced by your WebLogic 5.1 server (either the lib directory of your Web Application or in the classpath). If you are not calling an EJB but some other type of remote object, just copy the remote interface and stub classes of your object to where it can be referenced by your 5.1 Server (again, either the lib directory of your Web Application or in the classpath).

    So your basic steps are:

    • Copy the bean to some temporary location
    • If the client server is a 6.1 WebLogic Server, add <ejb-client-jar>fooname.jar</ejb-client-jar> to your client side ejb-jar.xml and run ejbc.
    • If the client server is a 5.1 WebLogic Server, add the -clientJar option to ejbc when compiling the client side ejb.
    • Add this generated client jar to the client server, either reference it in the classpath or add it to the /lib directory of your web application.

  5. Compile your Servlet or Web Application with the modified initial context that uses iiop as the protocol for connection to the EJB or remote object. Note that the client.jar you created in step is needed for this compilation and is required to be in your classpath.

  6. It is required to have a java security setting in order for the servers to talk to each other. Make sure that your startup scripts for both servers have an appropriate weblogic.policy or java.policy file specified. For examples::

  7. Start both servers. Deploy the bean on the targeted server. But do not deploy the jar file that was created on the client side.

Clustering

WebLogic also supports basic clustering with failover and load balancing while using this interop solution. Your WebLogic 6.1 Server can call into a cluster of 5.1 Servers and access any EJB's hosted there. The reverse is also true. The only requirements are that you followed the steps above in development; also your EJBs must be set up for clustering (ie the home-is-clusterable deployment element in weblogic-ejb-jar.xml must be set to true).

Examples

The necessary files and documentation for WebLogic Server 5.1 to WebLogic Server 6.1 interoperability have been provided with the required Service Packs. In your Weblogic 5.1 home directory under /examples/iiop/wls2wls directory are the instructions and WebLogic 5.1 example files. In WebLogic 6.1 the necessary files and instructions are in your WebLogic 6.1 home directory, under samples/examples/iiop/wls2wls.