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 设置


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