XmlBlaster Logo



XmlBlaster Logo

Type NEW
Priority LOW
Topic C++ clients can access xmlBlaster with the MICO Corba library

There is support for MICO to access xmlBlaster from CORBA clients.

Support was developed against MICO 2.3.7, 2.3.8 and 2.3.11. Other MICO versions should work as well. Make sure to follow the MICO installation instructions.

Mico 2.3.11 and above is now multi threaded so operations like doing a subscribe() in an update() is now supported.


Here is an example using xmlBlaster which runs with JacORB, starting a NameService from ORBIX and connect with a C++ client using MICO.

# Start ORBIX name service, configured to dump the NameService IOR to /tmp/ns.ior.
# You can check the name service with the itadmin tool
. /opt/orbix/etc/bin/XX_env

# Start the server
java -DORBInitRef.NameService=file:///tmp/ns.ior \
     org.xmlBlaster.Main \
     -trace[corba] true \
     -bootstrapPort 0 \
     -cluster.node.id heron

# Start a C++ client
cd xmlBlaster/testsuite/src/c++/bin
TestGet -ORBInitRef NameService=`cat /tmp/ns.ior` inet:myHost.org:7608 -trace true -call true


To compile you can use the xmlBlaster/build.xml file.

Please take a copy from xmlBlaster/build.properties into your home directory (it has precedence there) and adjust the path settings to find CORBA and the XML parser. Example:

# C++ Unix/Linux example with mico 2.3.7
CORBACPP_HOME = /usr/local/mico
corba.product = MICO

Compile it with ant:

cd xmlBlaster
build -verbose cpp

This creates:
and some test clients in

On Windows you should add all directories containing dll libraries to your path setting.

On Solaris and Linux the shared library path is burned into the executable so you need to set LD_LIBRARY_PATH only when you move libraries to other locations (try ldd TestGet).

Property Default / Example Description Implemented
-ORBIIOPAddr inet:[host addr]:[port number] Bind the mico callback server on a specified port yes

NOTE: Configuration parameters are specified on command line (-someValue 17) or in the xmlBlaster.properties file (someValue=17). See requirement "util.property" for details.
Columns named Impl tells you if the feature is implemented.
Columns named Hot tells you if the configuration is changeable in hot operation.


Known bugs

Mico 2.3.7 and 2.3.8 fail to reinitialize the orb instance if once the ORB is shutdown.

Testsuite is missing.

See http://www.mico.org
See http://www.xmlblaster.org/xmlBlaster/doc/doxygen/c++/namespaces.html
See REQ client.cpp
See REQ client.cpp.compile

This page is generated from the requirement XML file xmlBlaster/doc/requirements/client.cpp.mico.xml

Back to overview