WebLogic Server 7.0 Code Examples, BEA Systems, Inc.

Package examples.iiop.rmi.cppclient

This directory contains a c++ client which can be used to call either a Tuxedo Server or a WebLogic Server and also demonstrate server to server connectivity using the underlying WebLogic Tuxedo Connector technology. You must have Visibroker 4.1 installed on your machine in order to get the example running. You set the location of visibroker by modifying the iiop.properties located in the WL_HOME\samples\server\src\examples\iiop directory (for example, it would likely be set to INPRISE_HOME=c:/Inprise/vbroker). You also need a C++ compiler; this example used Microsoft Visual C++. Make sure that your PATH is set so that the compiler can be run.

The source code for all the RMI-IIOP examples is in your WL_HOME\samples\server\src\examples\iiop directory. Before you run the client applications in this directory, be sure to build the full example. This includes building the WebLogic Server and, if you wish to run through the Tuxedo Server, the Tuxedo Server (iiop/rmi/server/tux) as well. Make sure you have run through the set up and building on the WebLogic Server side first and then attempt going through the Tuxedo Server. The following links lead to instructions on setting up the servers:

  • WebLogic Server
  • Tuxedo Server

    Be sure to also take a look at the C++ client code.

    Visibroker

    There are many bugs in Visibroker that make configuring your files and environment correctly a difficult process (Note how we must force GIOP 1.1 for visibroker 4.5). This example demonstrates using Visibroker with an EJB, but it also simultaneously demonstrates how difficult this process can be.

    Visibroker 5.0

    You may now also build this example with visibroker 5.0. to do so, you must make the following changes from the standard instructions below:

    1. You need to specify utf-16/iso-8859-1 as the default native codesets. Change your config.xml within the Server mbean to include the following:

      <Server> <IIOP DefaultCharCodeset="iso-8859-1" DefaultWideCharCodeset="utf-16" Name="myserver"/> </Server>

    2. Do not use GIOP 1.1, and do not use the DefaultMinorVersion entry in your config.xml, this gets specified in the step below.

    3. When running the client you need to use a full corbaloc url (Note the '1.2', which specifies GIOP version. Change:

      Client -ORBInitRef NameService=iioploc://localhost:7001/NameService

      to:

      Client -ORBInitRef NameService=corbaloc:iiop:1.2@localhost:7001/NameService

    Orbix 2000

    You can also run this example using Orbix 2000 rather than Visibroker. To do so, simply edit your iiop.properties file in the WL_HOME\samples\server\src\examples\iiop directory to point to the correct location of Orbix 2000. Then, when you build this client run the build-o2k.xml script rather than the build.xml script.

    Configure WebLogic

    Due to a Visibroker bug in GIOP 1.2 you must force Visibroker to use GIOP 1.1. You can do this by adding the DefaultMinorVersion element to your Server MBean in the config.xml contained in the WL_HOME/samples/server/config/examples directory. For example:
    <Server AcceptBacklog="50" COMEnabled="true" ClusterWeight="1"
            ConsoleInputEnabled="false" DGCIdlePeriodsUntilTimeout="2"
            DefaultProtocol="t3" DefaultSecureProtocol="t3s"
            HttpdEnabled="true" JavaCompiler="C:/bea/jdk131_02/bin/javac"
            ListenPort="7001" Name="examplesServer" NativeIOEnabled="true"
            ServerVersion="7.0.0.0" SocketReaderTimeoutMaxMillis="10"
            TunnelingClientPingSecs="45" TunnelingClientTimeoutSecs="40">
    <IIOP Name="examplesServer" DefaultMinorVersion="1"/>
    </Server>
    

    Build the example

    1. Set up your development shell as described in Setting up your environment.

    2. Execute the build script provided for this example in the samples\examples\iiop\rmi\cppclient directory of your WebLogic Server installation. If you are using Orbix 2000 run the build-o2k.xml.

    Run the Example

    1. Open a separate command-line window in which you will run the client.

    2. Set up the environment for your client as described in Setting up your environment for building and running the examples.

    3. Run the client by executing the Client.exe:
      
      Client.exe -ORBInitRef NameService=iioploc://localhost:7001/NameService 
      

      Enter the correct hostname and port for your particular configuration. You should see the Ping! message in the WebLogic server log.

    4. To run the client through Tuxedo make sure you have built and properly configured the included components necessary for both the Tuxedo server and WebLogic (examples/iiop/ejb/stateless/server/wls and examples/iiop/ejb/stateless/server/wls). The build script included in this example also contains the command needed to run the client. Check the build.xml script provided in the examples\iiop\ejb\stateless\cppclient directory to make sure it is using your correct port and ip address (if you are running this example through tuxedo you must set this to use Tuxedo's ip address). The last section of this xml file contains the run command. Run the client by entering:

      ant run

      You should see the Ping! message in the Tuxedo ULOG where you booted your Tuxedo Server.

    5. To demonstrate server to server connectivity add true to the end of either command editing the run command in the build.xml file (i.e. Client.exe -ORBInitRef NameService=iioploc://localhost:7001/NameService true or Client.exe -ORBInitRef NameService=iioploc://TUX_ip_address:TUX_PORT_Number/NameService true). If you have set up both your environments correctly, the server you have called will make an outbound call to the other server (either Tuxedo or WebLogic) and you should see Ping! in that servers log. In the Tuxedo case, this will be the ULOG where you booted your Tuxedo Server.

    There's more...

    Read more about WebLogic RMI over IIOP in the Developer Guide, Using WebLogic RMI over IIOP.

    Read more about WebLogic EJB in the Developer Guide, BEA WebLogic Server Enterprise JavaBeans.

    Read more about WebLogic RMI in the Developer Guide, Using WebLogic RMI.

    For more information on how to provide interoperability between WebLogic Server applications and Tuxedo services, see WebLogic Tuxedo Connector.
    Documentation is available at
    http://e-docs.bea.com/wls/docs61


    Copyright © 2002 BEA Systems, Inc. All Rights Reserved.