3

MQ データを取引するベンダーの 1 つには、次のようなモニターがあります。

ここに画像の説明を入力

x 分ごとにキューの深さのスナップショットを取得する独自の C# モニターを作成しましたが、キューに入れられ、キューから取り出されたメッセージの数を取得する方法を知りたいです。これらの 2 つの統計は、私には異なる性質のように見えます。私にとって、キューの深さは特定の時点です。上記のレポートは、実際には 5 分間の「High Q Depth」を示しています。

これらの統計を収集する方法について、C#/.NET MQ API ガイドの何かを教えてもらえますか? そうでない場合、これらの統計を取得できるトリックまたはツールは何ですか?

4

2 に答える 2

3

IBM.WMQ.PCFMQ .NET には、名前空間での PCF に対する文書化されていない「サポート」があります。などのクラスがありますPCFAgent, PCFMessage。これらは、PCF メッセージの読み取りに使用できます。

静的監視の場合、キューで「Queue Statics」をオンにできます。here で説明されているように、キューの静的メッセージには、キューに入れられた、またはキューから取得されたメッセージの数などの情報が含まれています。

サンプル・コード: このコードは、キュー・マネージャーに Q1 という名前のキューを照会します。

    public void InquireQmgr()
    {
        try
        {
            PCFMessageAgent messageAgent = new PCFMessageAgent("QM");

            PCFMessage pcfMsg = new PCFMessage(MQC.MQCMD_INQUIRE_Q);
            pcfMsg.AddParameter(MQC.MQCA_Q_NAME, "Q1");

            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);
        }
    }
于 2013-04-24T05:23:12.940 に答える