1

runmqscwhere filterの実行中に を利用して、より具体的な結果を得ることができることはわかっています。のような演算子に問題はありません。ただし、 と同様に、常に失敗しました。以下のように詳細を参照してください。LT、GT、EQ、NE、LE and GELK、NL

dis chl(SERVER.C01)
27 : dis chl(SERVER.C01)
AMQ8414: 显示通道细节。
 CHANNEL(SERVER.C01)                     CHLTYPE(SVRCONN)
 ALTDATE(2012-08-27)                     ALTTIME(16.05.40)
 COMPHDR(NONE)                           COMPMSG(NONE)
 DESCR( )                                HBINT(300)
 KAINT(AUTO)                             MAXINST(999999999)
 MAXINSTC(999999999)                     MAXMSGL(4194304)
 MCAUSER( )                              MONCHL(QMGR)
 RCVDATA( )                              RCVEXIT( )
 SCYDATA( )                              SCYEXIT( )
 SENDDATA( )                             SENDEXIT( )
 SHARECNV(10)                            SSLCAUTH(REQUIRED)
 SSLCIPH( )                              SSLPEER( )
 TRPTYPE(TCP)
dis chl(*) where(type lk SVRC*)
  28 : dis chl(*) where(chltype lk SVRC*)
 AMQ8569: 过滤器规范中的错误
 dis chl(*) where(chltype lk SVRC*

 AMQ8427: MQSC 命令的有效语法为:

 DISPLAY display_cmd
 WHERE( filter_keyword operator filter_value )

 operator := [ LT | GT | EQ | NE | LE | GE | CT | EX | LK | NL | CTG | EXG ]

また、いかがCT and EXですか?私を助けてください

WebSphere MQ
7.0.1.9

ありがとう

4

1 に答える 1

2

他のオブジェクトタイプでこの問題が発生しているかどうかは明らかではありませんが、チャネルに関しては、チャネルタイプに基づくフィルタリングは許可されていません。これはおそらく、タイプによる選択がとにかく常にサポートされているためです。TYPEまたはCHLTYPEを表示コマンドで指定するだけです。

dis chl(*) chltype(svrconn)
     1 : dis chl(*) chltype(svrconn)
AMQ8414: Display Channel details.
   CHANNEL(SYSTEM.AUTO.SVRCONN)            CHLTYPE(SVRCONN)
AMQ8414: Display Channel details.
   CHANNEL(SYSTEM.DEF.SVRCONN)             CHLTYPE(SVRCONN)
dis chl(*) type(svrconn)
     2 : dis chl(*) type(svrconn)
AMQ8414: Display Channel details.
   CHANNEL(SYSTEM.AUTO.SVRCONN)            CHLTYPE(SVRCONN)
AMQ8414: Display Channel details.
   CHANNEL(SYSTEM.DEF.SVRCONN)             CHLTYPE(SVRCONN)

DISPLAY CHANNEL州のInfocenterページ:

このDISPLAYコマンドの属性を表示するために使用できるほとんどすべてのパラメーター。ただし、CMDSCOPE、QSGDISP、またはMCANAMEパラメーターをフィルター・キーワードとして使用することはできません。TYPE(またはCHLTYPE)がチャネルの選択にも使用されている場合は、使用できません。

チャンネルを選択する以外TYPEにどのように使用できるかわかりません。そのことを説明するために、ページに説明を求めました。それまでの間、この句を使用した場合、またはサポートされていない場合の選択に注意してください。チャンネル以外でトラブルが発生したケースはありましたか?CHLTYPE TYPECHLTYPEWHERELKNK

UPDATE
コメントに応えて、注意すべき2つのこと。まず、インフォセンターによると、「数値または値のセットの1つを持つパラメーターにジェネリックフィルター値を使用することはできません。」これは、たとえば、が値のセットの1つによって指定されてDIS CHL(*) WHERE(MCATYPE LK P*)いるため、指定することは無効であることを意味します。またはMCATYPEのみにすることができます。また、数値を取るため、指定することもできません。PROCESSTHREADDIS CHL(*) WHERE(LONGTMR LK 1*)LONGTMR

関心のある2番目の項目は、WHERE句の引用の構文です。すべてのMQSCパラメーターと同様に、このWHERE句は引用符で囲まれていない値を大文字に折ります。DIS Q(*) WHERE(DESCR LK W*)WebSphere MQはこれらを大文字と小文字を区別して評価するため、キューの多くにはで始まる説明がWebSphereあり、大文字が一致するため、のようなものが機能しますW。ただし、DIS Q(*) WHERE(DESCR LK We*)小文字が大文字eに折りたたまれ、説明フィールドの値と一致しないため、失敗します。ここで機能するのはDIS Q(*) WHERE(DESCR LK 'We*')、文字列指定子が一重引用符で囲まれている場合です。

したがって、表示されている問題はLK、列挙の一部である文字列値に対する演算子の使用、または大文字と小文字の区別が引用符で囲まれていないフィルター値と一致しないことが原因である可能性があります。

CTandとそのCTG補数は、filterキーワードがリストの場合に使用する演算子です。たとえば、NAMELISTオブジェクトの属性NAMESには値のリストが含まれています。単項値で動作するため、のようなものWHERE(NAMES LK SYS*)はあいまいになります。LKしたがってCTCTGセットを操作する演算子として提供されます。この構文を示すいくつかの例は次のようになります。

DIS NAMELIST(*) WHERE(NAMES CT SYSTEM.BROKER.DEFAULT.STREAM)
DIS NAMELIST(*) WHERE(NAMES CTG SYS*)

NAMELIST1つ目は、属性のエントリの1つが完全にNAMES一致するオブジェクトを表示します。2つ目は、一般的な文字列プレフィックスに基づいて同様の一致を許可します。期待値がすべて大文字以外の場合、または値に埋め込みスペースが含まれている場合は、必ず引用符で囲んでください。

于 2012-11-20T04:25:53.993 に答える