Используя классы IBM. NET, я пишу приложение C# для мониторинга IBM MQ. Я могу подключиться к администратору очередей и очереди, и я могу читать сообщения и их длину. У меня была удача, пока ...
Я не могу понять, как перечислить имена очередей в администраторе очередей. Да, я знаю, что IBM не предлагает никаких классов. NET для этой функции; они предлагают их только в Java, что для меня запрещено. Тем не менее, я читал здесь и на нескольких других платах, что это возможно с помощью обходного пути (ниже).
Проблема в том, что я получаю сообщение об ошибке: «MQ C не содержит определения для MQCMD_INQUIRE_Q. " Я снова ссылался на DLL, пробовал всевозможные «использования» и даже пытался заменить MQCMD_INQUIRE_Q другими подобными командами в MQ C, но все безуспешно.
Снимок экрана ошибки:
Мой код:
public void InquireQueues()
{
try
{
PCFMessageAgent messageAgent = new PCFMessageAgent("QM");
//Error is on the following line
PCFMessage pcfMsg = new PCFMessage(MQC.MQCMD_INQUIRE_Q);
pcfMsg.AddParameter(MQC.MQCA_Q_NAME, "*");
pcfMsg.AddParameter(MQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);
PCFMessage[] pcfResponse = messageAgent.Send(pcfMsg);
int pcfResponseLen = pcfResponse.Length;
for (int pcfResponseIdx = 0; pcfResponseIdx < pcfResponseLen; pcfResponseIdx++)
{
PCFParameter[] parameters = pcfResponse[pcfResponseIdx].GetParameters();
foreach (PCFParameter pm in parameters)
{
Console.WriteLine(pm.Parameter + " - " + pm.GetValue());
}
}
messageAgent.Disconnect();
}
catch (MQException ex)
{
Console.Write(ex);
}
}
Я использую. NET 4.5.2 и последний amqm dnet. Библиотека DLL. Кто-нибудь преодолел эту проблему или есть другая идея? Спасибо.