Hitachi

OpenTP1 Version 7 メッセージキューイングアクセス機能 TP1/Message Queue Access 使用の手引


2.4.4 JMSPRFトレースファイルの取得形式

JMSPRFトレースファイルには,性能検証用の情報が出力されます。

JMSPRFトレースを編集するには,Cosminexus Performance Tracerをインストールする必要があります。また,トレース情報の強制ファイル出力(cprfflushコマンド),およびトレース情報ファイルの編集出力(cprfedコマンド)については,マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」を参照してください。

ここでは,JMSPRFトレースの取得レベルとイベントIDごとの取得内容について説明します。

〈この項の構成〉

(1) 取得レベル

JMSPRFトレースファイルでは取得レベルを指定できます。デフォルトは「レベル1」です。

(2) 取得ポイント

トレース情報が取得されたタイミングは,出力されたイベントIDで識別します。イベントIDおよびTP1/Message Queue AccessのJMSPRFトレース情報の取得ポイントを次の表に示します。

表2‒11 JMSPRFトレース情報の取得ポイント

イベントID

トレース取得ポイント

詳細情報データ長

(単位:バイト)

0x9200

send(message only)の入口

0

0x9210

send(message only)の出口

152

0x9201

send(message and 3 parameters)の入口

0

0x9211

send(message and 3 parameters)の出口

152

0x9202

send(queue, message)の入口

0

0x9212

send(queue, message)の出口

152

0x9203

send(queue, message and 3 parameters)の入口

0

0x9213

send(queue, message and 3 parameters)の出口

152

0x9204

receive()の入口

0

0x9214

receive()の出口

152

0x9205

receive(long timeout)の入口

0

0x9215

receive(long timeout)の出口

152

0x9206

receiveNoWait()の入口

0

0x9216

receiveNoWait()の出口

152

0x9207

nextElement()の入口

0

0x9217

nextElement()の出口

152

0x92A0

キュー監視スレッド・MQCONNの入口

0

0x92B0

キュー監視スレッド・MQCONNの出口

152

0x92A1

キュー監視スレッド・MQOPENの入口

0

0x92B1

キュー監視スレッド・MQOPENの出口

152

0x92A2

キュー監視スレッド・MQGET(検索)の入口※1

0

0x92B2

キュー監視スレッド・MQGET(検索)の出口※2

152

0x92A3

キュー監視スレッド・MQGET(削除)の入口

0

0x92B3

キュー監視スレッド・MQGET(削除)の出口

152

0x92A4

キュー監視スレッド・MQGET(ガーベッジ)の入口

0

0x92B4

キュー監視スレッド・MQGET(ガーベッジ)の出口

152

0x92A5

キュー監視スレッド・MQCLOSEの入口

0

0x92B5

キュー監視スレッド・MQCLOSEの出口

152

0x92A6

キュー監視スレッド・MQDISCの入口

0

0x92B6

キュー監視スレッド・MQDISCの出口

152

0x92A7

キュー監視スレッド・MQBEGINの入口

0

0x92B7

キュー監視スレッド・MQBEGINの出口

152

0x92A8

キュー監視スレッド・MQCMITの入口

0

0x92B8

キュー監視スレッド・MQCMITの出口

152

0x92A9

キュー監視スレッド・MQBACKの入口

0

0x92B9

キュー監視スレッド・MQBACKの出口

152

0x92AA

キュー監視スレッド・onMessageの入口

0

0x92BA

キュー監視スレッド・onMessageの出口

152

0x92AB

キュー監視スレッド・beforeDeliveryの入口

0

0x92BB

キュー監視スレッド・beforeDeliveryの出口

152

0x92AC

キュー監視スレッド・afterDeliveryの入口

0

0x92BC

キュー監視スレッド・afterDeliveryの出口

152

注※1

前回のMQGET(検索)の理由コードに,MQRC_NO_MSG_AVAILABLEが返された場合,MQGET(検索)が繰り返し実行されますが,その場合,0x92A2のトレースファイルは取得されません。

注※2

MQGET(検索)の理由コードにMQRC_NO_MSG_AVAILABLEが返された場合,スレッド終了時を除いて0x92B2のトレースファイルは取得されません。

(3) イベントIDごとの取得内容

JMSPRFトレースファイルのイベントIDごとの取得内容を,次の表に示します。メッセージ識別子または相関識別子によって,MQCサーバでのメッセージを特定できます。

表2‒12 JMSPRFトレースファイルのイベントIDごとの取得内容

イベントID

リターンコード

インタフェース名※2

オペレーション名※2

詳細情報※1

キュー名称(48)

メッセージ識別子(32)

相関識別子(32)

ユーザデータ(32)

コネクションハンドル(4)

オブジェクトハンドル(4)

0x9200

0x9210

0x9201

0x9211

0x9202

0x9212

0x9203

0x9213

0x9204

0x9214

0x9205

0x9215

0x9206

0x9216

0x9207

0x9217

0x92A0

0x92B0

0x92A1

0x92B1

0x92A2

0x92B2

0x92A3

0x92B3

0x92A4

0x92B4

0x92A5

0x92B5

0x92A6

0x92B6

0x92A7

0x92B7

0x92A8

0x92B8

0x92A9

0x92B9

0x92AA

0x92BA

0x92AB

0x92BB

0x92AC

0x92BC

(凡例)

○:情報を取得します。

▲:情報を取得しますが,エラーの場合は無効な値です。

△:情報を取得しますが,常に無効な値です。

−:情報を取得しません。

注※1

cprfedコマンドに-Dumpまたは-CSVを指定した場合に出力される情報,および出力順序を示します。括弧内は,取得バイト数です。

注※2

出力される文字数の詳細については,マニュアル「Cosminexus V9 アプリケーションサーバ リファレンス コマンド編」の「cprfed(性能解析トレース情報の編集出力)」の「出力形式」を参照してください。

(4) 表示形式

(a) JMSPRFトレース情報の表示形式

取得したトレース情報はcprfedコマンドで出力される次の形式に対応します。

  • リターンコード

    リターンコードは,「Rc」に表示されます。

    イベントID

    トレース取得ポイント

    リターンコード

    0x920

    入口

    0

    0x921,0x922

    正常出口

    1

    異常出口

    -1

    0x92B0〜0x92B9

    正常出口

    0

    異常出口

    (各MQIの理由コード)

    0x92BA〜0x92BC

    正常出口

    0

    異常出口

    -1

  • インタフェース名

    インタフェース名は,「INT」に「MQAccess:メソッド名」の形式で表示されます。

    イベントID

    インタフェース名

    0x9200,0x9210

    MQAccess:send(message only)

    0x9201,0x9211

    MQAccess:send(msg, 3param)

    0x9202,0x9212

    MQAccess:send(queue, message)

    0x9203,0x9213

    MQAccess:send(que, msg, 3param)

    0x9204,0x9214

    MQAccess:receive(no argument)

    0x9205,0x9215

    MQAccess:receive(timeout)

    0x9206,0x9216

    MQAccess:receiveNoWait

    0x9207,0x9217

    MQAccess:browse(nextElement)

    0x92A0,0x92B0

    MQAccess:run MQCONN

    0x92A1,0x92B1

    MQAccess:run MQOPEN

    0x92A2,0x92B2

    MQAccess:run MQGET(browse)

    0x92A3,0x92B3

    MQAccess:run MQGET(delete)

    0x92A4,0x92B4

    MQAccess:run MQGET(garbage)

    0x92A5,0x92B5

    MQAccess:run MQCLOSE

    0x92A6,0x92B6

    MQAccess:run MQDISC

    0x92A7,0x92B7

    MQAccess:run MQBEGIN

    0x92A8,0x92B8

    MQAccess:run MQCMIT

    0x92A9,0x92B9

    MQAccess:run MQBACK

    0x92AA,0x92BA

    MQAccess:run onMessage

    0x92AB,0x92BB

    MQAccess:run beforeDelivery

    0x92AC,0x92BC

    MQAccess:run afterDelivery

  • オペレーション名

    オペレーション名は,「OPR」に「オブジェクト名&ハッシュコード」の形式で表示されます。

    イベントID

    オペレーション名

    0x9200,0x9210,0x9201,0x9211,0x9202,0x9212,0x9203,0x9213

    jp.co.Hitachi.soft.mqadaptor.QueueSenderImpl@00000000

    【出力文字列】*adaptor.QueueSenderImpl@00000000

    0x9204,0x9214,0x9205,0x9215,0x9206,0x9216

    jp.co.Hitachi.soft.mqadaptor.QueueReceiverImpl@00000000

    【出力文字列】*aptor.QueueReceiverImpl@00000000

    0x9207,0x9217

    jp.co.Hitachi.soft.mqadaptor.MessageEnumeration@00000000

    【出力文字列】*ptor.MessageEnumeration@00000000

    0x92A0,0x92B0,0x92A1,0x92B1,0x92A2,0x92B2,0x92A3,0x92B3,0x92A4,0x92B4,0x92A5,0x92B5,0x92A6,0x92B6,0x92A7,0x92B7,0x92A8,0x92B8,0x92A9,0x92B9,0x92AA,0x92BA,0x92AB,0x92BB,0x92AC,0x92BC

    jp.co.Hitachi.soft.mqadaptor.ThreadController@00000000

    【出力文字列】*daptor.ThreadController@00000000

    注※

    オブジェクトの文字列表現の後ろ32文字が出力されます。

(b) JMSPRFトレースファイル個別情報の表示形式

cprfedコマンドの-Dumpオプション(詳細情報をダンプ形式で出力),または-CSVオプション(詳細情報をCSV形式で出力)で表示される詳細情報は,OPTに連続して表示されます。

  • キュー名称

      aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(キュー名称(48バイト))
      合計48バイト
      キュー名称が48バイト以下の場合,後ろが「\0」で埋められます。
  • メッセージ識別子

      bbbbbbbbbbbbbbbbbbbbbbbb(メッセージ識別子(24バイト) + 
      ”\0\0\0\0\0\0\0\0”)
      合計32バイト
      接頭辞が「ID:」で始まる場合,取得する情報は「ID:」以降の24バイトと
      なります。
  • 相関識別子

      cccccccccccccccccccccccc(相関識別子(24バイト) + 
    ”\0\0\0\0\0\0\0\0”)
      合計32バイト
      接頭辞が「ID:」で始まる場合,取得する情報は「ID:」以降の24バイトと
      なります。
  • ユーザデータ

      dddddddddddddddddddddddddddddddd(ユーザデータ先頭32バイト)
      合計32バイト
       ユーザデータが32バイト以下の場合,後ろが「\0」で埋められます。
  • コネクションハンドル

      eeeeeeee(コネクションハンドル,4バイト16進情報)
      合計4バイト
  • オブジェクトハンドル

      ffffffff(オブジェクトハンドル,4バイト16進情報)
      合計4バイト