メッセージキューイングアクセス機能 TP1/Message Queue - Access 使用の手引

[目次][用語][索引][前へ][次へ]

付録A 理由コード

TP1/Message Queue - Accessでは,マニュアル「TP1/Message Queue プログラム作成リファレンス」に記載されている理由コードのほかに,表A-1で示す理由コードが出力される可能性があります。理由コードの詳細については,上記のマニュアルを参照してください。

また,次の理由コードでは,マニュアル「TP1/Message Queue プログラム作成リファレンス」に記載されている以外の要因である可能性があります。

理由コード一覧を,次の表に示します。

表A-1 理由コード一覧

値(10進数) 値(16進数) 説明
2058L X'0000080A' MQRC_Q_MGR_NAME_ERROR
MQCONN命令でName引数に指定された値が不正か,または未知の値です。

要因
次の場合に,この理由コードを返します。
  • ポインタ引数が不正な場合
    不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。
  • WebSphere MQクライアントアプリケーションがWebSphere MQクライアントキューマネジャグループ内のキューマネジャに接続した場合で,次に示すどちらかのとき
    ・キューマネジャグループがサポートされていないとき
    ・指定された名称を持つキューマネジャグループがないとき

対処
影響がなければ,Name引数に空白を指定してください。または,使用中の名称が正しいか確認してください。
環境変数にDCMQCDEFCON=Yを設定し,非XAライブラリを使用しているAPではName引数に空白を指定しないでください。
接続先情報定義ファイルに設定しているキューマネジャ名のどちらかを指定してください。
2059L X'0000080B' MQRC_Q_MGR_NOT_AVAILABLE

要因
MQCゲートウェイサーバに空きがない場合,MQCONN命令がこの理由コードを返します。
MQCサーバとMQCクライアントのバージョンが対応していない場合,MQCONN命令がこの理由コードを返す場合があります。
MQDISC命令発行時にMQCゲートウェイサーバで後処理をするため,直後に発行されたMQCONN命令がこの理由コードを返す場合があります。

対処
必要な数のMQCゲートウェイサーバが起動しているかどうか確認してください。
MQCサーバとMQCクライアントが対応バージョンであるかどうか確認してください。
MQDISC命令/MQCONN命令を繰り返し発行するUAPを使用した場合は,MQCONN命令のリトライ発行処理をしてください。
2195L X'00000893' MQRC_UNEXPECTED_ERROR

要因
次のどれかの場合,この理由コードを返すときがあります。
  • 環境変数の設定に問題があります。
  • MQCサーバの環境に問題があります。
  • XA連携時,xa_open関数発行前にMQCONN命令を呼び出しています。
  • XA連携時,TP1/Message Queue - Access 05-00未満でトランザクションを子ブランチで使用しています。
  • XA連携時,TP1/Message Queue - Access 05-00以降で環境変数にDCMQCEXPTRN=Nを設定して,トランザクションを子ブランチで使用しています。

対処
システムログにエラーメッセージが出力されている場合,出力されたメッセージに従って障害要因を取り除いてください。
MQCサーバのログにエラーメッセージが出力されている場合,出力されたメッセージに従ってMQCサーバの障害要因を取り除いてください。
XA連携をしている場合,xa_open関数発行前にMQCONN命令を呼び出しをしていないことを確認してください。
XA連携時,次の条件の場合はトランザクションを子ブランチでは使用できません。親ブランチで使用してください。
  • TP1/Message Queue - Access 05-00未満
  • TP1/Message Queue - Access 05-00以降で環境変数にDCMQCEXPTRN=Nを設定したとき
TP1/Message Queue - Access 05-00以降でトランザクションを子ブランチで使用する場合は環境変数にDCMQCEXPTRN=Yを設定してください。
6100L X'000017D4' MQRC_REOPEN_EXCL_INPUT_ERROR
排他入力用キューのため,再オープンできません。

要因
オープンオブジェクトに正しいImqObject open optionsがなく,一つまたは複数の追加オプションが必要です。暗黙の再オープンが必要ですが,キューが排他的入力用にオープンになっているためにクローズできませんでした。また,クローズすると,キューが現在アクセス権のあるプロセスまたはスレッドによって再オープンされる前に,別のプロセスまたはスレッドによってアクセスされる可能性があります。

対処
暗黙の再オープンが必要でなくなるように,発生する可能性のある事態をすべて扱えるようにするため,open optionsを明示的に設定します。
6101L X'000017D5' MQRC_REOPEN_INQUIRE_ERROR
特性の検査が必要なため,再オープンできません。

要因
オープンオブジェクトに正しいImqObject open optionsがなく,一つまたは複数の追加オプションが必要です。暗黙の再オープンが必要ですが,オブジェクトの一つまたは複数の特性をクローズ前に動的に検査する必要があるため,クローズできませんでした。また,open optionsにMQOO_INQUIREが組み込まれていません。

対処
MQOO_INQUIREを組み込むよう,open optionsを明示的に設定します。
6102L X'000017D6' MQRC_REOPEN_SAVED_CONTEXT_ERR
状態を保存するため,再オープンできません。

要因
オープンオブジェクトに正しいImqObject open optionsがなく,一つまたは複数の追加オプションが必要です。暗黙の再オープンが必要ですが,キューがMQOO_SAVE_ALL_CONTEXTでオープンになっているためにクローズができませんでした。または消去されるGETが直前に実行されています。これによって,保存された状態情報がオープンキューと関連づけられるため,この情報はクローズによって破棄されます。

対処
暗黙の再オープンが必要でなくなるように,発生する可能性のある事態をすべて扱えるようにするため,open optionsを明示的に設定します。
6103L X'000017D7' MQRC_REOPEN_TEMPORARY_Q_ERROR
一時キューのため,再オープンできません。

要因
オープンオブジェクトに正しいImqObject open optionsがなく,一つまたは複数の追加オプションが必要です。暗黙の再オープンが必要ですが,キューが定義タイプMQQDT_TEMPORARY_DYNAMICのローカルキューであるため,クローズができませんでした。このローカルキューはクローズによって破棄されます。

対処
暗黙の再オープンが必要でなくなるように,発生する可能性のある事態をすべて扱えるようにするため,open optionsを明示的に設定します。
6104L X'000017D8' MQRC_ATTRIBUTE_LOCKED
属性がロックされています。

要因
あるオブジェクトがオープンになっているとき,またはImqQueueManagerオブジェクトの場合はそのオブジェクトが接続されているときに,そのオブジェクトの属性の値を変更しようとしました。このような場合,特定の属性を変更できません。属性値を変更する前に,必要に応じてオブジェクトのクローズまたは切断をしてください。
MQINQコールを実行するために,オブジェクトが予想に反して,しかも暗黙的に接続されたか,オープンされたか,またはその両方が行われた可能性があります。どのメソッド呼び出しによって,MQINQコールが発生したかどうかを判別してください。

対処
ImqObject open optionsにMQOO_INQUIREを組み込み,それらのオプションをもっと早い時期に設定します。
6105L X'000017D9' MQRC_CURSOR_NOT_VALID
ブラウズカーソルがありません。

要因
オープンキューのためのブラウズカーソルが暗黙の再オープンによって最後に使用されてから,無効になっています。

対処
暗黙の再オープンが必要でなくなるように,発生する可能性のある事態をすべて扱えるようにするため,ImqObject open optionsを明示的に設定します。
6106L X'000017DA' MQRC_ENCODING_ERROR
コード化に誤りがあります。

要因
メッセージ項目のコード化は,ペーストするためにMQENC_NATIVEでなければなりません。
6107L X'000017DB' MQRC_STRUC_ID_ERROR
構造体IDに誤りがあります。

要因
メッセージ項目の構造体IDは,データポインタで始まる4文字から派生したものですが,欠落しているか,その項目がペーストされるオブジェクトのクラスと矛盾しています。
6108L X'000017DC' MQRC_NULL_POINTER
ヌルポインタが渡されました。

要因
ヌルでないポインタが必要であるか,暗黙に指定されているのにヌルポインタが与えられました。
6109L X'000017DD' MQRC_NO_CONNECTION_REFERENCE
接続がありません。

要因
connection referenceはヌルです。ImqQueueManagerオブジェクトへの接続が必要です。
6110L X'000017DE' MQRC_NO_BUFFER
バッファがありません。

要因
使用可能なバッファがありません。ImqCacheオブジェクトの場合は,割り当てることができなく,発生するはずのないオブジェクト状態に内部矛盾があることを示しています。
6111L X'000017DF' MQRC_BINARY_DATA_LENGTH_ERROR
データ長が不正です。

要因
2進データの長さが,ターゲット属性の長さと矛盾しています。すべての属性にとってゼロが正しい長さです。
  • MQ_ACCOUNTING_TOKEN_LENGTHは,accounting tokenの正しい長さです。
  • MQ_CORREL_ID_LENGTHは,correlation idの正しい長さです。
  • MQ_GROUP_ID_LENGTHは,group idの正しい長さです。
  • MQ_MSG_ID_LENGTHは,message idの正しい長さです。
  • MQ_OBJECT_INSTANCE_ID_LENGTHは,instance idの正しい長さです。
  • MQ_TRAN_INSTANCE_ID_LENGTHは,transaction instance idの正しい長さです。
6112L X'000017E0' MQRC_BUFFER_NOT_AUTOMATIC
バッファはシステムによって管理されていません。

要因
ユーザによって定義・管理されるバッファのサイズは変更できません。ユーザ定義バッファは,置換または回収するしかありません。バッファはシステムによって管理されていないと,サイズを変更できません。
6113L X'000017E1' MQRC_INSUFFICIENT_BUFFER
バッファが不十分です。

要因
データポインタの後ろに,要求を受け入れるだけの使用可能なバッファスペースが十分にありません。これは,バッファのサイズが変更できないためと考えられます。
6114L X'000017E2' MQRC_INSUFFICIENT_DATA
データが不十分です。

要因
データポインタの後ろに,要求を受け入れるだけのデータが十分にありません。
6115L X'000017E3' MQRC_DATA_TRUNCATED
データが切り捨てられました。

要因
あるバッファから別のバッファにコピーするときに,データが切り捨てられました。次のどれかの要因が考えられます。
  • ターゲットバッファのサイズを変更できません。
  • どれかのバッファをアドレス指定するときに問題があります。
  • 代替用のバッファと置き換えられてサイズが小さくなっています。
6116L X'000017E4' MQRC_ZERO_LENGTH
ゼロの長さが指定されました。

要因
正の長さが必要であるか,または暗黙に指定されているのにゼロの長さが与えられました。
6117L X'000017E5' MQRC_NEGATIVE_LENGTH
負の長さが指定されました。

要因
ゼロまたは正の長さが必要であるか,または暗黙に指定されているのに負の長さが与えられました。
6118L X'000017E6' MQRC_NEGATIVE_OFFSET
負のオフセットが指定されました。

要因
ゼロまたは正のオフセットが必要であるか,または暗黙に指定されているのに負のオフセットが与えられました。
6119L X'000017E7' MQRC_INCONSISTENT_FORMAT
フォーマットが矛盾しています。

要因
メッセージ項目の形式が,その項目がペーストされるオブジェクトのクラスと矛盾しています。
6120L X'000017E8' MQRC_INCONSISTENT_OBJECT_STATE
オブジェクトが矛盾しています。

要因
オープンになっているオブジェクトと,参照される,接続されていないImqQueueManagerオブジェクトとが矛盾しています。
6121L X'000017E9' MQRC_CONTEXT_OBJECT_NOT_VALID
オブジェクトがありません。

要因
ImqPutMessageOptions context referenceが有効なImqQueueオブジェクトを参照しません。該当するオブジェクトは,直前に破棄されました。
6122L X'000017EA' MQRC_CONTEXT_OPEN_ERROR
オブジェクトがオープンできません。

要因
ImqPutMessageOptions context referenceはImqQueueオブジェクトを参照しますが,このオブジェクトをオープンしてコンテキストを確立できませんでした。これは,ImqQueueオブジェクトに不適切なopen optionsがあるためと考えられます。参照されたオブジェクトのreason codeから,原因を調査してください。
6123L X'000017EB' MQRC_STRUC_LENGTH_ERROR
データ構造体の長さが不正です。

要因
データ構造体の長さが,その内容と矛盾しています。MQRMHの場合は,長さが固定フィールドとすべてのオフセットデータを含めるのに不十分です。
6126L X'000017EE' MQRC_DISTRIBUTION_LIST_EMPTY
配布リストに組み込まれているImqQueueオブジェクトがありません。

要因
配布リストに組み込まれているImqQueueオブジェクトがないため,ImqDistributionListが失敗しました。