CORBA

To be able to use ClassiX® Corba Interfaces, it is necessary to first setup the CORBA environment. ClassiX® uses TAO as a CORBA solution.

Setup

Here it is enough to adopt the directory \classix\bin\ACETAO into the search path. The directory contains a number of DLLs and an .EXE file, which is basically the naming service (see below). The DLLs need to be readable and executable for all users.

With this, the setup is complete.

Naming Service

To exchange messages between different  ClassiX® instances via SendMsg(..., REMOTE), there must be a Corba naming service in the network. This naming service finds the single instances.

Naming_Service.exe represents the TAO naming service. In the normal operation mode, the program generates no message.

A TCP/IP port which accepts connections, needs to be defined when calling the naming service. This is done with the following command line:

Naming_Service.exe -ORBEndPoint iiop://hostname:port

With this, hostname and port need to be replaced by the required values. If the naming service should be accessible for other computers on the network, hostname needs to identify an external interface - the local loopback interface address (127.0.0.1) is not suited for this. Router and maybe a firewall certainly need to be configured on the network, so all computers which have to use the service, can be connected. Furthermore, Naming_Service.exe needs to be authorized to connect to the indicated port. 

On client side, the address either needs to be put into an environment variable:

SET NameServiceIOR=corbaloc:iiop:hostname:port/NameService

or it has to be passed via command line parameter:

cx_osr.exe -ORBInitRef NameService=corbaloc:iiop:hostname:port/NameService

Testing the Corba Environment

In case you have access to the ClassiX Cxsendmsg Tool, you can check whether the Corba naming service generally works in your network or not. Starting from a network with no Corba applications so far, you need to conduct the following steps:

  • Please start the Corba naming service on a console as described above:
    Naming_Service.exe -ORBEndPoint iiop://localhost:12345
  • Start on another console on the same computer Cxsendmsg in receiver mode:
    cxsendmsg.exe -P -N -l corbareceive -ORBInitRef NameService=corbaloc:iiop:localhost:12345/NameService
  • Start on another console on the same computer in sender mode:
    cxsendmsg.exe -S -r corbareceive -m TEST_CORBA -ORBInitRef NameService=corbaloc:iiop:localhost:12345/NameService
  • You should now be able to see incoming messages on the Cxsendmsg receiver console ("TEST_CORBA"). With the specification "localhost" at the top, the naming service only accepts requests from the own computer. After this first test was successful, please check whether connections can also be made via network. For this, please end the naming service first. Execute the steps from above again, but replace all three "localhost" occurrences with an IP address, which indicates an external interface. Please also call Cxsendmsg on different computers. You should also be able to see incoming messages under these circumstances.

    Error

    In case no naming service can be found, a problem report appears as soon as functions, such as EnableRemoteMessages or RemoteClients are called. To avoid this, it can be checked before via function RemoteServicesAvailable, whether CORBA (or another remote service) is available at all.

    Related Topics

    Last modifications: 2007-02-13