When creating a queue manager, a number of parameters can be specified.
First, create the QueueAdminMsg object. This needs to be primed using code to setup the origin queueManagerAdmin reply etc.
Figure 15. Creating the QueueAdminMsg object
MQeFields parms = new MQeFields(); MQeFields queueManagerParameters = new MQeFields(); queueManagerParameters.putAscii(MQeQueueManager.Name, "MyQmgrName"); parms.putFields(MQeQueueManager.QueueManager, queueManagerParameters); MQeFields registryParameters = new MQeFields(); registryParameters.putAscii(MQeRegistry.DirName, "c:\MyRegLocation"); parms.putFields(MQeQueueManager.Registry, registryParameters); String queueStore = "MsgLog:" + java.io.File.separator + "queues"; MQeQueueManagerConfigure qmConfig = new MQeQueueManagerConfigure(parms, queueStore); qmConfig.defineQueueManager(); qmConfig.defineDefaultSystemQueue(); qmConfig.defineDefaultDeadLetterQueue(); qmConfig.defineDefaultAdminReplyQueue(); qmConfig.defineDefaultAdminQueue(); qmConfig.close();
The information for the queue is passed in via a structure to the API. Two important points are:
MQeQueueManagerParms qmParams = QMGR_INIT_VAL; MQeRegistryParms regParams = REGISTRY_INIT_VAL; /* String parameters for the location of the msg store */ qmParams.hQueueStore = hQueueStore; /* Indicate what parts of the structure have been set */ qmParams.opFlags = QMGR_Q_STORE_OP; /* ... create the registry parameters - minium that are required */ regParams.hBaseLocationName = hRegistryDir; rc = mqeAdministrator_QueueManager_create(hAdministrator, &exceptBlk, &hQueueManager, hLocalQMName, &qmParams, ®Params);