C++のサンプルコーディング
コーディング例を示します。
#include <stdio.h> #include <imqi.hpp> // include MQAccess C++ class int main (void) { ImqQueueManager mgr(" "); /* queue manager name */ ImqQueue queue; /* queue */ ImqMessage msg; /* message */ ImqString str("****** C++ sample put data ******"); /* message data */ ImqGetMessageOptions getoption; /* get message options */ ImqPutMessageOptions putoption; /* put message options */ // connect to the queue manager if ( ! mgr.connect( ) ) { /* stop if it failed */ printf( "ImqQueueManager::connect ended with reason code %d\n", (int)mgr.reasonCode( ) ); return ( (int)mgr.reasonCode( ) ); } // set the connection reference queue.setConnectionReference( mgr ); // set the queue name queue.setName("dynq1"); // set the message msg.writeItem( str ); // set the open options queue.setOpenOptions(MQOO_OUTPUT | MQOO_INPUT_AS_Q_DEF); // open the queue queue.open( ); if ( queue.reasonCode( ) ) { printf( "ImqQueue::open ended with reason code %d\n", (int)queue.reasonCode( ) ); return( (int)queue.reasonCode( ) ); } // set the get message options getoption.setSyncPointParticipation(TRUE); // set the put message options putoption.setSyncPointParticipation(TRUE); // begin local transaction if ( ! mgr.begin( ) ) { printf( "ImqQueueManager::begin ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } // put the message if ( ! queue.put( msg, putoption ) ) { printf( "ImqQueue::put ended with reason code %d\n", (int)queue.reasonCode( ) ); } // commit local transaction if ( queue.reasonCode( ) == 0 ) { if ( ! mgr.commit( ) ) { printf( "ImqQueueManager::commit ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } } else { if ( ! mgr.backout( ) ) { printf( "ImqQueueManager::backout ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } } // begin local transaction if ( ! mgr.begin( ) ) { printf( "ImqQueueManager::begin ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } // get the message if ( ! queue.get( msg, getoption ) ) { printf( "ImqQueue::get ended with reason code %d\n", (int)queue.reasonCode( ) ); } // commit local transaction if ( queue.reasonCode( ) == 0 ) { if ( ! mgr.commit( ) ) { printf( "ImqQueueManager::commit ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } } else { if ( ! mgr.backout( ) ) { printf( "ImqQueueManager::backout ended with reason code %d\n", (int)mgr.reasonCode( ) ); return( (int)mgr.reasonCode( ) ); } } // close the queue if ( ! queue.close( ) ) { printf( "ImqQueue::close ended with reason code %d\n", (int)queue.reasonCode( ) ); } // disconnect from the queue manager if ( ! mgr.disconnect( ) ) { printf( "ImqQueueManager::disconnect ended with reason code %d\n", (int)mgr.reasonCode( ) ); } return (0); }