0

次の場合に使用されます。

int topicOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING;
MQTopic mqTopic = qmgr.AccessTopic(mqCloneSpecs.topicString, "", 
    MQC.MQTOPIC_OPEN_AS_PUBLICATION, topicOptions);

プログラムの上記の部分は、Windows サービスでリスナー クラスを呼び出すために使用される QueueManagers のリストとトピックのリストを作成します。

int tLoopCounter = 0;
foreach (MQTopic topic in topicOut)
{
    tLoopCounter++;
    // NOTE: We blow up here with 2019 MQRC_HOBJ_ERROR if we access the property topic.Name 
    //Console.WriteLine("Loop through topics topic.IsOpen: " + topic.IsOpen); 
    //Console.WriteLine(" OpenOptions:" + topic.OpenOptions); 
    debugLocation = "4053";
    Console.WriteLine(" OpenStatus=" + topic.OpenStatus);


    debugLocation = "4054";
    i = tLoopCounter - 1;
    Console.WriteLine("i=" + i);
    debugQueueInfo = " topicPut #" + tLoopCounter + " QueueMgr:" + queueManagerForTopicsOut[i].Name.TrimEnd();

    // currently getting 2019 : MQRC_HOBJ_ERROR on the line below 
    debugLocation = "4055";
    debugQueueInfo += "Topic:" + topic.Name; 
    Console.WriteLine("Pump:Topic.Put:" + debugLocation + ":" + debugQueueInfo);

    debugLocation = "4057";
    topic.Put(mqMessage);
    Console.WriteLine("Pump:Topic.Put completed"); 

}

次に示すように、照会オプションを追加しようとすると、次のようになります。

int topicOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING + MQC.MQOO_INQUIRE;

その後、私はこのエラーで死にます:

DebugLocation=Q3012 例外: System.ApplicationException: Access ssQueue での MQException ---> IBM.WMQ.MQException: MQRC_OPTIONS_ERROR

また、debugLocation=4053 の Console.WriteLINE からの OpenStatus=True。閉じていると、このエラーが発生するだろうと最初に考えました。

4

0 に答える 0