1. 程式人生 > >WebSphere MQ入門教程(27):MQ死信佇列、配置、跟蹤

WebSphere MQ入門教程(27):MQ死信佇列、配置、跟蹤

8.2死信佇列

  出於某種原因無法傳送的訊息都被放置在死信佇列。您可以通過 MQSC 命令 DISPLAY QUEUE 來檢查佇列是否包含訊息。如果佇列包含訊息,則使用所提供的瀏覽樣本應用程式(amqsbcg)來瀏覽佇列上的訊息。樣本應用程式將顯示每個訊息的訊息描述符和訊息上下文欄位。您應該通過分析訊息的死信頭來確定訊息被放在死信佇列的原因。

  8.3配置檔案和問題確定

  配置檔案錯誤通常找不到佇列管理器,和導致佇列管理器不可用。確保配置檔案存在,並且 WebSphere MQ 配置檔案必須和佇列管理器和日誌目錄對應。 在 Windows 登錄檔中的錯誤是在啟動佇列管理器時,通過訊息通知的。

  8.4跟蹤

  本節描述瞭如何產生WebSphere MQ跟蹤資訊。

  8.4.1WebSphere MQ Windows的
跟蹤


  在 WebSphere MQ Windows 版中,您可以使用 strmqtrc 控制命令啟用或修改跟蹤;使用 endmqtrc 控制命令停止跟蹤。您還可以使用 WebSphere MQ 服務管理單元啟動和停止跟蹤。

  8.4.1.1跟蹤的選項

  使用 -t 和 -x 選項控制跟蹤資訊量的詳細程度。預設情況下,啟用所有跟蹤資訊。-x 選項指定不需要跟蹤的資訊。
  例如,如果您僅跟蹤佇列管理器 QM1在通訊網路上流動的資料,則使用:

  strmqtrc -m QM1 -x all -t comms

  8.4.1.2跟蹤檔案

  在安裝過程期間,您可以選擇跟蹤檔案的存放路徑。跟蹤檔案一般放置在目錄 \<mqmwork>\errors 中,其中 <mqmwork> 是WebSphere MQ 資料檔案的安裝目錄。

  跟蹤檔名的格式如下:

   AMQppppp.TRC

   其中 ppppp 是產生跟蹤的程序的程序標識(PID)。
   注:
   1.程序標識號的數字位數不是固定的。
   2.每個被跟蹤的程序都有一個跟蹤檔案。

   8.4.1.3跟蹤資料的示例

   下圖顯示了WebSphere MQ Windows版的跟蹤資料:
   Process : C:\Program Files\IBM\WebSphere MQ\bin\amqxssvn.exe
   Version : 530 Level : p000-L020213
   Date : 02/25/02  Time : 16:35:47
 
Counter  TimeStamp       Process.Thread    Data
============================================================
 
0000062F 16:35:47.348386 6278.1       --{  InitProcessInitialisation
00000630 16:35:47.348455 6278.1       ---{  xcsCreateNTSecurityAtts
00000631 16:35:47.348516 6278.1       ----{  xcsRequestThreadMutexSem
00000632 16:35:47.348583 6278.1       ----}  xcsRequestThreadMutexSem (rc=OK)
00000633 16:35:47.348639 6278.1       ----{  xcsInitGlobalSecurityData
00000634 16:35:47.349111 6278.1       ----}  xcsInitGlobalSecurityData (rc=OK)
00000635 16:35:47.349239 6278.1       ----{  xcsReleaseThreadMutexSem
00000636 16:35:47.349261 6278.1       ----}  xcsReleaseThreadMutexSem (rc=OK)
00000637 16:35:47.349275 6278.1       ---}  xcsCreateNTSecurityAtts (rc=OK)
00000638 16:35:47.349303 6278.1       ---{  xcsReleaseThreadMutexSem
00000639 16:35:47.349319 6278.1       ---}  xcsReleaseThreadMutexSem (rc=OK)
0000063A 16:35:47.349344 6278.1       --}  InitProcessInitialisation (rc=OK)
0000063B 16:35:47.349359 6278.1       --{  xcsCreateThreadMutexSem
0000063C 16:35:47.349395 6278.1       --}  xcsCreateThreadMutexSem (rc=OK)
0000063D 16:35:47.349872 6278.1       --{  xcsProgramInit
0000063E 16:35:47.349900 6278.1       --}  xcsProgramInit (rc=OK)
0000063F 16:35:47.350027 6278.1       --{  xcsInitialize
00000640 16:35:47.350048 6278.1       ---{  xcsRequestThreadMutexSem
00000641 16:35:47.350065 6278.1       ---}  xcsRequestThreadMutexSem (rc=OK)
00000642 16:35:47.350079 6278.1       ---{  xihCheckThreadList
00000643 16:35:47.350101 6278.1       ---}  xihCheckThreadList (rc=OK)
00000644 16:35:47.350115 6278.1       ---{  InitPrivateServices
00000645 16:35:47.350165 6278.1       attributes 32768
00000646 16:35:47.350204 6278.1       ----{  xcsCreateThreadMutexSem
00000647 16:35:47.350233 6278.1       ----}  xcsCreateThreadMutexSem (rc=OK)
00000648 16:35:47.350255 6278.1       pid MQ(6) system(6278)
00000649 16:35:47.350337 6278.1       ---}  InitPrivateServices (rc=OK)
0000064A 16:35:47.350360 6278.1       --{  xxxInitialize
0000064B 16:35:47.350977 6278.1       ---{  xcsGetMem


   8.4.2WebSphere MQ AIX的跟蹤

   WebSphere MQ AIX 使用AIX系統標準跟蹤。跟蹤分為兩步:
   1.採集資料 。
   2.格式化結果資料。

   WebSphere MQ 使用兩個跟蹤 hook 標識:X'30D' 和X'30E' 。

   跟蹤提供了執行跟蹤的詳細資訊來幫助您分析問題。跟蹤產生的檔案可能非常大,所以合理地設定跟蹤。例如,您可以通過時間和元件來限定跟蹤。
   有兩種執行跟蹤的方法:
   1.互動地。
   以下命令是對程式 myprog 運行了互動式跟蹤並結束跟蹤。

trace -j30D,30E -o trace.file
->!myprog
->q

   2.非同步地。

   以下命令對程式 myprog運行了非同步跟蹤和結束跟蹤。

trace -a -j30D,30E -o trace.file
myprog
trcstop

   您可以用以下命令格式化跟蹤檔案:

trcrpt -t /usr/mqm/lib/amqtrc.fmt trace.file > report.file

   report.file 是存放格式化的跟蹤輸出的檔名。
 
   注:
   當跟蹤是
活動
的,將跟蹤所有的WebSphere MQ 活動。

   8.4.2.1跟蹤選項

   可使用環境變數 MQS_TRACE_OPTIONS來分別啟用高階詳細資訊和引數跟蹤的功能。下表定義了MQS_TRACE_OPTIONS的各種配置的跟蹤行為。

   表,MQS_TRACE_OPTIONS 設定

<style><!-- /* Font Definitions */ @font-face {font-family:宋體; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"\@宋體"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋體; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:612.0pt 792.0pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:36.0pt; mso-footer-margin:36.0pt; mso-paper-source:0;} div.Section1 {page:Section1;} --></style>

MQS_TRACE_OPTIONS

跟蹤資訊

取消設定(預設值)

預設跟蹤(除高階詳細資訊之外的所有跟蹤)

0

沒有WebSphere MQ跟蹤

262148

入口,出口和引數跟蹤

786436

入口,出口、引數和高階詳細資訊跟蹤

4980740

入口,出口、引數、高階詳細資訊和SSL跟蹤

3407871

不帶引數跟蹤的預設跟蹤

3670015

預設跟蹤,包含引數跟蹤

7864319

預設跟蹤,包含引數跟蹤和SSL跟蹤

4194303

所有跟蹤,包含高階詳細資訊跟蹤

 
   注:
   1.    最好需要在技術支援人員的指導下,設定MQS_TRACE_OPTIONS環境變數。
   2.    通常在啟動佇列管理器之前設定MQS_TRACE_OPTIONS。
   3.    在跟蹤開始前設定 MQS_TRACE_OPTIONS。

   8.4.2.2 SSL 跟蹤

   如果您請求 SSL 跟蹤,請注意以下內容:
   •    SSL 跟蹤是寫到目錄 /var/mqm/trace 的。
   •    SSL 跟蹤檔案是 AMQ.SSL.TRC 和 AMQ.SSL.TRC.1。
   •    您無法格式化 SSL 跟蹤檔案;將它們原封不動地發給IBM 技術支援中心。

   8.4.2.3跟蹤資料的示例

   下圖顯示了WebSphere MQ AIX跟蹤的資料:

ID     ELAPSED_SEC     DELTA_MSEC   APPL    SYSCALL KERNEL  INTERRUPT
 
30D    0.000000000       0.000000   MQS FNC Entry. 71540.1 zcpSendOnPipe
30E    0.000000038       0.000038   Msg Unencumbered (T/F)(0)
30D    0.000000176       0.000138   MQS FNC Exit............. 51604.55
                                    aqhCheckMsgUnencumbered rc=00000000
30E    0.000000418       0.000242   aqhCheckMsgChains : internal retcode
                                       208007d3
                                    
30D    0.000000516       0.000098   MQS FNC Entry.. 71540.14 xcsWaitEventSem
30E    0.000000590       0.000074   MessageSent (24 bytes)
30E    0.000000847       0.000257   aqhCheckMsgChains : internal retcode
                                       208007d3
                                    
30E    0.000000936       0.000089   hev=1::0::0-307724 TimeOut(-1)
30E    0.000001173       0.000237   aqhCheckMsgChains : internal retcode
                                       208007d3
                                    
30D    0.000001313       0.000140   MQS FNC Entry............ 51604.55 
                                    aqtIdxToSpcFn
30D    0.000001395       0.000082   MQS FNC Exit............. 51604.55
                                    aqtIdxToSpcFn rc=00000000
30D    0.000001439       0.000044   MQS FNC Entry........ 36124.51
                                    xcsCheckProcess
30D    0.000001501       0.000062   MQS FNC Entry............ 51604.55
                                    aqhCheckMsgUnencumbered
30E    0.000001645       0.000144   MQS Data from zcpSendOnPipe Length=0018                                       
                                        5A525354 000007E5 00000000 00000000
                                        ZRST 00000000 00000000  
30E    0.000001765       0.000120   pBCrsr (0)
30D    0.000001907       0.000142   MQS FNC Entry............. 51604.55
                                    aqhInTrans
30D    0.000001997       0.000090   MQS FNC Exit.............. 51604.55
                                    aqhInTrans rc=00000000
30D    0.000002025       0.000028   MQS FNC Entry.. 71540.1 xcsResetEventSem
30E    0.000002243       0.000218   Msg Unencumbered (T/F)(0)
30D    0.000002363       0.000120   MQS FNC Exit............. 51604.55
                                    aqhCheckMsgUnencumbered rc=00000000
30E    0.000002392       0.000029   hev=1::0::0-305876
30D    0.000002522       0.000130   MQS FNC Entry... 71540.14 xlsLockEvent
30E    0.000002630       0.000108   aqhCheckMsgChains : internal retcode
                                       208007d3