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バイト