技术开发 频道

WebSphere MQ v6 Java组件诊断

    【IT168 技术文章】

    对于MQ的Java组件,例如MQ资源管理器(Eclipse环境)和MQ Transport for SOAP的java实施,诊断信息是使用标准的MQ诊断设施或java诊断类来输出的。此上下文的诊断信息由跟踪、首次故障数据捕获(FFDC)和错误消息组成。

    可以选择使用MQ设施还是java类来生成此信息。如果本地有MQ诊断设施可用。就尽量使用这些设施。

    在以下情况下需要使用java诊断:

    1、在有队列管理器的系统上,如果队列管理器与正在运行的软件是分开管理的。

    2、要减少MQ跟踪的性能开销

    MQ的java进程使用了2个系统属性:

    1、系统属性com.ibm.mq.commonservices指定一个标准的java属性文件,该文件中有几行代码可用于配置诊断输出。

    2、系统属性com.ibm.mq.commonservices.diagid将跟踪和FFDC文件与创建他们的进程关联。

    com.ibm.mq.commonservices:

    Diagnostics.MQ=enabled|disabled

    将要使用MQ诊断吗?如果启用了这个属性,诊断输出将与其他MQ组件的诊断输出一样;而跟踪 输出则由strmqtrc和endmqtrc命令中参数来控制,默认值是enabled。

    Diagnostics.Java=options

    使用java跟踪来跟踪哪个组件。选项是explorer,soap和wmqjavaclasses中的一个或多个, 由逗号分隔。其中explorer表示诊断来自MQ资源管理器,soap表示诊断来自MQTransport  for SOAP,而wmqjavaclasses表示诊断来自底层MQ java类。缺省情况不跟踪任何组件。

    Diagnostics.Java.Trace.Destination.File=enabled|disabled

    是否将java跟踪写入文件。如果未设置diagnostics,java将忽略此属性。缺省是disabled。

    Diagnostics.Java.Trace.Detail=high|medium|low

    java跟踪的详细级别。high和medium与MQ跟踪中使用的一样,但low是java跟踪独有的。如 果没有设置diagnostics.java将忽略此属性。缺省值是medium。

    Diagnostics.Java.Trace.Destination.Console=enabled|disabled

    是否将java跟踪写入系统控制台。如果未设置diagnostics,java将忽略此属性。缺省是 disabled

    Diagnostics.Java.Trace.Destination.Pathname=dirname

    将写入java跟踪的目录。如果没有设置diagnostic.java或  diagnostics.java.trace.desctination.file=disabled,将忽略此属性。在unix上缺省是/var/mqm/trace否则将是java控制台system.err。在windows缺省是系统控制台。

    Diagnostics.Java.FFDC.Destination.Pathname=dirname

    将写入java FFDC输出的目录。缺省是当前工作目录

    Diagnostics.Java.Errors.Destination.Filename=filename

    将写入java错误消息的标准文件名。缺省值是当前工作目录中的AMQJAVA.LOG

   

以下是com.ibm.mq.commonservices属性文件样本

    #

    #BaseWebSphereMQdiagnosticsaredisabled

    #

    Diagnostics.MQ=disabled

    #

    #JavadiagnosticsforWebSphereMQTransportforSOAP

    #andtheWebSphereMQJavaClassesarebothenabled

    #

    Diagnostics.Java=soap,wmqjavaclasses

    #

    #HighdetailJavatrace

    #

    Diagnostics.Java.Trace.Detail=high

    #

    #Javatraceiswrittentoafileandnottotheconsole.

    #

    Diagnostics.Java.Trace.Destination.File=enabled

    Diagnostics.Java.Trace.Destination.Console=disabled

    #

    #DirectoryforJavatracefile

    #

    Diagnostics.Java.Trace.Destination.Pathname=c:\\tracedir

    #

    #DirectoryforFirstFailureDataCapture

    #

    Diagnostics.Java.FFDC.Destination.Pathname=c:\\ffdcdir

    #

    #Directoryforerrorlogging

    #

    Diagnostics.Java.Errors.Destination.Filename=c:\\errorsdir\\SOAPERRORS.LOG

    #

    JAVA跟踪和FFDC文件

    在对MQ资源管理器或MQ Transport for soap生成java跟踪时,跟踪将被写入一个名称格式为AMQ.diagid.counter.TRC的文件,其中diagid是与此java进程关联的系统属性com.ibm.mq.commonservices.diagid的值,而counter是一个大于或等于0的整数。名称中所有字母都是大写这样符合MQ跟踪使用的命名约定。

    如果不指定com.ibm.mq.commonservices.diagid,那么diagid的值就是格式为YYYYMMDDhhmmssmmm的当前时间。

    MQ java类的名称将基于等效的MQ资源管理器或SOAP java跟踪文件来确定。区别在于如果名称格式为AMQ.diagid.counter.JC.TRC,java类的名称在字符串.trc前还加有字符串.JC

    所有跟踪字符集均采用UTF-8
 

0
相关文章