A little while ago I got to dust off my C++ skills for a project that was to use Oracle Database (via OCCI) and also
Websphere MQ. Oracle and IBM already make a range of demos available, but they are mostly all very closely scoped on
one feature only. Since I didn't find anything that included all they key concepts in a full working demo, I put
together a combined OCCI/MQ demo to do the job (available for download as a tar/gzip file here: occidemo.tgz, see the readme.txt for details).
A couple of key things demonstrated:
C++ (OCCI) Oracle database access
Transparent Application Failover (TAF) notifications in C++ (OCCI)
Building a C++ application with MQ and OCCI support
Using makefile flags to build either with full or a "stub" database library class
The demo is written for Linux (32 or 64 bit) and has been tested with Oracle Database 10g Server, Oracle 10g
Instant Client, and IBM WebSphere MQ 6.0.
The diagrams below give a simple exposition of how the demo is structured. The executables "mqproducer" and
"mqconsumer" are MQ clients shuttle messages back-and-forth via queues. For each message sent by "mqproducer", a reply
is expected from "mqconsumer". The readme.txt in the archive contains
fairly detailed coverage of how to run the demo.
If the sample is built with full database support, then a "dblibrary" is linked in that will persist each message to
database (and the dblibrary_test program can be use to test the operation). If the
sample is built with a database "stub", then a dummy database library is substitued, and the programs a built without
any Oracle Database support linked in at all. This can be useful when just wanting to focus on the MQ aspects in
isolation.