Имена разрешенного администратора очередей и разрешенной очереди возвращаются в файле дескриптор объекта, доступный во время MQXR_AFTER
вызов PUT1 или OPEN.
Взгляните на пример программы `amqsaxe0.c, и вы увидите следующие сигнатуры функций:
MQ_OPEN_EXIT OpenAfter;
void MQENTRY OpenAfter ( PMQAXP pExitParms
, PMQAXC pExitContext
, PMQHCONN pHconn
, PPMQOD ppObjDesc
, PMQLONG pOptions
, PPMQHOBJ ppHobj
, PMQLONG pCompCode
, PMQLONG pReason
)
MQ_PUT1_EXIT Put1After;
void MQENTRY Put1After ( PMQAXP pExitParms
, PMQAXC pExitContext
, PMQHCONN pHconn
, PPMQOD ppObjDesc
, PPMQMD ppMsgDesc
, PPMQPMO ppPut1MsgOpts
, PMQLONG pBufferLength
, PPMQVOID ppBuffer
, PMQLONG pCompCode
, PMQLONG pReason
)
Дескриптор объекта в вызове before имеет имя объекта, указанное приложением. Эта же структура в последующем вызове имеет имя QMgr и очереди, которые были разрешены во время вызова. Поскольку PUT1 выполняет открытие, размещение и закрытие за один шаг, он должен разрешать имя очереди. Однако в случае отдельных вызовов open, put(, put...), close разрешение имени происходит только один раз во время открытия.
См. образцы в /var/mqm/samp
или C:\Program Files (x86)\IBM\WebSphere MQ\tools\c\Samples
для программы amqsaxe0.c
.
16.09.2012