Hitachi

OpenTP1 Version 7 OpenTP1 メッセージキューイング機能 TP1/Message Queue プログラム作成リファレンス


付録B.2 理由コード

理由コード(Reason)では,完了コード(CompCode)より詳細な情報で,命令の実行結果を確認できます。報告する事象がない場合は,MQRC_NONEが返されます。命令が正常終了した場合は,MQCC_OKおよびMQRC_NONEが返されます。完了コードがMQCC_WARNINGまたはMQCC_FAILEDの場合,キューマネジャは理由コードを返します。

また,理由コードは次に示すフィールドにも表示されます。

次に,理由コードを示します。なお,TP1/Message Queueでは返されない理由コードも含まれています。

値(10進数)

値(16進数)

説明

0

X'00000000'

MQRC_NONE

命令は正常終了しました。完了コード(CompCode)は,MQCC_OKになります。

対処

ありません。

900

X'00000384'

MQRC_APPL_FIRST

データ変換出口によって返されるアプリケーション定義の理由コードの最低値です。データ変換出口はMQRC_APPL_FIRSTからMQRC_APPL_LASTの範囲の理由コードを返し,この出口が検出した特定条件を示します。

対処

データ変換出口の作成者が定義しているとおり処置します。

999

X'000003E7'

MQRC_APPL_LAST

データ変換出口によって返されるアプリケーション定義の理由コードの最高値です。データ変換出口はMQRC_APPL_FIRSTからMQRC_APPL_LASTの範囲の理由コードを返し,この出口が検出した特定条件を示します。

対処

データ変換出口の作成者が定義しているとおり処置します。

2001

X'000007D1'

MQRC_ALIAS_BASE_Q_TYPE_ERROR

あて先を別名キューとして,MQOPEN命令またはMQPUT1命令が呼び出されました。しかし,別名キュー定義のベースキューの名称が,ローカルキューではない,またはリモートキューのローカル定義ではないキューと解釈されています。

対処

キューの定義を訂正してください。

2002

X'000007D2'

MQRC_ALREADY_CONNECTED

MQCONN命令が呼び出されましたが,アプリケーションはすでにキューマネジャに接続されています。

対処

ありません。返されたHconn引数の値は,直前のMQCONN命令で返された値と同じです。

MQCONN命令でこの理由コードが返されても,キューマネジャから切り離すためにMQDISC命令を続けて呼び出す必要はありません。アプリケーションがすでに接続された状態でコールされた場合にこの理由コードが返されるとき,対応するMQDISC命令を呼び出さないでください。MQDISC命令を呼び出すと,元のMQCONN命令を呼び出したアプリケーションも切り離されてしまいます。

2003

X'000007D3'

MQRC_BACKED_OUT

現在のトランザクションに致命的エラーが発生したか,またはロールバックされました。

対処

キューマネジャに対する前の命令のリターン情報を確認してください。例えば,前のMQPUT命令が失敗していた可能性があります。

2004

X'000007D4'

MQRC_BUFFER_ERROR

Buffer引数またはBuffer引数のポインタが不正です。またはBuffer引数のポインタが,MQGET命令で読み出し専用領域,またはBufferLength引数で指定された値より短い領域を指定しています。不正なBuffer引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

Buffer引数を訂正してください。

2005

X'000007D5'

MQRC_BUFFER_LENGTH_ERROR

BufferLength引数またはBufferLength引数のポインタが不正です。不正なBufferLength引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

また,AuthorityBufferパラメタが小さ過ぎて,サービスコンポーネントの呼び出し側に返されるデータを格納できない場合にも,MQZ_ENUMERATE_AUTHORITY_DATAインストール可能サービスコンポーネントによって,この理由コードが返されることがあります。

対処

0以上の値を指定してください。

2006

X'000007D6'

MQRC_CHAR_ATTR_LENGTH_ERROR

MQINQ命令またはMQSET命令で,CharAttrLength引数に負の値が指定されています。または,MQSET命令で選択したすべての属性を保持できる長さではありません。この理由コードは,CharAttrLength引数のポインタが不正な場合にも返されます。不正なCharAttrLength引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

選択した属性値がすべて保持される長さを指定してください。

2007

X'000007D7'

MQRC_CHAR_ATTRS_ERROR

CharAttrs引数またはCharAttrs引数のポインタが不正です。または,CharAttrs引数のポインタがMQINQ命令で,次に示す領域を指定しています。

  • 読み出し専用領域

  • CharAttrLength引数で指定された値より短い領域

不正なCharAttrs引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

CharAttrs引数を訂正してください。

2008

X'000007D8'

MQRC_CHAR_ATTRS_TOO_SHORT

MQINQ命令のCharAttrLength引数の値が足りないため,Selectors引数で指定されたMQCA_*セレクタの文字型属性をすべて格納できません。MQINQ命令は,格納できるだけの文字属性をCharAttrs引数の文字列に格納して完了します。格納された文字属性列だけが返されます。属性の全体を格納できる領域がない場合,その属性とあとに続く文字属性は除かれます。属性が格納されない文字列の最後の領域は変化しません。

対処

必要な情報を設定できる値を指定してください。

該当するMQRO_COD_*オプションの指定を解除してください。

2009

X'000007D9'

MQRC_CONNECTION_BROKEN

MQCゲートウェイサーバとのコネクションが消失しました。

MQGMO_WAITオプションを指定したMQGET命令の場合,待ち合わせは取り消されています。コネクションハンドルとオブジェクトハンドルは,すべて無効です。

また,MQCクライアントでローカルトランザクションおよびXA連携使用時は,エラーを検知したMQCゲートウェイサーバが該当するトランザクションに関係したメッセージを自動的にロールバックさせます。

対処

MQCクライアント側UAPでMQCONN命令を呼び出して,コネクションを再確立してください。

ただし,XA連携を使用している場合は,トランザクション内でコミットされていない変更をロールバックしてください。なお,MQCONN命令とロールバックの実行は順序が前後しても問題ありません。

2010

X'000007DA'

MQRC_DATA_LENGTH_ERROR

DataLength引数またはDataLength引数のポインタが不正です。または,DataLength引数のポインタが読み出し専用領域を指定しています。不正なDataLength引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

DataLength引数を訂正してください。

2011

X'000007DB'

MQRC_DYNAMIC_Q_NAME_ERROR

MQOPEN命令で,ObjDescパラメタのObjectNameフィールドにモデルキューが指定されました。しかし,DynamicQNameフィールドが次に示す理由のため不正です。

  • キュー名称として不正な文字があります。

  • アスタリスクが34文字目以降(ヌル文字より前)にあります。

  • アスタリスクがあり,その後ろにヌル文字でも空白でもない文字が続いています。

対処

正しい名称を指定してください。

2012

X'000007DC'

MQRC_ENVIRONMENT_ERROR

命令が現在の環境に対して不正です。

対処

アプリケーションから不正な命令を取り除いてください。

2013

X'000007DD'

MQRC_EXPIRY_ERROR

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のExpiryフィールドに指定された値が不正です。

対処

0以上の値またはMQEI_UNLIMITEDを指定してください。

2014

X'000007DE'

MQRC_FEEDBACK_ERROR

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のFeedbackフィールドに指定された値が不正です。指定された値は,MQFB_NONEではありません。また,システムとアプリケーションのフィードバックコードに対して定義された範囲から外れています。

対処

次のどれかの値を指定してください。

・MQFB_NONE

・MQFB_SYSTEM_FIRSTからMQFB_SYSTEM_LASTまでの値

・MQFB_APPL_FIRSTからMQFB_APPL_LASTまでの値

2016

X'000007E0'

MQRC_GET_INHIBITED

キューまたはこのキューの別名キューの実体に対し,MQGET命令が禁止されています。

これは,次のどれかの方法でキューのオブジェクト属性が「キューの取り出し禁止」に設定されたまま解除されていない場合に発生します。

  • MQSET命令によるオブジェクトの属性の設定

  • mqasetコマンドによるオブジェクト属性の設定

  • mqamkqueコマンドによるオブジェクト作成で指定するモデルキューの定義(mqaqueatl定義コマンド)による属性の設定

対処

取り出し要求を,短い時間禁止するようにシステムが設計されている場合,しばらくしたあと,キューからの取り出しを再実行してください。

キュー取り出し禁止をしない運用,またはキュー取り出し禁止を長い時間解除しない運用を前提としてシステムが設計されている場合は,アプリケーションを終了してください。

2017

X'000007E1'

MQRC_HANDLE_NOT_AVAILABLE

MQOPEN命令またはMQPUT1命令が呼び出されましたが,現在実行中のMQCONN命令に対応できるオープンハンドルの最大数にすでに達しています。

対処

アプリケーションが,対応するMQCLOSE命令なしにMQOPEN命令を呼び出しているか確認してください。呼び出していなければ,使用するハンドルの数を減らしてください。一つのMQCONN命令で同時にオープンできるハンドルの最大数はMaxHandlesキューマネジャ属性で定義できます。

2018

X'000007E2'

MQRC_HCONN_ERROR

コネクションハンドル(Hconn)が不正です。この理由コードは,ポインタ引数が不正,またはMQCONN命令で読み出し専用領域を指しているときにも返されます。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

対処

キューマネジャに対してMQCONN命令が正常終了し,MQDISC命令がまだ実行されていないことを確認してください。ハンドルが有効範囲の中で使用されているか確認してください。ハンドルの有効範囲については,「2. メッセージキューイング機能の命令」の「MQCONN命令 − キューマネジャへの接続」を参照してください。

このエラーは原因を究明できない場合があります。不正なハンドルを受け渡した結果は定義されていません。

2019

X'000007E3'

MQRC_HOBJ_ERROR

オブジェクトハンドル(Hobj)が不正です。この理由コードは,ポインタ引数が不正,またはMQOPEN命令で読み出し専用領域を指しているときにも返されます。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

対処

このオブジェクトに対して,MQOPEN命令が正常終了し,MQCLOSE命令がまだ実行されていないことを確認してください。MQGET命令とMQPUT命令に対して,ハンドルがキューオブジェクトを表していることも確認してください。ハンドルが有効範囲の中で使用されているか確認してください。ハンドルの有効範囲については,「2. メッセージキューイング機能の命令」の「MQOPEN命令 − オブジェクトのオープン」を参照してください。

2020

X'000007E4'

MQRC_INHIBIT_VALUE_ERROR

MQSET命令の,MQIA_INHIBIT_GETまたはMQIA_INHIBIT_PUT属性で指定された値が不正です。

対処

正しい値を指定してください。

2021

X'000007E5'

MQRC_INT_ATTR_COUNT_ERROR

MQINQ命令またはMQSET命令のIntAttrCount引数が負です。または,MQSET命令のIntAttrCount引数に,Selectors引数に指定された整数属性(MQIA_*)より小さい値が指定されています。ポインタ引数の不正でもこのエラーコードが返されます。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

対処

選択した整数属性より大きな値を指定してください。

2022

X'000007E6'

MQRC_INT_ATTR_COUNT_TOO_SMALL

MQINQ命令のIntAttrCount引数に,Selectors引数で指定された整数属性セレクタ(MQIA_*)より小さい値が指定されています。MQINQ命令は,格納できるだけの整数属性をIntAttrs配列に格納し,MQCC_WARNINGで完了します。

対処

値の一部だけを使用しなければ,大きな値を指定してください。

2023

X'000007E7'

MQRC_INT_ATTRS_ARRAY_ERROR

MQINQ命令またはMQSET命令のIntAttrs引数またはIntAttrs引数のポインタが不正です。MQINQ命令の場合,IntAttrs引数のポインタが読み出し専用領域,またはIntAttrCount引数で指定された値より短い領域を指している場合もあります。不正なIntAttrs引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

引数を訂正してください。

2024

X'000007E8'

MQRC_SYNCPOINT_LIMIT_REACHED

トランザクションでコミットされていないメッセージ数が操作できる最大数を超えました。MQGET命令,MQPUT命令,またはMQPUT1命令が失敗しました。トランザクションのコミットされていないメッセージ数は,トランザクションの開始から次に示すメッセージ数の合計です。

  • MQPMO_SYNCPOINTを指定して登録したメッセージ数

  • MQGMO_SYNCPOINTを指定して取り出したメッセージ数

対処

アプリケーションがループしていないか確認してください。ループしていなければ,操作するメッセージ数を減らしてください。

2025

X'000007E9'

MQRC_MAX_CONNS_LIMIT_REACHED

コンカレントコネクション数が最大値を超えたため,MQCONN命令が受け付けられません。

対処

インストールパラメタ値のサイズを大きくする,またはコンカレントコネクション数を削減してください。

2026

X'000007EA'

MQRC_MD_ERROR

MQMD構造体が次のどれかの理由で不正です。

  • StrucIdフィールドがMQMD_STRUC_IDではありません。

  • Versionフィールドに無効な値またはサポートされていない値が指定されています。

  • ポインタ引数が不正です(不正なポインタ引数を検出できないことがあります。検出できないときの動作は保証しません)。

  • 命令が成功しても,変更された構造体をキューマネジャがアプリケーションストレージにコピーできません。例えば,ポインタが読み取り専用ストレージを指している場合に発生します。

対処

メッセージ記述子の定義を訂正してください。また,入力フィールドが正しく設定されているか確認してください。

2027

X'000007EB'

MQRC_MISSING_REPLY_TO_Q

MQPUT命令およびMQPUT1命令で,メッセージ識別子(MQMD構造体)内のReplyToQフィールドは空白です。しかし,次に示すうちの一つまたは両方の要求があります。

  • 応答が要求されました。このとき,メッセージ識別子のMsgTypeフィールドにMQMT_REQUESTが指定されています。

  • メッセージ識別子のReportフィールドに報告メッセージが要求されました。

対処

応答または報告メッセージを送信するキューの名称を指定してください。

2029

X'000007ED'

MQRC_MSG_TYPE_ERROR

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のMsgTypeフィールドに指定した値が不正です。

対処

正しい値を指定してください。

2030

X'000007EE'

MQRC_MSG_TOO_BIG_FOR_Q

MQPUT命令またはMQPUT1命令に,MaxMsgLength属性で定義された最大値より大きいメッセージを登録しようとしました。MaxMsgLength属性については,「3. オブジェクトの属性」の「キューの属性」を参照してください。この理由コードは,報告メッセージのメッセージ記述子中のFeedbackフィールドにも返されることがあります。これは,メッセージチャネルエージェントがメッセージをリモートキューに登録したときに,エラーが発生したことを示します。

対処

BufferLength引数の指定を確認してください。指定が正しければ,メッセージを分割する,またはMaxMsgLength属性の値を大きくしてください。

2031

X'000007EF'

MQRC_MSG_TOO_BIG_FOR_Q_MGR

リモートキューに登録されたメッセージが,リモートキューマネジャに割り当てられた最大メッセージ長を超えています。このエラーはあて先キューマネジャ,または仲介するキューマネジャで発生している場合もあります。この理由コードは,元のメッセージの送信者が報告メッセージを要求した場合に,報告メッセージのメッセージ記述子のFeedbackフィールドに返されます。Feedbackフィールドの詳細については,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」でFeedbackフィールドの説明を参照してください。この理由コードは,ローカルキューマネジャの値より小さいMaxMsgLengthキューマネジャ属性を持つリモートキューマネジャへメッセージを送る場合にだけ返されます。

また,メッセージが渡されるチャネルで,キューマネジャにサポートされた値より小さい値を最大メッセージ長に設定している場合に,メッセージ長がこの値より大きいときにも返されることがあります。

対処

BufferLength引数の指定を確認してください。正しければ,そのメッセージを小さい単位に分割してください。また,チャネルの定義を確認してください。

2033

X'000007F1'

MQRC_NO_MSG_AVAILABLE

MQGET命令が呼び出されましたが,メッセージ記述子で指定された選択基準を満たすメッセージがキューにありません。このエラーは次に示すどちらかが原因です。

  • MQGMO_WAITが指定されていません。

  • MQGMO構造体のWaitIntervalフィールドで指定された時間が経過しています。

この理由コードは,カーソルがキューの終端に到着したときの検索指定のMQGET命令でも返されます。

対処

検索指定のMQGET命令を発行した場合は,対処する必要はありません。

キューにメッセージが登録されたかどうかをチェックするようなシステム設計の場合,メッセージが登録されるまでアプリケーションを継続してください。

キューにメッセージが登録されたことが明かな場合にMQGET命令を発行するシステム設計のとき,次のことを確認してください。

・キューにメッセージが正常に登録されたかどうか。

・MQPUTまたはMQPUT1命令に使用されているトランザクションがあれば,正常にコミットしたかどうか。

・キューにメッセージが正しく登録されていた場合,MsgDesc引数でMQMD構造体のMsgIdフィールドおよびCorrelIdフィールドの値が正しく設定されているかどうか。

時間を置いて再度MQGET命令を呼び出すか,Wait時間を長くすることを検討してください。

2034

X'000007F2'

MQRC_NO_MSG_UNDER_CURSOR

次に示すオプションのどちらかを指定して,MQGET命令が呼び出されました。

  • MQGMO_MSG_UNDER_CURSOR

  • MQGMO_BROWSE_MSG_UNDER_CURSOR

しかし,検索カーソルが取り出せるメッセージを指していません。原因を次に示します。

  • 検索カーソルが論理的に先頭のメッセージの前を指しています。オープンしてから一度もメッセージを検索していません。

  • 検索カーソルで示すメッセージの検索処理が終了後,ほかのアプリケーションによって取り出そうとしたメッセージがキューから削除,または排他状態にされました。

  • 検索カーソルで示すメッセージの保持時間が終了しています。

対処

メッセージの検索後,複数のサーバがメッセージを取り合うように設計されているアプリケーションの場合は,予期される理由コードです。MQGET命令を再発行してほかのメッセージを取り出してください。

それ以外の場合は,アプリケーションのロジックが正しいかどうかを確認してください。

なお,メッセージの検索後,メッセージがキューから削除,または排他状態にされないようにするには,一つ前の検索MQGET命令にMQGMO_LOCKオプションを指定するようにアプリケーションを設計してください。

2035

X'000007F3'

MQRC_NOT_AUTHORIZED

実行しようとした操作に対して,実行権限がありません。

  • MQCONN命令で,キューマネジャに接続する権限がありません。

  • MQOPEN命令またはMQPUT1命令で,指定されたオプションでオブジェクトをオープンする権限がありません。

  • MQCLOSE命令で,オブジェクトの永続的動的キューを削除する権限がなく指定されるHobj引数は,キューを生成したMQOPEN命令で返されるハンドルではありません。

この理由コードは,報告メッセージ記述子中のFeedbackフィールドにも返される場合があります。これは,メッセージチャネルエージェントがリモートキューにメッセージを登録したときに,エラーが発生したことを示します。

対処

キューマネジャまたはオブジェクトが正しく指定されているか,またはこれらに適切な権限があるか確認してください。

2036

X'000007F4'

MQRC_NOT_OPEN_FOR_BROWSE

次に示すオプションのうちどれかを指定して,MQGET命令が発行されました。

  • MQGMO_BROWSE_FIRST

  • MQGMO_BROWSE_NEXT

  • MQGMO_BROWSE_MSG_UNDER_CURSOR

  • MQGMO_MSG_UNDER_CURSOR

しかし,キューは検索用にオープンされていません。

対処

キューをオープンするときは,MQOO_BROWSEを指定してください。

2037

X'000007F5'

MQRC_NOT_OPEN_FOR_INPUT

キューからメッセージを取り出すためにMQGET命令が呼び出されましたが,キューは取り出し用にオープンされていません。

対処

キューをオープンするときは,次に示すオプションのうち一つを指定してください。

・MQOO_INPUT_SHARED

・MQOO_INPUT_EXCLUSIVE

・MQOO_INPUT_AS_Q_DEF

2038

X'000007F6'

MQRC_NOT_OPEN_FOR_INQUIRE

オブジェクト属性を照会するためにMQINQ命令が呼び出されましたが,オブジェクトは照会用にオープンされていません。

対処

オブジェクトをオープンするときは,MQOO_INQUIREを指定してください。

2039

X'000007F7'

MQRC_NOT_OPEN_FOR_OUTPUT

キューにメッセージを登録するためにMQPUT命令が呼び出されましたが,キューは出力用にオープンされていません。

対処

キューをオープンするときは,MQOO_OUTPUTを指定してください。

2040

X'000007F8'

MQRC_NOT_OPEN_FOR_SET

オブジェクトの属性を設定するためにMQSET命令が呼び出されましたが,オブジェクトは属性設定用にオープンされていません。

対処

オブジェクトをオープンするときは,MQOO_SETを指定してください。

2041

X'000007F9'

MQRC_OBJECT_CHANGED

この命令で使用されるHobjハンドルが,MQOPEN命令で返されたあと,このオブジェクトに影響するオブジェクト定義が変更されました。

MQPUT命令またはMQPUT1命令で,オブジェクトハンドルがPutMsgOpts引数のContextフィールドに指定されている場合,この理由コードは返されません。

対処

MQCLOSE命令を呼び出してオブジェクトを終了したあと,オブジェクトを再度オープンしてください。なお,オブジェクト定義で変更された内容を確認したい場合は,オブジェクトをオープンしたあとに,MQINQ命令を呼び出して,オブジェクトの新しい属性値を取得できます。

2042

X'000007FA'

MQRC_OBJECT_IN_USE

MQOPEN命令が呼び出されましたが,オブジェクトがOptions引数で指定されたものと矛盾するオプションです。また,それを呼び出したアプリケーションまたは別のアプリケーションによってすでにオープンされています。オブジェクトがすでに排他アクセスでオープンされていて,要求が共用入力の場合にこのエラーが発生します。また,オブジェクトがどんなタイプであっても,すでに入力用にオープンされていて,要求が排他アクセスのときにも発生します。

対処

対象のキューを排他アクセスで使用するシステムでは,先行のアプリケーションがMQCLOSE命令を発行したあとで,このアプリケーションがMQOPEN命令を再発行することで成功します。アプリケーションが待機,再試行,または別の処理を実行するかどうかをシステム設計で設定してください。

対象のキューを排他アクセスで使用しないシステムでは,引数不正が考えられるので,アプリケーションを見直してください。

2043

X'000007FB'

MQRC_OBJECT_TYPE_ERROR

オブジェクトタイプが不正です。

MQOPEN命令またはMQPUT1命令で,MQOD構造体のObjectTypeフィールドに指定された値が不正です。MQPUT1命令の場合,オブジェクトタイプはMQOT_Qです。

対処

正しいオブジェクトタイプを指定してください。

2044

X'000007FC'

MQRC_OD_ERROR

MQOPEN命令またはMQPUT1命令で,MQOD構造体が次のどれかの理由で不正です。

  • StrucIdフィールドがMQOD_STRUC_IDではありません。

  • Versionフィールドに無効な値,またはサポートされていない値が指定されています。

  • ポインタ引数が不正です。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

  • 命令は成功しましたが,変更された構造体がアプリケーションの記憶領域にコピーされません。このエラーはポインタ引数が読み出し専用領域を指定している場合にも発生することがあります。

対処

オブジェクト記述子の定義を訂正してください。入力フィールドが正しく設定されているか確認してください。

2045

X'000007FD'

MQRC_OPTION_NOT_VALID_FOR_TYPE

MQOPEN命令またはMQCLOSE命令で,オープンまたはクローズされるオブジェクトやキューのタイプに対し,不正なオプションが指定されています。

MQOPEN命令の場合,次に示すオプションの両方が指定されています。

  • MQOT_PROCESSオブジェクトに対するMQOO_OUTPUTなど,オブジェクトタイプに指定できないオプション

  • ローカル定義を持たないリモートキューに対するMQOO_INQUIREなど,キュータイプとしてサポートされていないオプション

MQOPEN命令の場合,キューマネジャの別名を指定するために,オブジェクト記述子のObjectQMgrNameにリモートキューのローカル定義名が指定されています。また,定義のRemoteQMgrName属性に指定されたキューがローカルキューマネジャの名称で,次に示すオプションが含まれる場合も,この理由コードが返されます。

 MQOO_INPUT_AS_Q_DEF

 MQOO_INPUT_SHARED

 MQOO_INPUT_EXCLUSIVE

 MQOO_BROWSE

 MQOO_INQUIRE

 MQOO_SET

MQOO_INQUIREを指定したMQOPEN命令の場合,次のどちらかの理由でこの理由コードが返されます。

  • オブジェクト記述子のObjectQMgrNameフィールドに,空白,ローカルキューマネジャ名,またはローカルに存在するキューの定義名以外の名称が指定されました。

  • オブジェクト記述子のObjectQMgrNameフィールドに,キューマネジャの別名定義が指定された場合に,定義内のXmitQName属性が空白で,あて先キューマネジャと同じ名前で定義されているキューが存在しません。

MQCLOSE命令の場合,次に示すどちらかのオプションが指定されましたが,キューが動的キューではありません。

 MQCO_DELETE

 MQCO_DELETE_PURGE

対処

正しいオプションを指定してください。MQOPEN命令のオプションについては,「2. メッセージキューイング機能の命令」の「MQOPEN命令 − オブジェクトのオープン」を参照してください。MQCLOSE命令のオプションについては「2. メッセージキューイング機能の命令」の「MQCLOSE命令 − オブジェクトのクローズ」を参照してください。MQCLOSE命令の場合,オプションを訂正する,またはキューを作成するために使用したモデルキューの定義タイプを変更してください。

2046

X'000007FE'

MQRC_OPTIONS_ERROR

Options引数またはフィールドのオプションが不正です。または,不正な組み合わせで指定されています。

  • MQOPEN命令,MQCLOSE命令,およびMQXCNVC命令のOptions引数は,各命令で指定する引数です。この理由コードはポインタ引数が不正な場合にも返されます。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

  • 次に示す命令では,Options引数は関連するオプション構造体(MQGMO構造体またはMQPMO構造体)のフィールドです。

    − MQGET命令

    − MQPUT命令

    − MQPUT1命令

対処

正しいオプションを指定してください。不正な組み合わせのオプションは,Optionsパラメタまたはフィールドで確認できます。個々のオプションを一緒に加算して複数オプションが設定されている場合,同じオプションが複数回加算されていないか確認してください。

2047

X'000007FF'

MQRC_PERSISTENCE_ERROR

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD構造体)のPersistenceフィールドに指定された値が不正です。

対処

次に示すオプションのうちどれかを指定してください。

・MQPER_PERSISTENT

・MQPER_NOT_PERSISTENT

・MQPER_PERSISTENCE_AS_Q_DEF

2048

X'00000800'

MQRC_PERSISTENT_NOT_ALLOWED

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のPersistenceフィールドにMQPER_PERSISTENTが指定されていますが,登録されるメッセージのキューが一時的動的キューであり,永続メッセージがサポートされていません。永続メッセージは一時動的キューに登録できません。

この理由コードは,報告メッセージのメッセージ記述子のFeedbackフィールドにも返されることがあります。これは,メッセージチャネルエージェントがメッセージをリモートキューに登録したときにエラーが発生したことを示します。

対処

一時的動的キューにメッセージを登録する場合,MQPER_NOT_PERSISTENTを指定してください。永続性メッセージの場合,一時動的キューではなく永続的動的キューまたは定義済みキューを使用してください。共用キューの場合,キューが回復可能であるか確認してください。

アプリケーションサーバでは,元の要求メッセージ(MQMT_REQUEST)と同じ永続性の応答メッセージ(MQMT_REPLY)を送信することが推奨されています。要求メッセージが永続性の場合,メッセージ記述子(MQMD)のReplyToQフィールドに指定される応答キューは一時的動的キューにできません。この場合は,応答キューとして永続的動的キューまたは定義済みキューを使用してください。

2049

X'00000801'

MQRC_PRIORITY_EXCEEDS_MAXIMUM

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のPriorityフィールドの値がローカルキューマネジャでサポートされた最大メッセージ優先度を超えています。メッセージはキューマネジャに受け付けられましたが,キューマネジャの最大メッセージ優先度でキューに登録されました。メッセージ記述子のPriorityフィールドはメッセージを登録したアプリケーションで指定された値のままです。最大メッセージ優先度については,「3. オブジェクトの属性」の「キューマネジャの属性」でMaxPriorityの説明を参照してください。

対処

メッセージを登録したアプリケーションがこの理由コードに対する処理を必要としない場合,対処する必要はありません。

2050

X'00000802'

MQRC_PRIORITY_ERROR

MQPUT命令またはMQPUT1命令で,メッセージ記述子(MQMD)のPriorityフィールドが不正です。キューマネジャによってサポートされている最大優先度は,キューマネジャのMaxPriority属性の指定値です。

対処

0からMaxPriority属性の範囲で値を指定してください。またはMQPRI_PRIORITY_AS_Q_DEFを指定してください。

2051

X'00000803'

MQRC_PUT_INHIBITED

MQPUT命令またはMQPUT1命令が,現在キューまたはこのキューの別名キューの実体に対し禁止されています。

この理由コードは報告メッセージのメッセージ記述子のFeedbackフィールドにも返されることがあります。これは,メッセージチャネルエージェントがメッセージをリモートキューに登録したときに,エラーが発生したことを示します。

対処

システム設計で短い期間の登録要求禁止が許されている場合は,登録を再実行してください。

キュー取り出し禁止をしない運用,またはキュー取り出し禁止を長い時間解除しない運用を前提としてシステムが設計されている場合は,アプリケーションを終了してください。

2052

X'00000804'

MQRC_Q_DELETED

命令で指定されたHobjキューハンドルは,キューがオープンされてから削除された動的キューを参照しています。

対処

MQCLOSE命令を呼び出して,システムにハンドルと対応するリソースを返してください。この場合のMQCLOSE命令は成功します。エラーが発生したアプリケーション設計を確認してください。

2053

X'00000805'

MQRC_Q_FULL

次のどれかの理由で失敗しました。

  • MQPUT命令またはMQPUT1命令で,キューに格納できるメッセージの最大数を超えました。

  • 報告メッセージのメッセージ記述子のFeedbackフィールドに,理由コードが返される場合は,メッセージチャネルエージェントがメッセージをリモートキューに登録したときに,エラーが発生したことを示します。

    キューに格納できるメッセージの最大数については,「3. オブジェクトの属性」の「キューの属性」でMaxQDepthの説明を参照してください。

対処

しばらくしたあと,登録を再実行してください。

このエラーが頻繁に発生する場合,対象のキューを処理するアプリケーションを増やすことで改善できる可能性があります。

また,メッセージ登録で待ち時間を許容できない場合,システム設計でキューのメッセージ最大数を増やしてください。

2055

X'00000807'

MQRC_Q_NOT_EMPTY

永続動的キューにMQCLOSE命令が発行されましたが,キューが空でないか使用中であるために,命令は失敗しました。次に示すどちらかに該当します。

  • MQCO_DELETEが指定されましたが,キューにまだメッセージがあります。

  • MQCO_DELETEまたはMQCO_DELETE_PURGEが指定されましたが,キューに対してコミットされていない取り出しまたは登録命令があります。

対処

キューにメッセージがある原因を調べてください。キューにメッセージが一つ以上あっても,キューのCurrentQDepth属性は0の場合があります。これは,トランザクションで取り出されたメッセージが,コミットされていない場合に発生します。破棄してもよいメッセージであれば,MQCO_DELETE_PURGEを指定してMQCLOSE命令を呼び出したあと,MQCLOSE命令を再実行してください。

2056

X'00000808'

MQRC_Q_SPACE_NOT_AVAILABLE

MQPUT命令またはMQPUT1命令が呼び出されましたが,キューとして使用できる空き領域がディスクまたはほかの記憶装置にありません。

この理由コードは,報告メッセージのメッセージ記述子のFeedbackフィールドにも返されることがあります。これは,メッセージチャネルエージェントがメッセージをリモートキューに登録したときにエラーが発生したことを示します。

対処

システム設計で許容できる(メッセージ数とメッセージサイズの組み合わせ)以上のメッセージが登録されています。

ほかのアプリケーションがメッセージを取り出したあと,MQRC_Q_SPACE_NOT_AVAILABLEを返却されたMQI命令を再発行することで成功する可能性があります。

このエラーが頻繁に発生する場合,キュー用のディスク容量を大きくしてください。または,MQAサービス定義の1メッセージの最大レコード数(mqa_max_msg_recnum)を大きくしてください。

2057

X'00000809'

MQRC_Q_TYPE_ERROR

次に原因を示します。

  • MQOPEN命令で,オブジェクト記述子のObjectQMgrNameフィールドに,キューマネジャ別名を指定するためのリモートキューのローカル定義名が指定されています。また,RemoteQMgrNameフィールドがローカルキューマネジャの名称になっています。しかし,ObjectNameフィールドはローカルキューマネジャのモデルキューの名称を指定しています。リモートキューおよびローカルキューについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

  • MQPUT1命令で,オブジェクト記述子(MQOD)にモデルキューの名称を指定しています。

対処

キュータイプを訂正してください。

2058

X'0000080A'

MQRC_Q_MGR_NAME_ERROR

MQCONN命令でName引数に指定された値が不正か,または未知の値です。ただし,不正なName引数を検出できないことがあります。検出されないときの動作は保証しません。

対処
  • 影響がなければ,Name引数に空白を指定してください。または,使用中の名称が正しいか確認してください。

  • Name引数ポインタが正しいか確認してください。

2059

X'0000080B'

MQRC_Q_MGR_NOT_AVAILABLE

MQCONN命令のName引数で指定されたキューマネジャは,この時点では接続に使用できません。

対処

dc_rpc_openが実行されているかどうかを確認してください。

2061

X'0000080D'

MQRC_REPORT_OPTIONS_ERROR

MQPUT命令またはMQPUT1命令が呼び出されましたが,メッセージ記述子(MQMD)のReportフィールドに,ローカルキューマネジャで認識されないオプションがあります。このオプションは,メッセージのあて先によって異なります。

対処

対処方法を次に示します。

1. メッセージ記述子のReportフィールドが,メッセージ記述子の宣言時に初期化されているかどうかを確認してください。または,MQPUT命令またはMQPUT1命令の前に値を割り当てられているかどうかを確認してください。報告オプションが必要でない場合は,MQRO_NONEを指定してください。

2. 指定された報告オプションが,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」の報告オプションに記載されているか確認してください。記載されていない報告オプションは削除してください。

3. 個々の報告オプションを一緒に加算して複数の報告オプションを設定している場合,同じ報告オプションが複数回加算されていないか確認してください。

4. 矛盾する報告オプションが指定されていないか確認してください。例えば,Reportフィールドに,MQRO_EXCEPTIONおよびMQRO_EXCEPTION_WITH_DATAの両方が加算されているとエラーになります。どちらか一つだけが指定できます。

2062

X'0000080E'

MQRC_SECOND_MARK_NOT_ALLOWED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2063

X'0000080F'

MQRC_SECURITY_ERROR

次に示すどれかの命令が発行されましたが,セキュリティエラーが起こったため失敗しました。

  • MQCLOSE命令

  • MQCONN命令

  • MQOPEN命令

  • MQPUT1命令

対処

セキュリティマネジャが示すエラーをシステム管理者に連絡してください。

2065

X'00000811'

MQRC_SELECTOR_COUNT_ERROR

SelectorCount引数に不正な値が指定されています。ポインタ引数が不正な場合にもこの理由コードが返されます。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

対処

0〜256の範囲で指定してください。

2066

X'00000812'

MQRC_SELECTOR_LIMIT_EXCEEDED

MQINQ命令またはMQSET命令で,SelectorCount引数に最大値(256)より大きい値が指定されています。

対処

命令で指定されたセレクタ数を減らしてください。0〜256の範囲で指定してください。

2067

X'00000813'

MQRC_SELECTOR_ERROR

MQINQ命令またはMQSET命令が発行されましたが,次のどれかの理由で,Selectors配列に含まれるセレクタが無効でした。

  • セレクタがサポートされていない,または範囲外です。

  • セレクタが属性を照会または設定しようとしているオブジェクトのタイプに適用されません。

  • セレクタは,設定できない属性のものです。

対処

セレクタに指定した値が,Hobj引数で示すオブジェクトタイプに合っているかどうかを確認してください。MQSET命令の場合,セレクタが設定できる整数属性になっているかどうかを確認してください。

2068

X'00000814'

MQRC_SELECTOR_NOT_FOR_TYPE

MQINQ命令で,Selectors配列のセレクタが属性の参照されているキュータイプに適用できません。命令はMQCC_WARNINGで完了し,適用できないセレクタの属性値に次に示すものが設定されます。

  • 整数属性の場合,IntAttrsに対応する要素が,MQIAV_NOT_APPLICABLEに設定されます。

  • 文字属性の場合,CharAttrs文字列の適切な部分がすべてアスタリスクで設定されます。

対処

指定されているセレクタが,意図したセレクタであるかどうかを確認してください。

2069

X'00000815'

MQRC_SIGNAL_OUTSTANDING

MQGET命令が,MQGMO_SET_SIGNALまたはMQGMO_WAITを指定して呼び出されました。しかし,すでにオブジェクトハンドルに対して未解決のシグナルがあります。

対処

アプリケーションロジックを確認してください。同じキューに対して未解決のシグナルがある場合,シグナルまたはウェイトの設定が必要なときは,異なるオブジェクトハンドルを使用してください。

2070

X'00000816'

MQRC_SIGNAL_REQUEST_ACCEPTED

GetMsgOpts引数にMQGMO_SET_SIGNALを指定してMQGET命令が呼び出されましたが,利用できるメッセージがありません。命令はすぐに返されます。アプリケーションはシグナルが渡されるまで待つことができます。

対処

シグナルを待ってください。シグナルが到着したとき,シグナルを確認してメッセージが利用できることを確認してください。利用できれば,MQGET命令を再度呼び出してください。

2071

X'00000817'

MQRC_STORAGE_NOT_AVAILABLE

キューマネジャに利用できる記憶領域が少ないため,命令が完了されません。

対処

別のアプリケーションが終了すると,再発行で命令が成功する場合があります。

このエラーが意図せず発生する場合,システムのメモリ設計が正しくないおそれがあります。次のことを確認してください。

・実行中のアプリケーションが正しく動作しているかどうかを確認してください。正しく動作していれば,利用できる記憶領域を増やしてください。

・OpenTP1のロックサービス定義に指定されたMQAサーバの最大同時排他要求数を確認してください。

・キューファイルグループの入出力バッファの値を見直してください。

問題を解決したあと,アプリケーションを再実行してください。

2072

X'00000818'

MQRC_SYNCPOINT_NOT_AVAILABLE

次に示す命令に各オプションが指定されていますが,ローカルキューマネジャがトランザクションをサポートしていません。

  • MQGMO_SYNCPOINTを指定したMQGET命令

  • MQPMO_SYNCPOINTを指定したMQPUT命令またはMQPUT1命令

原因を次に示します。

  • trn_rm_open_close_scope = processの場合,dc_rpc_open()を発行していない。

  • trn_rm_open_close_scope = transactionの場合,トランザクション開始状態でない。

  • mqaquemgr(キューマネジャ定義)の-sオプションにsyncを設定していない。

  • トランザクション制御オブジェクトがアプリケーションにリンケージされていない。

  • 64ビット環境で32ビット製品を使用している場合,トランザクション制御オブジェクトを32ビットモードで作成していない。

対処

原因に対処するか,MQGMO_SYNCPOINTまたはMQPMO_SYNCPOINTの指定を削除してください。

2075

X'0000081B'

MQRC_TRIGGER_CONTROL_ERROR

MQSET命令の,MQIA_TRIGGER_CONTROLセレクタに指定された値が不正です。

対処

MQIA_TRIGGER_CONTROLセレクタの値を訂正してください。MQIA_TRIGGER_CONTROLセレクタについては,「3. オブジェクトの属性」の「キューの属性」のTriggerControlの説明を参照してください。

2076

X'0000081C'

MQRC_TRIGGER_DEPTH_ERROR

MQSET命令の,MQIA_TRIGGER_DEPTHセレクタに指定された値が不正です。

対処

0より大きい値を指定してください。

2077

X'0000081D'

MQRC_TRIGGER_MSG_PRIORITY_ERR

MQSET命令の,MQIA_TRIGGER_MSG_PRIORITYセレクタに指定された値が不正です。

対処

0からMaxPriorityキューマネジャ属性の範囲で値を指定してください。

2078

X'0000081E'

MQRC_TRIGGER_TYPE_ERROR

MQSET命令の,MQIA_TRIGGER_TYPEセレクタに指定された値が不正です。

対処

MQIA_TRIGGER_TYPEセレクタの値を訂正してください。

2079

X'0000081F'

MQRC_TRUNCATED_MSG_ACCEPTED

MQGET命令で,メッセージ長が大き過ぎたため,用意されたバッファに格納されませんでした。MQGMO_ACCEPT_TRUNCATED_MSGが指定されたため命令は完了しました。メッセージは,トランザクションを考慮してキューから削除されます。または,これが検索操作の場合,検索カーソルがこのメッセージに進められます。DataLength引数が切り捨て前のメッセージの長さに設定され,Buffer引数に入るだけのメッセージが格納されます。MQMD構造体には必要な項目が設定されます。

対処

アプリケーションで設定された処理のため,対処する必要はありません。

2080

X'00000820'

MQRC_TRUNCATED_MSG_FAILED

MQGET命令で,メッセージ長が大き過ぎたため,用意されたバッファに格納されませんでした。MQGMO_ACCEPT_TRUNCATED_MSGが指定されなかったため,メッセージはキューから削除されません。これが検索操作の場合,検索カーソルはコール前にあった位置にあります。しかし,MQGMO_BROWSE_FIRSTが指定された場合,検索カーソルはキューの最も高い優先度のメッセージの前に論理的に位置づけられます。DataLengthフィールドが切り捨て前のメッセージの長さに設定され,Buffer引数に入るだけのメッセージが格納されます。MQMD構造体には必要な項目が設定されます。

対処

アプリケーションがメッセージの全体を必要とする場合,アプリケーションでDataLengthと同じ大きさのバッファを用意してからMQGET命令を再発行してください。

アプリケーションがメッセージデータの一部だけで処理できる場合,MQGMO_ACCEPT_TRUNCATED_MSGを指定したMQGET命令を発行し,BufferLengthに指定したサイズだけ取り出すように,アプリケーションの処理を見直してください。

2082

X'00000822'

MQRC_UNKNOWN_ALIAS_BASE_Q

MQOPEN命令またはMQPUT1命令が別名キューを対象として呼び出されました。しかし,別名キュー属性のBaseQNameがキューの名称として認識されません。

対処

キュー定義を訂正してください。

2085

X'00000825'

MQRC_UNKNOWN_OBJECT_NAME

MQOPENまたはMQPUT1命令が発行されましたが,オブジェクト記述子(MQOD)のObjectNameおよびObjectQMgrNameフィールドに指定されたオブジェクトが見つかりません。次のどちらかに該当します。

  • ObjectQMgrNameフィールドが次に示すどれかです。

    ・空白

    ・ローカルキューマネジャの名前

    ・RemoteQMgrNameフィールドに指定されたリモートキューのローカル定義(キューマネジャの別名)の名前がローカルキューマネジャの名前です。

    しかし,指定されたObjectNameおよびObjectTypeのオブジェクトが,ローカルキューマネジャにありません。

  • オープンしようとしているオブジェクトがリモートキューマネジャにあるクラスタキューだが,ローカルキューマネジャにリモートキューマネジャへの定義済み経路がありません。

対処

正しいオブジェクト名を指定してください。また,必要に応じて名称の右側が空白で埋まっているか確認してください。正しければ,そのキュー定義を確認してください。クラスタ機能を使用している場合,mqrsup,mqrsppが起動しているかどうか確認してください。

2086

X'00000826'

MQRC_UNKNOWN_OBJECT_Q_MGR

MQOPEN命令またはMQPUT1命令で,オブジェクト記述子(MQOD)のObjectQMgrNameフィールドが不正です。キューマネジャの名称を含むオブジェクトの命名規則については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。この理由コードは,オブジェクト記述子のObjectTypeフィールドにMQOT_Q_MGRが指定され,ObjectQMgrNameフィールドが空白ではなく,また,指定された名称がローカルキューマネジャ名でない場合にも返されます。

対処

正しいキューマネジャ名を指定してください。ローカルキューマネジャを指定する場合は,すべて空白の名前またはヌル文字で始まる名前を使用できます。必要であれば,名称の右側が空白で埋まっているまたは,名称がヌル文字で終わっていることを確認してください。クラスタ機能を使用している場合,mqrsup,mqrsppが起動しているかどうか確認してください。

2087

X'00000827'

MQRC_UNKNOWN_REMOTE_Q_MGR

MQOPEN命令またはMQPUT1命令のキュー名の決定で,エラーが発生しました。原因を次に示します。

  • ObjectQMgrNameが空白またはローカルキューマネジャの名称です。また,ObjectNameが,空白のXmitQNameを持つリモートキューローカル定義の名称です。しかし,RemoteQMgrNameの名称で定義された転送キューはなく,DefXmitQNameキューマネジャ属性が空白です。

  • ObjectQMgrNameは,空白のXmitQNameを持つキューマネジャ別名定義の名称です。キューマネジャ別名定義は,リモートキューのローカル定義として保持されます。しかし,RemoteQMgrNameの名称で定義された転送キューはなく,DefXmitQNameキューマネジャ属性が空白です。

  • 指定されたObjectQMgrNameが次に示す名称に当てはまりません。

    − 空白

    − ローカルキューマネジャの名称

    − ローカルキューの名称

    − キューマネジャ別名定義の名称(RemoteQNameが空白のリモートキューローカル定義)

    ただし,DefXmitQNameキューマネジャ属性は空白です。

  • ObjectQMgrNameが空白またはローカルキューマネジャの名称です。また,ObjectNameがリモートキューのローカル定義またはローカル定義の別名の名称です。ローカル定義または別名は,RemoteQMgrNameが空白またはローカルキューマネジャの名称です。このエラーはXmitQNameが空白でなくても発生する場合があるので注意が必要です。

  • ObjectQMgrNameがリモートキューのローカル定義の名称です。この場合,ローカル定義はキューマネジャ別名定義のはずですが,定義中のRemoteQNameが空白ではありません。

  • ObjectQMgrNameがモデルキューの名称です。

対処

ObjectQMgrNameおよびObjectNameに指定された値を確認してください。正しければ,キュー定義を確認してください。

2090

X'0000082A'

MQRC_WAIT_INTERVAL_ERROR

MQGET命令で,GetMsgOpts引数のWaitIntervalフィールドに指定された値が不正です。

対処

0以上の値を指定してください。無制限に待ち合わせる場合は,MQWI_UNLIMITEDを指定してください。

2091

X'0000082B'

MQRC_XMIT_Q_TYPE_ERROR

MQOPEN命令またはMQPUT1命令で,メッセージがリモートキューマネジャに送信されることになっています。オブジェクト記述子のObjectNameまたはObjectQMgrNameフィールドにリモートキューのローカル定義名が指定されていますが,定義のXmitQName属性が次のどちらかに当てはまります。

  • XmitQNameが空白でなくても,ローカルキューでないキューを指定します。

  • XmitQNameが空白であっても,RemoteQMgrNameにローカルキューでないキューを指定します。

対処

ObjectNameおよびObjectQMgrNameに指定された値を確認してください。正しい場合は,キュー定義を確認してください。名称解決については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

2092

X'0000082C'

MQRC_XMIT_Q_USAGE_ERROR

MQOPEN命令またはMQPUT1命令で,メッセージがリモートキューマネジャに送信されますが,次に示す事象のどちらかが発生しました。

  • ObjectQMgrNameはローカルキューの名称を指定しますが,キューはMQUS_TRANSMISSIONのUsage属性を持っていません。

  • オブジェクト記述子のObjectNameまたはObjectQMgrNameフィールドにリモートキューのローカル定義名が指定されています。しかし,定義のXmitQName属性に次のどちらかが当てはまります。

    − XmitQNameが空白でなくても,MQUS_TRANSMISSIONのUsage属性を持たないキューが指定されています。

    − XmitQNameが空白であっても,RemoteQMgrNameにMQUS_TRANSMISSIONのUsage属性を持たないキューが指定されています。

対処

ObjectNameおよびObjectQMgrNameに指定された値を確認してください。正しい場合は,キュー定義を確認してください。名称解決については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

2093

X'0000082D'

MQRC_NOT_OPEN_FOR_PASS_ALL

PutMsgOpts引数にMQPMO_PASS_ALL_CONTEXTを指定してMQPUT命令が呼び出されました。しかし,キューはMQOO_PASS_ALL_CONTEXTでオープンされていません。

対処

キューをオープンするときは,MQOO_PASS_ALL_CONTEXT,または,これに相当するオプションを指定してください。

2094

X'0000082E'

MQRC_NOT_OPEN_FOR_PASS_IDENT

PutMsgOpts引数にMQPMO_PASS_IDENTITY_CONTEXTを指定して,MQPUT命令が呼び出されました。しかし,キューはMQOO_PASS_IDENTITY_CONTEXTでオープンされていません。

対処

キューをオープンするときは,MQOO_PASS_IDENTITY_CONTEXT,または,これに相当するオプションを指定してください。

2095

X'0000082F'

MQRC_NOT_OPEN_FOR_SET_ALL

PutMsgOpts引数にMQPMO_SET_ALL_CONTEXTを指定してMQPUT命令が呼び出されました。しかし,キューはMQOO_SET_ALL_CONTEXTでオープンされていません。

対処

キューをオープンするときは,MQOO_SET_ALL_CONTEXTを指定してください。

2096

X'00000830'

MQRC_NOT_OPEN_FOR_SET_IDENT

PutMsgOpts引数にMQPMO_SET_IDENTITY_CONTEXTを指定してMQPUT命令が呼び出されました。しかし,キューはMQOO_SET_IDENTITY_CONTEXTでオープンされていません。

対処

キューをオープンするときは,MQOO_SET_IDENTITY_CONTEXT,または,これに相当するオプションを指定してください。

2097

X'00000831'

MQRC_CONTEXT_HANDLE_ERROR

MQPUT命令またはMQPUT1命令で,次に示すオプションが指定されました。

  • MQPMO_PASS_IDENTITY_CONTEXT

  • MQPMO_PASS_ALL_CONTEXT

しかし,PutMsgOpts引数のContextフィールドに指定されたハンドルが不正なキューハンドルです。または,正しいキューハンドルであっても,MQOO_SAVE_ALL_CONTEXTでオープンしたキューではありません。

対処

参照するキューをオープンするときには,MQOO_SAVE_ALL_CONTEXTを指定してください。

2098

X'00000832'

MQRC_CONTEXT_NOT_AVAILABLE

MQPUT命令またはMQPUT1命令で,次に示すオプションが指定されました。

  • MQPMO_PASS_IDENTITY_CONTEXT

  • MQPMO_PASS_ALL_CONTEXT

しかし,PutMsgOpts引数のContextフィールド領域に指定されたハンドルに,対応するコンテキストがありません。このエラーは次に示す場合に発生します。

  • 参照されたキューハンドルで取り出しに成功したメッセージがありません。

  • 最後に成功したMQGET命令がメッセージの検索です。

最後に取り出されたメッセージに対応するコンテキストがない場合は発生しません。

対処

参照されたキューハンドルで呼び出された,検索でない取り出しが成功しているか確認してください。

2099

X'00000833'

MQRC_SIGNAL1_ERROR

GetMsgOpts引数にMQGMO_SET_SIGNALを指定してMQGET命令が呼び出されましたが,Signal1フィールドが不正です。

対処

Signal1フィールドの設定を訂正してください。

2100

X'00000834

MQRC_OBJECT_ALREADY_EXISTS

動的キューの作成でMQOPEN命令が呼び出されましたが,作成しようとした動的キューと同じ名称のキューがすでに存在しています。

対処

動的キューの名称を確認してください。正しく設定されている場合,異なる名称にするか,必要でなければ存在しているキューを削除してください。または,キューマネジャが名称を作成できるようにしてください。キューマネジャがその名称の一部または全部を作成する場合,MQOPEN命令を再度呼び出してください。

2101

X'00000835'

MQRC_OBJECT_DAMAGED

命令でアクセスされたオブジェクトが破損して使用できなくなっています。原因を次に示します。

  • 主記憶装置でオブジェクトの定義が矛盾しています。

  • 主記憶装置の定義とディスクの定義が異なっています。

  • ディスク上の定義が読み出せません。

オブジェクトを削除できます。ただし,対応するユーザ空間を削除できない場合もあります。

対処

キューマネジャを停止して再開始する,またはバックアップ装置からキューマネジャデータを回復してください。

2102

X'00000836'

MQRC_RESOURCE_PROBLEM

命令が正常終了するために必要なシステム資源がありません。TP1/Message Queueでは,オンライン中に使用できるキューの最大数を物理ファイルごとに規定しています。MQOPEN命令で動的キュー生成時に使用できるキューの最大数を超えました。

対処

動的キューを作成するキューファイルがオンラインで使用できるかどうかを確認してください。キューファイルがオンラインで使用できる場合,未使用キューの個数を確認してください。

2103

X'00000837'

MQRC_ANOTHER_Q_MGR_CONNECTED

MQCONN命令が呼び出されましたが,スレッドまたはプロセスがすでに異なるキューマネジャに接続しています。スレッドまたはプロセスは,一度に一つのキューマネジャとだけしか接続できません。

対処

MQDISC命令を呼び出し,すでに接続しているキューマネジャからスレッドまたはプロセスを切り離してください。その後,MQCONN命令を再度呼び出して,新しいキューマネジャに接続してください。

現在のキューマネジャから切り離すと,現在オープンしているキューはすべてクローズされます。そのため,MQDISC命令を呼び出す前に,コミットしていないトランザクションをコミットまたはロールバックしてください。

2104

X'00000838'

MQRC_UNKNOWN_REPORT_OPTION

MQPUT命令またはMQPUT1命令が呼び出されましたが,メッセージ記述子(MQMD)のReportフィールドに,ローカルキューマネジャで認識されないオプションがあります。このオプションが受け付けられます。ローカルキューマネジャで識別されないオプションは,メッセージのあて先によって異なります。

対処

この理由コードが予期される場合,訂正する必要はありません。この理由コードが予期されない場合は,次に示す対処を実行してください。

1. メッセージ記述子の宣言時に,メッセージ記述子のReportフィールドが初期化されているかどうかを確認してください。または,MQPUT命令またはMQPUT1命令を呼び出す前に,フィールドに値が割り当てられているかどうかを確認してください。

2. 指定された報告オプションが,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」で報告オプションに記載されているかどうかを確認してください。記載されていない報告オプションは削除してください。

3. 個々の報告オプションを一緒に加算して複数オプションが設定されている場合,同じ報告オプションが複数回加算されていないか確認してください。

4. 矛盾している報告オプションが指定されていないことを確認してください。例えば,MQRO_EXCEPTIONおよびMQRO_EXCEPTION_WITH_DATAの両方をReportフィールドに加算するとエラーになります。これらのうち一つだけが指定できます。

2105

X'00000839'

MQRC_STORAGE_CLASS_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2106

X'0000083A'

MQRC_COD_NOT_VALID_FOR_XCF_Q

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2107

X'0000083B'

MQRC_XWAIT_CANCELED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2108

X'0000083C'

MQRC_XWAIT_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2109

X'0000083D'

MQRC_SUPPRESSED_BY_EXIT

MQCONN命令またはMQDISC命令以外の呼び出しで,API間出口が呼び出しを取り消しました。

対処

出口が強制実行するMQI呼び出しの規則に従ってください。規則を調べるには,出口の作成者に問い合わせてください。

2110

X'0000083E'

MQRC_FORMAT_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令が発行されましたが,メッセージ形式のエラーがあるためメッセージ変換が正常に実行されません。このエラーには次に示すものがあります。

  • メッセージのフォーマット名が,MQFMT_NONEです。

メッセージは変換されないでMQGET命令を呼び出すアプリケーションに返されます。MsgDesc引数のCodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。また,命令はMQCC_WARNINGで完了します。

対処

メッセージの登録時に指定されたフォーマット名を確認してください。

2111

X'0000083F'

MQRC_SOURCE_CCSID_ERROR

メッセージデータの変換元のコード化文字セット識別子が不正です。またはサポートされていません。この理由コードは,GetMsgOpts引数にMQGMO_CONVERTが指定されたMQGET命令で返されることがあります。エラーとなるコード化文字セット識別子は,取り出されたメッセージのCodedCharSetIdフィールドです。メッセージデータは変換されないで返されます。MsgDesc引数のCodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

メッセージの登録時に指定されたコード化文字セット識別子を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。コード変換対象となっている文字セット識別子については,「付録G コード変換対象の文字セット識別子一覧」を参照してください。

2112

X'00000840'

MQRC_SOURCE_INTEGER_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で取り出されたメッセージのEncodingフィールドに,認識されない2進整数のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数の

CodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

メッセージの登録時に指定された,2進整数のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2113

X'00000841'

MQRC_SOURCE_DECIMAL_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,取り出されたメッセージのEncodingフィールドが,認識されない10パック形式整数のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数の

CodedCharSetIdフィールドおよびEncodingフィールドの値は,オブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

メッセージの登録時に指定された,10進パック形式整数のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2114

X'00000842'

MQRC_SOURCE_FLOAT_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,取り出したメッセージのEncodingフィールドに,認識されない浮動小数点のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数の

CodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

メッセージの登録時に指定された,浮動小数点のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2115

X'00000843'

MQRC_TARGET_CCSID_ERROR

メッセージデータの変換後のコード化文字セット識別子が不正です。またはサポートされていません。この理由コードは,GetMsgOpts引数にMQGMO_CONVERTが指定されたMQGET命令で返されることがあります。エラーとなるコード化文字セット識別子は,MsgDesc引数のCodedCharSetIdフィールドです。メッセージデータは変換されないで返されます。MsgDesc引数のCodedCharSetIdフィールドおよびEncodingフィールドの値は,オブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

MQGET命令のMsgDesc引数のCodedCharSetIdフィールドに指定されたコード化文字セット識別子を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。コード変換対象となっている文字セット識別子については,「付録G コード変換対象の文字セット識別子一覧」を参照してください。

2116

X'00000844'

MQRC_TARGET_INTEGER_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,MsgDesc引数のEncodingフィールドに,認識されない2進整数のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数のCodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

指定された2進整数のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2117

X'00000845'

MQRC_TARGET_DECIMAL_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,MsgDesc引数のEncodingフィールドに,認識されない10進パック形式整数のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数の

CodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

指定された10進パック形式整数のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2118

X'00000846'

MQRC_TARGET_FLOAT_ENC_ERROR

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,MsgDesc引数のEncodingフィールドに,認識されない浮動小数点のマシンコード形式を指定しています。

メッセージデータは変換されないで返されます。また,MsgDesc引数の

CodedCharSetIdフィールドおよびEncodingフィールドの値はオブジェクト記述子の各フィールドに設定されます。命令はMQCC_WARNINGで完了します。

対処

指定された浮動小数点のマシンコード形式を確認してください。正しい場合は,キューマネジャ変換がサポートされているか確認してください。サポートされていない場合,変換はアプリケーションで実行してください。

2119

X'00000847'

MQRC_NOT_CONVERTED

GetMsgOpts引数にMQGMO_CONVERTを指定したMQGET命令で,メッセージデータの変換中にエラーが発生しました。メッセージデータは変換されないで返却され,MsgDesc引数のCodedCharSetIdフィールドおよびEncodingフィールドには,未変換のまま返却されるメッセージの値が設定されます。このとき,命令はMQCC_WARNINGで完了します。また,データ変換未サポートの値をパラメタに指定した場合にも,この理由コードが返却されることがあります。

対処

メッセージの登録時に指定したFormat,CodedCharSetId,およびEncodingの引数で,メッセージデータが正しく記述されているか確認してください。また,これらの値とMQGET命令のMsgDesc引数に指定されたCodedCharSetIdおよびEncodingフィールドが,キューマネジャ変換でサポートされているか確認してください。指定した変換がサポートされていない場合,アプリケーションで実行してください。コード変換対象となっている文字セット識別子については,「付録G コード変換対象の文字セット識別子一覧」を参照してください。

2120

X'00000848'

MQRC_CONVERTED_MSG_TOO_BIG

GetMsgOpts引数にMQGMO_CONVERTオプションを指定したMQGET命令で,メッセージデータがデータ変換の間に拡大されました。そのため,アプリケーションが用意したバッファサイズを超えました。しかし,メッセージデータは変換前に切り捨てをしないで,アプリケーションに格納できました。そのため,メッセージはキューからすでに取り出されています。データが消失されないために,MQGET命令のCompCode引数にMQCC_WARNINGを設定し,メッセージを変換しないで返します。

対処

MQGET命令を呼び出すアプリケーションのBuffer引数に,さらに大きいバッファを用意してください。

2121

X'00000849'

MQRC_NO_EXTERNAL_PARTICIPANTS

キューマネジャが調整したトランザクションを開始するためのMQBEGIN命令が呼び出されましたが,参加するリソースマネジャがキューマネジャに登録されていません。その結果,MQリソースへの変更だけがキューマネジャによってトランザクション内で調整されます。

対処

アプリケーションがトランザクションに参加するためにMQリソース以外のリソースを必要としない場合,この理由コードは無視できるか,MQBEGIN命令の呼び出しが削除されることがあります。それ以外の場合には,プログラマに問い合わせて,必要なリソースマネジャがキューマネジャに登録されなかった原因を調査してください。キューマネジャの構成ファイルにエラーがある可能性があります。

2122

X'0000084A'

MQRC_PARTICIPANT_NOT_AVAILABLE

キューマネジャが調整したトランザクションを開始するためのMQBEGIN命令が呼び出されましたが,キューマネジャに登録済みの,参加するリソースマネジャが利用できません。その結果,リソースへの変更は,キューマネジャによってトランザクション内で調整されません。

対処

アプリケーションがトランザクションに参加するためにMQリソース以外のリソースを必要としない場合,この理由コードは無視できます。それ以外の場合には,プログラマに問い合わせて,必要なリソースマネジャが利用できない原因を調査してください。リソースマネジャは一時的に停止していたことがあるか,キューマネジャの構成ファイルにエラーがある可能性があります。

2123

X'0000084B'

MQRC_OUTCOME_MIXED

キューマネジャが,ほかのリソースマネジャを扱うトランザクションに対してトランザクションコーディネータとして動作していますが,次のどちらかが発生しました。

  • トランザクションをコミットするためにMQCMIT命令またはMQDISC命令が呼び出されましたが,参加している一つ以上のリソースマネジャがトランザクションをコミットしないでロールバックしました。その結果,トランザクションの結果が混在しています。

  • トランザクションをロールバックするためにMQBACK命令が呼び出されましたが,参加している一つ以上のリソースマネジャがそのトランザクションをすでにコミットしています。

対処

キューマネジャのエラーログで結果の混在に関連するメッセージを調べてください。そのメッセージによって影響があったリソースマネジャを特定できます。影響があったリソースマネジャにある手順を使用してリソースを再同期させてください。

この理由コードによってアプリケーションがそれ以降のトランザクションの開始を妨げられることはありません。

2124

X'0000084C'

MQRC_OUTCOME_PENDING

ほかのリソースマネジャを扱うトランザクションに対して,キューマネジャがトランザクションコーディネータとして動作していて,トランザクションをコミットするためにMQCMIT命令またはMQDISC命令が呼び出されましたが,参加している一つ以上のリソースマネジャでトランザクションが正常にコミットされたかどうかが確認されていません。

コミット操作はこのあとのどこかの時点で完了しますが,結果が混在する可能性が残っています。

対処

通常のエラー報告機能を使用して,結果が混在しているかどうかを判断してください。混在している場合には,適切な処置をとってリソースを再同期させてください。

この理由コードによってアプリケーションがそれ以降のトランザクションの開始を妨げられることはありません。

2125

X'0000084D'

MQRC_BRIDGE_STARTED

IMSブリッジが開始しました。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2126

X'0000084E'

MQRC_BRIDGE_STOPPED

IMSブリッジが停止しました。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2127

X'0000084F'

MQRC_ADAPTER_STORAGE_SHORTAGE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2128

X'00000850'

MQRC_UOW_IN_PROGRESS

キューマネジャが調整したトランザクションを開始するためにMQBEGIN命令が呼び出されましたが,指定されたコネクションハンドルにすでにトランザクションがあります。このトランザクションは,前のMQBEGIN命令の呼び出しによって開始されたグローバルトランザクションであるか,キューマネジャまたは関連するリソースマネジャのローカルなトランザクションの可能性があります。1コネクションハンドルに同時に二つ以上のトランザクションはできません。

対処

アプリケーションロジックを検討して,既存のトランザクションがある原因を調査してください。MQBEGIN命令をアプリケーションの適切な場所に移動してください。

2129

X'00000851'

MQRC_ADAPTER_CONN_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2130

X'00000852'

MQRC_ADAPTER_SERV_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2131

X'00000853'

MQRC_ADAPTER_DEFS_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2132

X'00000854'

MQRC_ADAPTER_DEFS_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2133

X'00000855'

MQRC_ADAPTER_CONV_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2134

X'00000856'

MQRC_BO_ERROR

MQBEGIN命令の呼び出しで,BeginOptions引数のMQBO構造体が次のどれかの理由で無効です。

  • StrucIdニーモニックアイキャッチャがMQBO_STRUC_IDではありません。

  • VersionフィールドがMQBO_VERSION_1ではありません。

  • 引数ポインタが無効です。ただし,無効な引数ポインタを必ず検出できるとは限りません。検出できなかった場合には,予期しない結果が発生しています。

  • キューマネジャは,呼び出しが正常に終了しても,変更された構造体をアプリケーション記憶域へコピーできません。これは,例えば,ポインタが読み取り専用記憶域を指している場合などに起こります。

対処

MQBO構造体の定義を訂正します。必要な入力フィールドが正しく設定されていることを確認してください。

2135

X'00000857'

MQRC_DH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQDH構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQDH_STRUC_IDではありません。

  • VersionフィールドがMQDH_VERSION_1ではありません。

  • StrucLengthフィールドに指定されている値が小さ過ぎて,構造体,およびMQORとMQPMRレコードの配列を格納できません。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されています。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQDH構造体のフィールドが正しく設定されているか確認してください。また,アプリケーションでCodedCharSetIdフィールドに有効な値が設定されているか確認してください。MQCCSI_DEFAULT,MQCCSI_EMBEDDED,MQCCSI_Q_MGRおよびMQCCSI_UNDEFINEDは,このフィールドに無効です。

2136

X'00000858'

MQRC_MULTIPLE_REASONS

配布リストをオープンしたり,配布リストにメッセージを登録したりするためにMQOPEN命令,MQPUT命令,またはMQPUT1命令が発行されました。その命令の結果が,リスト内のすべてのあて先について同じではありませんでした。要因として,次の場合が考えられます。

  • 一部のあて先については命令が成功したが,そのほかのあて先については失敗した場合

    この場合,完了コードはMQCC_WARNINGとなります。

  • すべてのあて先について命令が失敗したが,失敗の理由はそれぞれ異なる場合

    この場合,完了コードはMQCC_FAILEDです。

対処

MQRR構造体の応答レコードを調べて,命令が失敗したあて先と失敗の理由を判定してください。また,アプリケーションが命令に関するエラーを判定するために十分な応答レコードを提供しているかどうかを確認してください。MQPUT1命令の場合,MQPMO構造体でなく,MQOD構造体を使用して応答レコードを指定しなければなりません。

2137

X'00000859'

MQRC_OPEN_FAILED

メッセージを配布リストに登録するためのMQPUT命令が発行されましたが,そのあて先がMQOPEN命令によって正常にオープンできなかったために,この理由コードが適用されるあて先にメッセージを送信できませんでした。この理由コードは,MQRR構造体の応答レコードのReasonフィールドだけに返されます。

対処

MQOPEN命令に指定されたMQRR構造体の応答コードを調べて,キューのオープンに失敗した理由を判定してください。また,アプリケーションがその命令に関するエラーを判定するために十分な応答レコードを提供しているかどうかを確認してください。

2138

X'0000085A'

MQRC_ADAPTER_DISC_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2139

X'0000085B'

MQRC_CNO_ERROR

MQCONN命令の呼び出しで,ConnectOpts引数のMQCNO構造体が次のどれかの理由で無効です。

  • StrucIdニーモニックアイキャッチャがMQCNO_STRUC_IDではありません。

  • Versionフィールドに無効な値,またはサポートされていない値が指定されています。

  • 引数ポインタが無効です。無効な引数ポインタを必ず検出できるとは限りません。検出できなかった場合には,予期しない結果が発生しています。

  • キューマネジャは呼び出しが正常に終了しても,変更された構造体をアプリケーション記憶域へコピーできません。これは,例えば,ポインタが読み取り専用記憶域を指している場合などに起こります。

対処

MQCNO構造体の定義を訂正します。必要な入力フィールドが正しく設定されていることを確認してください。

2140

X'0000085C'

MQRC_CICS_WAIT_FAILED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2141

X'0000085D'

MQRC_DLH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQDLH構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQDLH_STRUC_IDではありません。

  • VersionフィールドがMQDLH_VERSION_1ではありません。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されています。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQDLH構造体のフィールドが適切に設定されているか確認してください。また,アプリケーションでCodedCharSetIdフィールドに有効な値が設定されているか確認してください。MQCCSI_DEFAULT,MQCCSI_EMBEDDED,MQCCSI_Q_MGRおよびMQCCSI_UNDEFINEDは,このフィールドに無効です。

2142

X'0000085E'

MQRC_HEADER_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQヘッダ構造体があります。次のエラーなどがあります。

  • StrucIdフィールドが無効です。

  • Versionフィールドが無効です。

  • StrucLengthフィールドに指定されている値が小さ過ぎます。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されています。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQヘッダ構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2143

X'0000085F'

MQRC_SOURCE_LENGTH_ERROR

MQXCNVC命令のSourceLength引数に,負の長さが指定されています。この理由コードはSourceLength引数のポインタが不正な場合にも返されます。不正なSourceLength引数のポインタを検出できないことがあります。検出されないときの動作は保証しません。

対処

0以上の長さを指定してください。

2144

X'00000860'

MQRC_TARGET_LENGTH_ERROR

MQXCNVC命令のTargetLength引数に,負の長さが指定されています。この理由コードはTargetLength引数のポインタが不正な場合にも返されることがあります。不正なTargetLength引数のポインタを検出できないこと場合があります。検出されないときの動作は保証しません。

対処

0以上の長さを指定してください。

2145

X'00000861'

MQRC_SOURCE_BUFFER_ERROR

MQXCNVC命令のSourceBuffer引数のポインタが不正です。または,SourceLength引数で指定された値より短い領域を指しています。不正なポインタを検出できない場合があります。検出されない場合の動作は保証しません。

対処

SourceBuffer引数の指定を訂正してください。

2146

X'00000862'

MQRC_TARGET_BUFFER_ERROR

MQXCNVC命令のTargetBuffer引数のポインタが不正です。または,ポインタが読み出し専用領域,またはTargetLength引数で指定された値より短い領域を指しています。不正なポインタを検出できない場合があります。検出されない場合の動作は保証しません。

対処

引数を訂正してください。

2148

X'00000864'

MQRC_IIH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQIIH構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQIIH_STRUC_IDではありません。

  • VersionフィールドがMQIIH_VERSION_1ではありません。

  • StrucLengthフィールドがMQIIH_LENGTH_1ではありません。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQIIH構造体の定義を訂正します。フィールドが正しく設定されていることを確認してください。

2149

X'00000865'

MQRC_PCF_ERROR

PCFデータを含むメッセージを登録するためのMQPUT命令またはMQPUT1命令が発行されましたが,メッセージの長さが,メッセージ内のPCF構造体の長さの合計に一致していません。この理由コードは,次の名称のメッセージで返される場合があります。

  • MQFMT_ADMIN

  • MQFMT_EVENT

  • MQFMT_PCF

対処

MQPUT命令またはMQPUT1命令に指定されたメッセージの長さがメッセージデータ内に含まれているPCF構造体の長さの合計に等しいことを確認してください。

2150

X'00000866'

MQRC_DBCS_ERROR

2バイト文字セット(DBCS)列に変換するときにエラーが発生しました。これは次の場合に発生します。

MQXCNVC命令で,SourceCCSIDパラメタに2バイト文字セット(DBCS)のコード化文字セット識別子が指定されました。しかし,SourceBuffer引数に有効なDBCS列がありません。原因は次に示すどちらかです。

  • 文字列に不正なDBCS文字があります。

  • 文字列がSBCSとDBCS文字列の混合で,シフトアウトとシフトインの制御文字が正しく組み合わされていません。この場合,完了コードはMQCC_FAILEDです。

対処

正しい文字列を指定してください。

2152

X'00000868'

MQRC_OBJECT_NAME_ERROR

MQOD構造体のRecsPresentフィールドが0より大きい状態で,配布リストをオープンするためのMQOPEN命令またはMQPUT1命令が発行されたとき,ObjectNameフィールドが空白でもヌル文字列でもありません。

対処

配布リストをオープンするには,ObjectNameフィールドを空白またはヌル文字列に設定します。配布リストをオープンしない場合は,RecsPresentフィールドを0に設定してください。

2153

X'00000869'

MQRC_OBJECT_Q_MGR_NAME_ERROR

MQOD構造体のRecsPresentフィールドが0より大きい状態で,配布リストをオープンするためのMQOPEN命令またはMQPUT1命令が発行されたとき,ObjectQMgrNameフィールドが空白でもヌル文字列でもありません。

対処

配布リストをオープンする場合は,ObjectQMgrNameフィールドを空白,またはヌル文字列に設定してください。配布リストをオープンしない場合は,RecsPresentフィールドを0に設定してください。

2154

X'0000086A'

MQRC_RECS_PRESENT_ERROR

MQOPEN命令またはMQPUT1命令が,次のどちらかの理由で失敗しました。

  • MQOD構造体のRecsPresentフィールドが0より小さくなっています。

  • MQOD構造体のObjectTypeフィールドがMQOT_Qでなく,RecsPresentフィールドが0ではありません。オープン対象のオブジェクトがキューでない場合は,RecsPresentフィールドは0でなければなりません。

対処

配布リストをオープンする場合は,ObjectTypeフィールドにMQOT_Qを設定してください。また,RecsPresentフィールドを,リスト内のあて先の数に設定してください。配布リストをオープンしない場合は,RecsPresentフィールドを0に設定してください。

2155

X'0000086B'

MQRC_OBJECT_RECORDS_ERROR

MQOD構造体のRecsPresentフィールドが0より大きい状態で,配布リストをオープンするためのMQOPEN命令またはMQPUT1命令が発行されたとき,MQOR構造体レコードが正しく指定されていません。次の理由が考えられます。

  • ObjectRecOffsetフィールドが0で,ObjectRecPtrフィールドがヌルポインタまたは0です。

  • ObjectRecOffsetフィールドが0以外の数値で,ObjectRecPtrフィールドがヌルポインタでも0でもありません。

  • ObjectRecPtrフィールドが有効なポインタではありません。

  • ObjectRecPtrフィールドまたはObjectRecOffsetフィールドが,アクセス不能な記憶領域を指しています。

対処

ObjectRecOffsetフィールドとObjectRecPtrフィールドのどちらか一方が0で,もう一方が0以外の数値になっていることを確認してください。また,使用するフィールドがアクセス可能な記憶領域を指していることも確認してください。

2156

X'0000086C'

MQRC_RESPONSE_RECORDS_ERROR

配布リストをオープンするための,つまり,MQOD構造体のRecsPresentフィールドが0より大きいMQOPEN命令またはMQPUT1命令が発行されましたが,MQRR構造体の応答レコードが正しく指定されていません。次のどれかの場合が該当します。

  • ResponseRecOffsetフィールドが0でなく,ResponseRecPtrフィールドがヌルポインタでも0でもない場合

  • ResponseRecPtrフィールドが有効なポインタでない場合

  • ResponseRecPtrフィールドまたはResponseRecOffsetフィールドが,アクセス不能な記憶領域を指している場合

対処

ResponseRecOffsetフィールドおよびResponseRecPtrフィールドのうち,少なくともどちらか一つが0であることを確認してください。また,使用するフィールドがアクセス可能な記憶領域を指していることを確認してください。

2157

X'0000086D'

MQRC_ASID_MISMATCH

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2158

X'0000086E'

MQRC_PMO_RECORD_FLAGS_ERROR

メッセージを登録するためのMQPUT命令またはMQPUT1命令が発行されましたが,MQPMO構造体のPutMsgRecFieldsフィールドが,次のどれかの理由で無効になっています。

  • フィールドに無効なフラグが含まれています。

  • メッセージが配布リストに登録されている最中で,登録メッセージレコードが提供された,つまり,RecsPresentフィールドが0より大きく,PutMsgRecOffsetフィールド,またはPutMsgRecPtrフィールドのどちらか一つが0以外であるが,PutMsgRecFieldsフィールドの値がMQPMRF_NONEになっています。

  • MQPMRF_ACCOUNTING_TOKENが指定されているが,MQPMO_SET_IDENTITY_CONTEXTも,MQPMO_SET_ALL_CONTEXTも指定されていません。

対処

登録メッセージレコード内にどんなフィールドがあるのか示すための適切なMQPMRF_*フラグを使用して,PutMsgRecFieldsフィールドが設定されていることを確認してください。

MQPMRF_ACCOUNTING_TOKENが指定されている場合は,同時にMQPMO_SET_IDENTITY_CONTEXTまたはMQPMO_SET_ALL_CONTEXTのどちらか一つが指定されていることを確認してください。MQPMRF_ACCOUNTING_TOKENが指定されていない場合は,PutMsgRecOffsetフィールドおよびPutMsgRecPtrフィールドの両方を0に設定してください。

2159

X'0000086F'

MQRC_PUT_MSG_RECORDS_ERROR

メッセージを配布リストに登録するためのMQPUT命令またはMQPUT1命令が発行されましたが,MQPMR構造体のメッセージレコードが正しく指定されていません。次のどれかの場合が該当します。

  • PutMsgRecOffsetフィールドが0以外の値であり,PutMsgRecPtrフィールドがヌルポインタでも0でもない場合

  • PutMsgRecPtrフィールドが有効なポインタではない場合

  • PutMsgRecPtrフィールドまたはPutMsgRecOffsetフィールドが,アクセス不能な記憶域を指している場合

対処

PutMsgRecOffsetフィールドおよびPutMsgRecPtrフィールドのうち,少なくともどちら一つが0であることを確認してください。また,使用するフィールドがアクセス可能な記憶域を指していることを確認してください。

2160

X'00000870'

MQRC_CONN_ID_IN_USE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2161

X'00000871'

MQRC_Q_MGR_QUIESCING

MQI命令が発行されましたが,キューマネジャが休止している(終了の準備をしている)ため,命令が失敗しました。

キューマネジャが停止しているとき,MQOPEN,MQPUT,MQPUT1およびMQGET命令は引き続き正常に実行できます。ただし,アプリケーションは,命令に次の適切なオプションを指定することによって,命令が失敗するよう指定できます。

  • MQOPEN命令のMQOO_FAIL_IF_QUIESCING

  • MQPUTまたはMQPUT1命令のMQPMO_FAIL_IF_QUIESCING

  • MQGET命令のMQGMO_FAIL_IF_QUIESCING

対処

アプリケーションの後処理をして停止します。失敗した命令で,MQOO_FAIL_IF_QUIESCING,MQPMO_FAIL_IF_QUIESCINGまたはMQGMO_FAIL_IF_QUIESCINGオプションを指定した場合は,これらのオプションを削除して,命令を再発行します。これらのオプションを省略することによって,アプリケーションは現在のトランザクションを完了しコミットするために動作し続けます。しかし,別のトランザクションは開始できません。

2162

X'00000872'

MQRC_Q_MGR_STOPPING

MQI命令が発行されましたが,アプリケーションまたはOpenTP1が終了中のため,命令は失敗しました。

アプリケーションまたはOpenTP1の終了処理中に,命令が呼び出されました。MQGMO_WAITを指定したMQGET命令の場合,待ち合わせは取り消されます。メッセージキューイングするMQI命令は呼び出せません。

対処

アプリケーションの後処理をして停止します。アプリケーションが,外部コーディネータによるトランザクションの途中である場合は,アプリケーションで命令を発行してトランザクションをロールバックします。

2163

X'00000873'

MQRC_DUPLICATE_RECOV_COORD

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2173

X'0000087D'

MQRC_PMO_ERROR

MQPUT命令またはMQPUT1命令のMQPMO構造体が次のどれかの理由で不正です。

  • StrucIdフィールドがMQPMO_STRUC_IDではありません。

  • Versionフィールドに無効な値,またはサポートされていない値が指定されています。

  • ポインタ引数が不正です。不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

  • 命令は成功しましたが,変更された構造体がアプリケーションの記憶領域にコピーされません。これは,ポインタ引数が読み出し専用領域を指している場合にも発生することがあります。

対処

MQPMO構造体の定義を訂正してください。要求された入力フィールドが正しく設定されているか確認してください。

2182

X'00000886'

MQRC_API_EXIT_NOT_FOUND

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2183

X'00000887'

MQRC_API_EXIT_LOAD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2184

X'00000888'

MQRC_REMOTE_Q_NAME_ERROR

MQOPEN命令またはMQPUT1命令で,次に示すどちらかのエラーが発生しました。

  • リモートキューのローカル定義または定義の別名が指定されましたが,リモートキュー定義のRemoteQName属性が空白です。なお,このエラーは定義のXmitQNameが空白でない場合にも発生します。

  • オブジェクト記述子のObjectQMgrNameフィールドが空白,およびローカルキューマネジャ名ではありません。また,ObjectNameフィールドが空白です。

対処

リモートキューのローカル定義を変更して,正しいリモートキュー名を指定してください。または,オブジェクト記述子のObjectNameフィールドに空白でないオブジェクト名を指定してください。

2185

X'00000889'

MQRC_INCONSISTENT_PERSISTENCE

MQPUT命令が発行され,グループのメッセージまたは論理メッセージのセグメントが登録されました。しかし,MQMD構造体のPersistenceフィールドの指定値またはデフォルト値が,キューハンドルに対してキューマネジャが保持する,現在のグループとセグメント情報と矛盾します。グループ内の全メッセージおよび論理メッセージの全セグメントの永続性は同じ値を持つ必要があります。つまり,すべて永続またはすべて非永続である必要があります。

現在の命令がMQPMO_LOGICAL_ORDERを指定する場合,命令は失敗します。現在の命令はMQPMO_LOGICAL_ORDERを指定しないが,直前のMQPUT命令がキューハンドルに指定した場合は,命令は完了コードMQCC_WARNINGで成功します。

対処

グループ内のすべてのメッセージまたは論理メッセージのすべてのセグメントで,永続性について同じ値が使用されるよう,アプリケーションを変更してください。

2186

X'0000088A'

MQRC_GMO_ERROR

MQGET命令の,MQGMO構造体が次のどれかの理由で不正です。

  • StrucIdフィールドがMQGMO_STRUC_IDではありません。

  • Versionフィールドに無効な値またはサポートされていない値が指定されています。

  • ポインタ引数が不正です。ただし,不正なポインタ引数を検出できないことがあります。検出されないときの動作は保証しません。

  • キューマネジャが変更した構造体をアプリケーション領域にコピーできません。命令が成功してもエラーになります。ポインタ引数が読み出し専用領域を指しているときも,このエラーが発生することがあります。

対処

MQGMO構造体の定義を訂正してください。必要な入力フィールドが正しく設定されているか確認してください。

2187

X'0000088B'

MQRC_CICS_BRIDGE_RESTRICTION

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2188

X'0000088C'

MQRC_STOPPED_BY_CLUSTER_EXIT

オープンまたはメッセージ登録のためにクラスタキューにMQOPEN,MQPUTまたはMQPUT1命令が発行されましたが,クラスタワークロード出口が命令を拒否しました。

対処

クラスタワークロード出口が正しく記述されているか確認してください。クラスタワークロード出口が命令を拒否した理由を調査し,問題を対策してください。

2189

X'0000088D'

MQRC_CLUSTER_RESOLUTION_ERROR

MQOPEN命令,MQPUT命令,またはMQPUT1命令が,クラスタキューへのオープンまたはメッセージ登録のために発行されましたが,リポジトリマネジャからの応答がないため,キュー定義を正しく解決できません。

リポジトリマネジャから応答がない原因として,TP1/MQとフルリポジトリマネジャ間のチャネル障害やリポジトリマネジャの処理遅延が考えられます。

対処

MQRC_CLUSTER_RESOLUTION_ERRORを返却したMQI命令を再発行してください。再発行で解決しない場合は,次に示す対処をしてください。

・リポジトリマネジャが動作していることをチェックしてください。

・キューおよびチャネル定義が正しいことをチェックしてください。

・クラスタ内に登録できるキューおよび使用できるチャネルの組み合わせがあることをチェックしてください(キューやチャネルが削除された場合に,このエラーが発生するおそれがあります)。

問題を解決したあと,アプリケーションを再実行してください。

2190

X'0000088E'

MQRC_CONVERTED_STRING_TOO_BIG

GetMsgOpts引数にMQGMO_CONVERTオプションが指定されているMQGET命令で,メッセージ内の固定長フィールドの文字列がデータ変換時に拡張しフィールド長を超えました。この場合,キューマネジャは,末尾の空白文字および最初のヌル文字に続く文字を廃棄して,文字列をフィールド長に合わせます。しかし,この場合は廃棄するだけの文字がありませんでした。

この理由コードは,フォーマット名がMQFMT_IMS_VAR_STRINGのメッセージの場合も発生することがあります。この場合は,IMS可変文字列が拡張し,その長さがIMS可変文字列の構造体内で2バイトバイナリ長フィールドのサイズを超えてしまいます(キューマネジャはIMS可変文字列内の末尾の空白を廃棄しません)。

MQGET命令のCompCode引数がMQCC_WARNINGに設定され,メッセージは変換されずに返されます。メッセージが幾つかの部分から構成されていて,各部分が独自の文字セットとマシンコードで記述されている場合(例えば,フォーマット名がMQFMT_DEAD_LETTER_HEADERのメッセージ),変換される部分と変換されない部分が発生することがあります。しかし,文字セットとマシンコード形式のフィールドで返される値は,関連するメッセージデータを常に正確に表します。

この理由コードは,末尾の空白文字を廃棄することによって文字列をフィールドに合わせられる場合は発生しません。

対処

メッセージ内のフィールドに正しい値が含まれていること,メッセージの送信側と受信側が指定した文字セット識別子が正しいことを確認してください。正しい場合はメッセージのデータレイアウトを変更し,変換時に文字列が拡張しても十分な余裕があるようにフィールド長を増やします。

2191

X'0000088F'

MQRC_TMC_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQTMC2構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQTMC_STRUC_IDではありません。

  • VersionフィールドがMQTMC_VERSION_2ではありません。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQTMC構造体またはMQTMC2構造体の定義を訂正します。各フィールドを正しく設定してください。

2192

X'00000890'

MQRC_PAGESET_FULL

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2192

X'00000890'

MQRC_STORAGE_MEDIUM_FULL

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2193

X'00000891'

MQRC_PAGESET_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2194

X'00000892'

MQRC_NAME_NOT_VALID_FOR_TYPE

MQOPEN命令を呼び出して,キューマネジャ定義をオープンしました。しかし,ObjDesc引数のObjectNameフィールドに空白が設定されていません。

対処

ObjectNameフィールドに空白を設定してください。

2195

X'00000893'

MQRC_UNEXPECTED_ERROR

予期しないエラーが発生したため,命令が拒否されました。

また,次に示すすべての項目を指定して,キューマネジャがメッセージのセグメント分割をした場合も,この理由コードが返されます。

  • MQMD構造体のVersionフィールドにMQMD_VERSION_2を指定

  • MQMD構造体のMsgFlagsフィールドにMQMF_SEGMENTATION_ALLOWEDを指定

  • MQMD構造体のFormatフィールドにMQFMT_MD_EXTENSIONを指定

  • ユーザデータにMQMDE構造体を指定

対処

システム管理者に連絡してください。

また,キューマネジャがメッセージをセグメント分割する場合の対処を次に示します。

・MQMD構造体のVersionフィールドにMQMD_VERSION_1を指定

・MQMD構造体のMsgFlagsフィールドにMQMF_NONEを指定

・ユーザデータのMQMDE構造体を削除

2196

X'00000894'

MQRC_UNKNOWN_XMIT_Q

MQOPEN命令またはMQPUT1命令で,メッセージがリモートキューマネジャに送信されることになっています。オブジェクト記述子のObjectNameフィールドまたはObjectQMgrNameフィールドに,リモートキューのローカル定義名が指定されています。なお,ObjectQMgrNameの場合は,キューマネジャ別名が使われています。しかし,定義のXmitQName属性が空白ではなく,ローカルに定義されるキューの名称でもありません。

対処

ObjectNameとObjectQMgrNameに指定された値を確認してください。正しい場合,キュー定義を確認してください。名称解決については,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

2197

X'00000895'

MQRC_UNKNOWN_DEF_XMIT_Q

MQOPEN命令またはMQPUT1命令があて先としてリモートキューを指定して呼び出されました。リモートキューのローカル定義が指定された,または,キューマネジャ別名の実名が解釈されていても,ローカル定義のXmitQName属性が空白です。あて先キューマネジャと同じ名称で定義されたキューがありません。そのため,キューマネジャは省略時の転送キューを使用しようとしました。しかし,DefXmitQNameキューマネジャ属性で定義された名称が,ローカルに定義されたキューの名称ではありません。

対処

キュー定義またはキューマネジャ属性を訂正してください。転送キューについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

2198

X'00000896'

MQRC_DEF_XMIT_Q_TYPE_ERROR

あて先としてリモートキューを指定して,MQOPEN命令またはMQPUT1命令が呼び出されました。リモートキューのローカル定義が指定された,またはキューマネジャ別名の実名が解釈されましたが,ローカル定義のXmitQName属性が空白です。

あて先キューマネジャと同じ名称で定義された転送キューがないため,ローカルキューマネジャは省略時の転送キューを使用しようとしました。しかし,DefXmitQNameキューマネジャ属性で定義されたキューは,ローカルキューではないため使用できません。

転送キューについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

対処

次に示す対処のうちどれかを実行してください。

・リモートキューのローカル定義のXmitQName属性の値として,ローカル転送キューを指定してください。

・リモートキューマネジャと同じ名称でローカル転送キューを定義してください。

・DefXmitQNameキューマネジャ属性の値としてローカル転送キューを指定してください。

2199

X'00000897'

MQRC_DEF_XMIT_Q_USAGE_ERROR

あて先としてリモートキューを指定して,MQOPEN命令またはMQPUT1命令が呼び出されました。リモートキューのローカル定義が指定された,またはキューマネジャ別名の実名が解釈されましたが,ローカル定義のXmitQName属性が空白です。あて先キューマネジャと同じ名称で定義された転送キューがないため,ローカルキューマネジャは省略時の転送キューを使用しようとしました。しかし,DefXmitQNameキューマネジャ属性で定義されたキューが,値MQUS_TRANSMISSIONのUsage属性を持っていないため,使用できません。

転送キューについては,マニュアル「TP1/Message Queue プログラム作成の手引」を参照してください。

対処

次に示す対処のうちどれかを実行してください。

・リモートキューのローカル定義のXmitQName属性の値として,ローカル転送キューを指定してください。

・リモートキューマネジャと同じ名称でローカル転送キューを定義してください。

・DefXmitQNameキューマネジャ属性の値として異なるローカル転送キューを指定してください。

・DefXmitQNameキューのUsage属性をMQUS_TRANSMISSIONに変更してください。

2201

X'00000899'

MQRC_NAME_IN_USE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2202

X'0000089A'

MQRC_CONNECTION_QUIESCING

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2203

X'0000089B'

MQRC_CONNECTION_STOPPING

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2204

X'0000089C'

MQRC_ADAPTER_NOT_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2206

X'0000089E'

MQRC_MSG_ID_ERROR

選択基準としてメッセージ識別子を使用してメッセージを取り出すMQGET命令が発行されましたが,このキューではメッセージ識別子による選択がサポートされないため,失敗しました。

対処

メッセージ識別子による選択を実行しないようにアプリケーションを変更します。つまり,MsgIdフィールドをMQMI_NONEに設定し,MQGMO構造体でMQMO_MATCH_MSG_IDを指定しません。

2207

X'0000089F'

MQRC_CORREL_ID_ERROR

選択基準として相関識別子を使用してメッセージを取り出すMQGET命令が発行されましたが,このキューでは相関識別子による選択がサポートされないため,失敗しました。

対処

相関識別子による選択を実行しないようにアプリケーションを変更します。つまり,CorrelIdフィールドをMQCI_NONEに設定し,MQGMO構造体でMQMO_MATCH_CORREL_IDを指定しません。

2208

X'000008A0'

MQRC_FILE_SYSTEM_ERROR

キューで操作をしようとしたときに,ファイルシステムから予期しないリターンコードを受け取りました。

この理由コードはVSE/ESAでだけ出力されます。

対処

アクセスしようとしたキューについてのファイルシステム定義をチェックしてください。VSAMファイルの場合は,制御間隔がキューに許可されているメッセージの最大長の処理時間以上であるかどうかをチェックしてください。

2209

X'000008A1'

MQRC_NO_MSG_LOCKED

MQGMO_UNLOCKオプションを指定してMQGET命令が呼び出されましたが,排他状態にされたメッセージはありません。

対処

同一ハンドルを使用して,MQGMO_LOCKを指定した以前のMQGET命令で,メッセージが排他状態にされていないか確認してください。また,呼び出された命令のうち,メッセージの排他状態を解除したものがないか確認してください。

2216

X'000008A8'

MQRC_FILE_NOT_AUDITED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2217

X'000008A9'

MQRC_CONNECTION_NOT_AUTHORIZED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2218

X'000008AA'

MQRC_MSG_TOO_BIG_FOR_CHANNEL

メッセージがリモートキューに書き込まれましたが,その長さが,チャネルによって認められている最大メッセージ長を超えています。この理由コードは,報告メッセージのメッセージ記述子内のFeedbackフィールドに返されます。

対処

チャネル定義を調べてください。チャネルが受信できる最大メッセージ長を大きくするか,そのメッセージを複数の小さいメッセージに分割してください。

2219

X'000008AB'

MQRC_CALL_IN_PROGRESS

コネクションに対して命令がすでに処理されている間に,アプリケーションがほかの命令を呼び出しました。一度に処理できる命令は,アプリケーションコネクション一つにつき1命令です。

アプリケーションがマルチスレッドを使用する場合,またはMQI命令処理の一部として出口が呼ばれる場合,同時並行の命令が発生します。例えば,MQGET命令の処理で呼ばれるデータ変換出口は,MQI命令を発行することがあります。

対処

命令の実行中は,そのほかの命令を発行しないでください。データ変換UOCの中から命令を発行しないでください。

2220

X'000008AC'

MQRC_RMH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQRMH構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQRMH_STRUC_IDではありません。

  • VersionフィールドがMQRMH_VERSION_1ではありません。

  • StrucLengthフィールドに指定されている値が小さ過ぎて,構造体,および構造体の末尾にある可変長データを格納できません。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されています。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQRMH構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2222

X'000008AE'

MQRC_Q_MGR_ACTIVE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2223

X'000008AF'

MQRC_Q_MGR_NOT_ACTIVE

この理由コードは,キューマネジャが停止または静止を要求されたときに返されます。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2224

X'000008B0'

MQRC_Q_DEPTH_HIGH

MQPUT命令またはMQPUT1命令が実行されたために,キューのサイズがQDepthHighLimit属性で指定されている最大値を超えて増加しました。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2225

X'000008B1'

MQRC_Q_DEPTH_LOW

MQGET命令が実行されたために,キューのサイズがQDepthLowLimit属性で指定されている最小値より減少しました。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2226

X'000008B2'

MQRC_Q_SERVICE_INTERVAL_HIGH

QServiceInterval属性に指定された限界よりも長い間隔内で正常な読み取りまたは登録を検出しませんでした。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2227

X'000008B3'

MQRC_Q_SERVICE_INTERVAL_OK

QServiceInterval属性に指定された限界以下の間隔内で正常な読み取りを検出しました。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2232

X'000008B8'

MQRC_UNIT_OF_WORK_NOT_STARTED

トランザクション内でメッセージの取り出しまたは登録を実行するためにMQGET,MQPUTまたはMQPUT1命令が発行されましたが,TM/MPトランザクションが開始していませんでした。MQGET命令にMQGMO_NO_SYNCPOINTが指定されていない場合,およびMQPUTまたはMQPUT1命令にMQPMO_NO_SYNCPOINTが指定されていない場合(デフォルト)は,命令にはトランザクションが必要です。

対処

TM/MPトランザクションが使用可能であることを確認するか,MQGMO_NO_SYNCPOINTオプション指定のMQGET命令,またはMQPMO_NO_SYNCPOINTオプション指定のMQPUTまたはMQPUT1命令を発行してください。これによってトランザクションを自動的に開始します。

2233

X'000008B9'

MQRC_CHANNEL_AUTO_DEF_OK

この理由コードが返されるのは,チャネルの自動定義が正常に終了した場合です。チャネルはメッセージチャネルエージェント(MCA)によって定義されています。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2234

X'000008BA'

MQRC_CHANNEL_AUTO_DEF_ERROR

この理由コードが返されるのは,チャネルの自動定義が失敗した場合です。失敗の理由としては,次のように考えられます。

  • 定義プロセスの実行中にエラーが発生した

  • チャネルの自動定義出口によって定義が禁止された

イベントメッセージに,失敗の理由を示す追加情報が返されます。

対処

イベントメッセージ中に返された追加情報で,障害の理由を確認してください。

2235

X'000008BB'

MQRC_CFH_ERROR

MQPUTまたはMQPUT1命令で,メッセージデータ内のPCFヘッダであるMQCFH構造体が無効です。

対処

MQCFH構造体の定義を修正してください。フィールドの値が正しく設定されているか確認してください。

2236

X'000008BC'

MQRC_CFIL_ERROR

MQPUT命令またはMQPUT1命令で,メッセージデータ中のPCF整数リストの引数であるMQCFIL構造体が無効です。

対処

MQCFIL構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2237

X'000008BD'

MQRC_CFIN_ERROR

MQPUT命令またはMQPUT1命令で,メッセージデータ中のPCF整数の引数となるMQCFIN構造体が無効です。

対処

MQCFIN構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2238

X'000008BE'

MQRC_CFSL_ERROR

MQPUT命令またはMQPUT1命令で,メッセージデータ中のPCFストリングリスト引数であるMQCFSL構造体が無効です。

対処

MQCFSL構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2239

X'000008BF'

MQRC_CFST_ERROR

MQPUT命令またはMQPUT1命令で,メッセージデータ中のPCFストリングの引数であるMQCFST構造体が無効です。

対処

MQCFST構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2241

X'000008C1'

MQRC_INCOMPLETE_GROUP

不完全なメッセージグループのあるキューハンドルを使用して,キューを操作しようとしました。この理由コードが返されるのは,次の場合です。

  • MQPUT命令で,アプリケーションがグループ内にないメッセージを登録するためにMQPMO_LOGICAL_ORDERを指定する場合

    この場合,完了コードはMQCC_FAILEDです。

  • MQPUT命令で,アプリケーションがMQPMO_LOGICAL_ORDERを指定しないが,キューハンドルに直前のMQPUT命令でMQPMO_LOGICAL_ORDERを指定した場合

    この場合,完了コードはMQCC_WARNINGです。

  • MQGET命令で,アプリケーションがMQGMO_LOGICAL_ORDERを指定しないが,キューハンドルに直前のMQGET命令でMQGMO_LOGICAL_ORDERを指定した場合

    この場合,完了コードはMQCC_WARNINGです。

  • MQCLOSE命令で,アプリケーションが,不完全なメッセージグループがあるキューをクローズする場合

    この場合,完了コードはMQCC_WARNINGです。

不完全なメッセージグループと同時に不完全な論理メッセージも存在する場合,理由コードMQRC_INCOMPLETE_MSGがMQRC_INCOMPLETE_GROUPの前に返されます。

対処

この理由コードを意図していた場合は,対処する必要はありません。意図したものでない場合は,そのグループ内の最後のメッセージに対するMQPUT命令にMQMF_LAST_MSG_IN_GROUPが指定されていることを確認してください。

2242

X'000008C2'

MQRC_INCOMPLETE_MSG

不完全な論理メッセージのあるキューハンドルを使用して,キューを操作しようとしました。この理由コードが返されるのは,次の場合です。

  • MQPUT命令で,アプリケーションがセグメントでないメッセージを登録しようとして,MQPMO_LOGICAL_ORDERを指定した場合

    この場合,命令は失敗します。

  • MQPUT命令で,アプリケーションがMQPMO_LOGICAL_ORDERの指定なしで順番と異なるセグメントのメッセージを登録しようとして,キューハンドル用の直前のMQPUT命令にMQPMO_LOGICAL_ORDERが指定されていた場合

    この場合,命令は成功し,完了コードMQCC_WARNINGが返されます。

  • MQGET命令で,アプリケーションがMQGMO_LOGICAL_ORDERの指定なしで順番と異なるセグメントのメッセージを取り出そうとして,キューハンドル用の直前のMQGET命令にMQGMO_LOGICAL_ORDERが指定されていた場合

    この場合,命令は成功し,完了コードMQCC_WARNINGが返されます。

  • MQCLOSE命令で,アプリケーションが不完全な論理メッセージのあるキューをクローズしようとした場合

    この場合,命令は成功し,完了コードMQCC_WARNINGが返されます。

  • MQPUT命令で,セグメントのMQMF_LAST_MSG_IN_GROUPフラグの設定が,直前のメッセージセグメントと異なる場合

対処

この理由コードを意図していた場合は,対処する必要はありません。意図したものでない場合は,最後のセグメントに対するMQPUT命令にMQMF_LAST_SEGMENTが指定されていることを確認してください。

2243

X'000008C3'

MQRC_INCONSISTENT_CCSIDS

MQGMO_COMPLETE_MSGオプションを指定したMQGET命令が発行されましたが,検索対象のメッセージはMQMD構造体のCodedCharSetIdフィールド中の,値の異なる複数のセグメントで構成されています。

この理由コードが返されるのは,セグメントがネットワークを経由して異なるパスを通り,それらのパスの一部でMCAセンダ側の変換が使用できる場合です。この場合命令は成功し,完了コードMQCC_WARNINGが返されますが,同一の文字セットIDを持つセグメントの初期値と等しい数のセグメントだけが戻ります。

対処

MQGET命令からMQGMO_COMPLETE_MSGオプションを解除し,残りのメッセージセグメントを一つずつ取り出してください。

2244

X'000008C4'

MQRC_INCONSISTENT_ENCODINGS

MQGMO_COMPLETE_MSGオプションを指定したMQGET命令が発行されましたが,取り出し対象のメッセージは,MQMD構造体のEncodingフィールド中の,値の異なる複数のセグメントで構成されています。

この理由コードが返されるのは,セグメントがネットワークを経由して異なるパスを通り,それらのパスの一部でMCAセンダ側の変換が使用できる場合です。このとき命令は成功し,完了コードMQCC_WARNINGが返されますが,同一のマシンコード形式を持つセグメントの初期値と等しい数のセグメントだけが返されます。

対処

MQGET命令からMQGMO_COMPLETE_MSGオプションを解除し,残りのメッセージセグメントを一つずつ取り出してください。

2245

X'000008C5'

MQRC_INCONSISTENT_UOW

次のどれかが該当します。

  1. グループ内のメッセージまたは論理メッセージのセグメントを登録するために,MQPUT命令が発行されました。しかし,MQPMO_SYNCPOINTオプションの指定値または初期値と,キューハンドル用にキューマネジャが保存している現在のグループおよびセグメントの情報が矛盾しています。

    現在の命令にMQPMO_LOGICAL_ORDERが指定されている場合は,その命令は失敗します。MQPMO_LOGICAL_ORDERが現在の命令には指定されないで,キューハンドルに対する直前のMQPUT命令に指定されていた場合は,命令は成功して完了コードMQCC_WARNINGが返されます。

  2. グループ内のメッセージまたは論理メッセージのセグメントをキューから取り出すためにMQGET命令が発行されました。しかし,MQGMO_SYNCPOINTオプションの指定値またはデフォルト値と,キューハンドル用にキューマネジャが保存している現在のグループおよびセグメントの情報が矛盾しています。

    現在の命令にMQGMO_LOGICAL_ORDERが指定されている場合は,その命令は失敗します。MQGMO_LOGICAL_ORDERが現在の命令には指定されないで,キューハンドルに対する直前のMQGET命令に指定されていた場合は,命令は成功して完了コードMQCC_WARNINGが返されます。

  3. セグメント方式(mqtalccha定義コマンドの-gオプションに"buftype=seg"を指定)の受信側チャネル(mqtalccha定義コマンドの-yオプションに"type=receiver","type=requester",または"type=clusrcvr"を指定)が,MQMDE構造体のMsgFlagsフィールドにMQMF_SEGMENTATION_ALLOWEDが設定されているメッセージを受信しました。しかし,受信メッセージ長が,登録しようとしたキューの最大メッセージ長よりも大きいです。

対処

要因1.,2.に対しては,アプリケーションを修正して,グループ内のすべてのメッセージ,または論理メッセージのすべてのセグメントについて,同じトランザクションを指定してください。

要因3.に対しては,メッセージ方式(mqtalccha定義コマンドの-gオプションに"buftype=msg"を指定)に変更するか,キューの最大メッセージ長を大きくしてください。

2246

X'000008C6'

MQRC_INVALID_MSG_UNDER_CURSOR

MQGMO_MSG_UNDER_CURSORオプションまたはMQGMO_BROWSE_MSG_UNDER_CURSORオプションのどちらかとともに,MQGMO_COMPLETE_MSGオプションを指定したMQGET命令が発行されましたが,カーソルの下にあるメッセージには,0より大きいOffsetフィールドを指定したMQMD構造体があります。

MQGMO_COMPLETE_MSGオプションが指定されているので,このメッセージは検索用として無効です。

対処

ブラウズカーソルの位置を変更し,MQMD構造体のOffsetフィールドが0になっているメッセージにカーソルを置いてください。または,MQGMO_COMPLETE_MSGオプションを解除してください。

2247

X'000008C7'

MQRC_MATCH_OPTIONS_ERROR

MQGET命令が発行されましたが,GetMsgOpts引数のMatchOptionsフィールドの値が次のどちらかの理由で無効です。

  • 未定義のオプションが指定されています。

  • 次のすべてが当てはまります。

    ・MQGMO_LOGICAL_ORDERが指定されています。

    ・キューハンドル用の現在のメッセージグループまたは論理メッセージがあります。

    ・次のオプションがどちらも指定されていません。

      MQGMO_BROWSE_MSG_UNDER_CURSOR

      MQGMO_MSG_UNDER_CURSOR

    ・一つ以上のMQMO_*オプションが指定されています。

    ・指定されているMQMO_*オプションに対応するMsgDesc引数のフィールドの値が,次に返されるメッセージ用のMQMD構造体の対応するフィールドの値と異なっています。

対処

フィールドに有効なオプションだけが指定されていることを確認してください。

2248

X'000008C8'

MQRC_MDE_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQMDE構造体が含まれています。エラーとして,次のことが考えられます。

  • StrucIdフィールドの値が,MQMDE_STRUC_IDではありません。

  • VersionフィールドがMQMDE_VERSION_2ではありません。

  • StrucLengthフィールドの値がMQMDE_LENGTH_2ではありません。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されました。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

メッセージ記述子の拡張の定義を修正してください。入力されなければならないフィールドが正しく設定されているか確認してください。

2249

X'000008C9'

MQRC_MSG_FLAGS_ERROR

MQPUT命令またはMQPUT1命令が発行されましたが,メッセージ記述子MQMD構造体のMsgFlagsフィールドに,ローカルキューマネジャが認識できないメッセージフラグが一つ以上あります。この理由コードが返される原因になったメッセージフラグは,メッセージのあて先によって異なります。

この理由コードは,報告メッセージのMQMD構造体のFeedbackフィールド,またはデッドレターキューへ登録したメッセージのMQDLH構造体のReasonフィールドに返されることもあります。どちらの場合も,メッセージの送信元が指定したメッセージフラグの中に,あて先キューマネジャがサポートしていないものが一つ以上あることを示しています。

対処

次に示す内容を確認してください。

・メッセージ記述子のMsgFlagsフィールドが,メッセージ記述子の宣言時の値を使用して初期設定されているかどうか,またはMQPUTかMQPUT1命令より前にMsgFlagsフィールドに値が割り当てられているかどうか。メッセージフラグが不要な場合は,MQMF_NONEを指定します。

・指定されたメッセージフラグが有効であるかどうか。フラグについては,「1. データタイプ」の「MQMD構造体 − メッセージ記述子」を参照してください。

・個々のメッセージフラグを追加することによって複数のメッセージフラグを設定している場合は,同じメッセージフラグを2回追加していないか確認してください。

2250

X'000008CA'

MQRC_MSG_SEQ_NUMBER_ERROR

MQGET命令,MQPUT命令,またはMQPUT1命令が発行されましたが,MQMD構造体またはMQMDE構造体のMsgSeqNumberフィールドに,1より小さい値か999999999より大きい値が指定されています。MQPUT命令で,実行結果としてMsgSeqNumberフィールドが999999999より大きくなった場合も,このエラーが発生することがあります。

対処

1〜999999999の範囲内の値を指定してください。999999999個を超えるメッセージを含むメッセージグループを作成しないでください。

2251

X'000008CB'

MQRC_OFFSET_ERROR

MQPUT命令またはMQPUT1命令が発行されましたが,MQMD構造体またはMQMDE構造体のOffsetフィールドに,0より小さいか,999999999より大きい値が指定されています。

MQPUT命令で,実行結果としてOffsetフィールドが999999999より大きくなった場合にも,このエラーが発生することがあります。

対処

0〜999999999の範囲内の値を指定してください。オフセットが999999999を超えるようなメッセージセグメントを作成しないでください。

2252

X'000008CC'

MQRC_ORIGINAL_LENGTH_ERROR

セグメントである報告メッセージを登録するためのMQPUT命令またはMQPUT1命令が発行されましたが,MQMD構造体またはMQMDE構造体のOriginalLengthフィールドが,次のどれかに該当しています。

  • メッセージ内のデータの長さより小さい

  • 1より小さい(最後のセグメント以外のセグメントの場合)

  • 0より小さい(最後のセグメントの場合)

対処

0より大きい値を指定してください。0は,最後のセグメントにだけ有効です。

2253

X'000008CD'

MQRC_SEGMENT_LENGTH_ZERO

論理メッセージの開始位置,または中間のセグメントを登録するためのMQPUT命令またはMQPUT1命令が発行されましたが,そのセグメントの存在する可能性のあるMQヘッダをすべて除いたアプリケーションメッセージデータ長が0です。開始位置,または中間のセグメントの長さは,少なくとも1でなければなりません。

対処

アプリケーションを調査して,セグメントが1以上の長さで登録されているか確認してください。ただし,論理メッセージの最後のセグメントだけは,セグメント長が0でもかまいません。

2255

X'000008CF'

MQRC_UOW_NOT_AVAILABLE

トランザクションの外部で,メッセージの取り出しや登録をするためのMQGET命令,MQPUT命令,またはMQPUT1命令が発行されましたが,その命令に指定されているオプションでは,キューマネジャがトランザクション内部で命令を処理する必要があります。しかし,ユーザ定義のトランザクションがすでに存在しているので,キューマネジャは,命令の実行中に使用する一時的なトランザクションを作成できませんでした。

この理由コードは次の場合に返されます。

  • MQGET命令で,MQGMO構造体にMQGMO_COMPLETE_MSGオプションが指定されていて,取り出す論理メッセージが永続メッセージであり,かつ,二つ以上のセグメントで構成されている場合

  • MQPUT命令またはMQPUT1命令で,MQMD構造体にMQMF_SEGMENTATION_ALLOWEDフラグを指定することによって,メッセージのセグメント化が必要な場合

対処

MQGET命令,MQPUT命令,またはMQPUT1命令を,ユーザ定義のトランザクションの内部で発行してください。MQPUT命令またはMQPUT1命令の場合は,キューマネジャによるセグメント化を防ぐために,メッセージサイズを小さくすることもできます。

2256

X'000008D0'

MQRC_WRONG_GMO_VERSION

バージョン番号がMQGMO_VERSION_2以降のMQGMO構造体を必要とするオプションを指定したMQGET命令で,提供されたMQGMO構造体は,条件を満たしていません。

対処

バージョン2のMQGMO構造体を渡すようにプログラムを変更してください。プログラムを調査して,MQGMO構造体のVersionフィールドがMQGMO_VERSION_2に設定されていることを確認してください。または,バージョン2のMQGMO構造体を必要とするオプションを解除してください。

2257

X'000008D1'

MQRC_WRONG_MD_VERSION

バージョン番号がMQMD_VERSION_2以降のMQMD構造体を必要とするオプションを指定したMQGET命令,MQPUT命令,またはMQPUT1命令で,提供されたMQMD構造体は,条件を満たしていません。

対処

バージョン2のMQMD構造体を渡すように,アプリケーションを変更してください。アプリケーションを調査して,MQMD構造体のVersionフィールドがMQMD_VERSION_2に設定されていることを確認してください。または,バージョン2のMQMD構造体を必要とするオプションを解除してください。

2258

X'000008D2'

MQRC_GROUP_ID_ERROR

グループ内のメッセージ,メッセージセグメントおよびセグメント化が許可されている配布リストメッセージを書き込むためのMQPUT命令またはMQPUT1命令が発行されましたが,指定したオプションと値の組み合わせが無効です。次に示す理由が考えられます。

  • MQPMO構造体のOptionsフィールドに,MQPMO_LOGICAL_ORDERが指定されていません。

  • MQPMO構造体から提供されるレコードの数が少な過ぎます。またはMQPMR構造体のレコードにGroupIdフィールドがありません。

  • MQMD構造体またはMQMDE構造体のMsgFlagsフィールドに,次の一つ以上のフラグが指定されています。

     MQMF_SEGMENTATION_ALLOWED

     MQMF_*_MSG_IN_GROUP

     MQMF_*_SEGMENT

  • MQMD構造体またはMQMDE構造体のGroupIdフィールドが,MQGI_NONEではありません。

上記の組み合わせのオプションと値を指定すると,同じグループIDがあて先リストにあるすべてのあて先に使用されることになります。これは,キューマネジャによって許可されない組み合わせです。

対処

MQMD構造体またはMQMDE構造体のGroupIdフィールドに,MQGI_NONEを指定してください。ただし,MQPUT命令の場合は,MQPMO構造体のOptionsフィールドにMQPMO_LOGICAL_ORDERを指定してください。

2259

X'000008D3'

MQRC_INCONSISTENT_BROWSE

MQGMO_BROWSE_NEXTオプションを指定したMQGET命令が発行されましたが,そのMQGET命令用のMQGMO_LOGICAL_ORDERオプションの指定と,キューハンドル用の直前のMQGET命令のMQGMO_LOGICAL_ORDERオプションの指定が異なっています。両方の命令にMQGMO_LOGICAL_ORDERを指定するか,どちらの命令にもMQGMO_LOGICAL_ORDERを指定しないかの,どちらかにしなければなりません。

対処

MQGMO_LOGICAL_ORDERオプションを指定するか,解除するか,適切な方の処置をとってください。MQGMO_LOGICAL_ORDERオプションの代わりに,論理順序と物理順序を切り替えるためには,MQGET命令にMQGMO_BROWSE_FIRSTオプションを指定して,キューの先頭からメッセージを取り出します。このとき,必要に応じてMQGMO_LOGICAL_ORDERを指定または省略します。

2260

X'000008D4'

MQRC_XQH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQXQH構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQXQH_STRUC_IDではありません。

  • VersionフィールドがMQXQH_VERSION_1ではありません。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQXQH構造体の定義を修正してください。また,フィールドが正しく設定されていることを確認してください。

2261

X'000008D5'

MQRC_SRC_ENV_ERROR

この理由コードは,参照メッセージを処理するチャネル出口が,参照メッセージヘッダ(MQRMH構造体)の送信元環境データでエラーを検出したときに出されます。次のどれかの状態になっています。

  • SrcEnvLengthが0よりも小さくなっています。

  • SrcEnvLengthがゼロより大きいが,送信元環境データがありません。

  • SrcEnvLengthがゼロより大きいが,SrcEnvOffsetが負の値またはゼロです。またはMQRMH構造体の固定部分の長さより小さくなっています。

  • SrcEnvLengthがゼロより大きいが,SrcEnvOffsetにSrcEnvLengthを加えた値が,StrucLengthより大きくなっています。

出口はこの理由コードをMQCXP構造体のFeedbackフィールドに返します。例外報告が要求されていれば,報告に関連するMQMD構造体のFeedbackフィールドにコピーされます。

対処

送信元環境データを正しく指定してください。

2262

X'000008D6'

MQRC_SRC_NAME_ERROR

この理由コードは,参照メッセージを処理するチャネル出口が,参照メッセージヘッダ(MQRMH構造体)の送信元オブジェクト名データでエラーを検出したときに出されます。次のどれかの状態になっています。

  • SrcNameLengthが0よりも小さくなっています。

  • SrcNameLengthがゼロより大きいが,送信元名データがありません。

  • SrcNameLengthがゼロより大きいが,SrcNameOffsetが負の値またはゼロです。またはMQRMH構造体の固定部分の長さより小さくなっています。

  • SrcNameLengthがゼロより大きいが,SrcNameOffsetにSrcNameLengthを加えた値が,StrucLengthより大きくなっています。

出口はこの理由コードをMQCXP構造体のFeedbackフィールドに返します。例外報告が要求されていれば,報告に関連するMQMD構造体のFeedbackフィールドにコピーされます。

対処

送信元オブジェクト名データを正しく指定してください。

2263

X'000008D7'

MQRC_DEST_ENV_ERROR

この理由コードは,参照メッセージを処理するチャネル出口が,参照メッセージヘッダ(MQRMH構造体)のあて先環境データでエラーを検出したときに出されます。次のどれかの状態になっています。

  • DestEnvLengthが0よりも小さくなっています。

  • DestEnvLengthがゼロより大きいが,あて先環境データがありません。

  • DestEnvLengthがゼロより大きいが,DestEnvOffsetが負の値またはゼロです。またはMQRMH構造体の固定部分の長さより小さくなっています。

  • DestEnvLengthがゼロより大きいが,DestEnvOffsetにDestEnvLengthを加えた値が,StrucLengthより大きくなっています。

出口はこの理由コードをMQCXP構造体のFeedbackフィールドに返します。例外報告が要求されていれば,報告に関連するMQMD構造体のFeedbackフィールドにコピーされます。

対処

あて先環境データを正しく指定してください。

2264

X'000008D8'

MQRC_DEST_NAME_ERROR

この理由コードは,参照メッセージを処理するチャネル出口が,参照メッセージヘッダ(MQRMH構造体)のあて先オブジェクト名データでエラーを検出したときに出されます。次のどれかの状態になっています。

  • DestNameLengthが0よりも小さくなっています。

  • DestNameLengthがゼロより大きいが,あて先名データがありません。

  • DestNameLengthがゼロより大きいが,DestNameOffsetが負の値か,またはMQRMHの固定部分の長さより小さくなっています。

  • DestNameLengthがゼロより大きいが,DestNameOffsetにDestNameLengthを加えた値が,StrucLengthより大きくなっています。

出口はこの理由コードをMQCXP構造体のFeedbackフィールドに返します。例外報告が要求されていれば,報告に関連するMQMD構造体のFeedbackフィールドにコピーされます。

対処

あて先オブジェクト名データを正しく指定してください。

2265

X'000008D9'

MQRC_TM_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQTM構造体があります。次のエラーなどがあります。

  • StrucIdフィールドがMQTM_STRUC_IDではありません。

  • VersionフィールドがMQTM_VERSION_1ではありません。

  • 命令のBufferLength引数の値が小さ過ぎて,構造体を格納できません(構造体がメッセージの末尾を超えて拡張されています)。

対処

MQTMC構造体の定義を訂正します。各フィールドを正しく設定してください。

2266

X'000008DA'

MQRC_CLUSTER_EXIT_ERROR

オープンまたはメッセージ登録のためにクラスタキューにMQOPEN,MQPUTまたはMQPUT1命令が発行されましたが,キューマネジャのClusterWorkloadExit属性で定義したクラスタワークロード出口が失敗したか,または時間内に応答しませんでした。このキューハンドルに対する以降のMQOPEN,MQPUTおよびMQPUT1命令は,ClusterWorkloadExit属性が空白として処理されます。

対処

クラスタワークロード出口が正しく記述されているか確認してください。

2267

X'000008DB'

MQRC_CLUSTER_EXIT_LOAD_ERROR

キューマネジャに接続するためにMQCONNまたはMQCONNX命令が発行されましたが,キューマネジャのClusterWorkloadExit属性で定義されたクラスタワークロード出口をロードできなかったため,命令は失敗しました。

対処

クラスタワークロード出口が正しい場所にインストールされているか確認してください。

2268

X'000008DC'

MQRC_CLUSTER_PUT_INHIBITED

MQOPEN命令が,MQOO_OUTPUTおよびMQOO_BIND_ON_OPENオプションを指定して,クラスタキューに発行されましたが,次のすべての条件を満たしたため,失敗しました。

  • すべてのクラスタキューが,現在は登録禁止です(つまり,すべてのキューで,InhibitPut属性にMQQA_PUT_INHIBITEDが設定されています)。

  • キューのローカルインスタンスがありません。ローカルインスタンスがある場合は,ローカルインスタンスが登録禁止であってもMQOPEN命令は成功します。

  • クラスタワークロード出口がキューにない,またはあってもキューインスタンスを選択していません。クラスタワークロード出口がキューインスタンスを選択している場合は,そのインスタンスが登録禁止であってもMQOPEN命令は成功します。

MQOO_BIND_NOT_FIXEDオプションがMQOPEN命令に指定される場合,クラスタ内のすべてのキューが登録禁止であっても成功することがあります。しかし,以降のMQPUT命令は,発行時にすべてのキューが登録禁止のままであると失敗することがあります。

対処

システム設計で短い期間の登録要求禁止が許されている場合は,MQOPEN命令を再発行してください。

キュー取り出し禁止をしない運用,またはキュー取り出し禁止を長い時間解除しない運用を前提としてシステムが設計されている場合は,アプリケーションを終了してください。

2269

X'000008DD'

MQRC_CLUSTER_RESOURCE_ERROR

クラスタキューにMQOPEN,MQPUTまたはMQPUT1命令が発行されましたが,クラスタに必要なリソースを使用するときにエラーが発生しました。

対処

次に示す対処を行ってください。

・SYSTEM.CLUSTER.*キューが登録禁止または満杯になっていないことを確認します。

・フルリポジトリキューマネジャが使用可能であることを確認します。

2270

X'000008DE'

MQRC_NO_DESTINATIONS_AVAILABLE

MQPUT命令またはMQPUT1命令がクラスタキューにメッセージを登録するために発行されましたが,発行時にクラスタにはキューがなくなってしまっていたため,メッセージが送信できません。

この状況は,キューをオープンするMQOPEN命令でMQOO_BIND_NOT_FIXEDが指定された延長でMQPUT命令でメッセージを登録するとき,またはMQPUT1命令でメッセージを登録するときに発生します。

対処

MQRC_NO_DESTINATIONS_AVAILABLEが返却されたMQI命令がMQPUT命令の場合は,MQOPEN命令から再発行してください。MQPUT1命令の場合は,MQPUT1命令を再発行してください。

再発行で解決しない場合は,すべてのキューがクラスタから削除された理由を特定するために,キューの定義とキューの状態をチェックしてください。

問題を解決したあと,アプリケーションを再実行してください。

2271

X'000008DF'

MQRC_CONN_TAG_IN_USE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2272

X'000008E0'

MQRC_PARTIALLY_CONVERTED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2273

X'000008E1'

MQRC_CONNECTION_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2274

X'000008E2'

MQRC_OPTION_ENVIRONMENT_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2277

X'000008E5'

MQRC_CD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2278

X'000008E6'

MQRC_CLIENT_CONN_ERROR

キューマネジャに接続するためにMQCONNX命令を発行しましたが,MQCDチャネル定義構造体が正しく指定されていません。次に示すどれかが該当します。

  • ClientConnOffsetがゼロではなく,ClientConnPtrがゼロまたはヌルポインタのどちらでもありません。

  • ClientConnPtrが無効なポインタです。

  • ClientConnPtrまたはClientConnOffsetが,アクセス不可能なストレージを指しています。

対処

ClientConnOffsetおよびClientConnPtrの少なくとも一方がゼロであることを確認してください。使用しているフィールドがアクセス可能なストレージを指していることを確認します。

2279

X'000008E7'

MQRC_CHANNEL_STOPPED_BY_USER

チャネルがオペレータによって停止されていた場合にこの状況が検出されます。理由修飾子が停止理由を示します。

対処

ありません。この理由コードは対応するイベントメッセージの識別に使用されるだけです。

2280

X'000008E8'

MQRC_HCONFIG_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2281

X'000008E9'

MQRC_FUNCTION_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2282

X'000008EA'

MQRC_CHANNEL_STARTED

これは,次のどちらかの場合です。

  • オペレータがStart Channel(チャネル開始)コマンドを発行した場合

  • チャネルのインスタンスの確立に成功した場合

この理由コードは,初期データの転送が完了していて,必要な場合には,再度同期化してメッセージのネゴシエーションを続行できるときに返されます。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2283

X'000008EB'

MQRC_CHANNEL_STOPPED

この理由コードは,チャネルが停止したときに返されます。理由修飾子は停止の理由を表します。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2284

X'000008EC'

MQRC_CHANNEL_CONV_ERROR

この理由コードが返されるのは,チャネルがデータ変換を実行できないで,転送キューからメッセージを読み取るMQGET命令がデータ変換エラーの原因となった場合です。変換理由コードで障害の理由を確認してください。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2285

X'000008ED'

MQRC_SERVICE_NOT_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2286

X'000008EE'

MQRC_INITIALIZATION_FAILED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2287

X'000008EF'

MQRC_TERMINATION_FAILED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2288

X'000008F0'

MQRC_UNKNOWN_Q_NAME

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2289

X'000008F1'

MQRC_SERVICE_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2290

X'000008F2'

MQRC_Q_ALREADY_EXISTS

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2291

X'000008F3'

MQRC_USER_ID_NOT_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2292

X'000008F4'

MQRC_UNKNOWN_ENTITY

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2293

X'000008F5'

MQRC_UNKNOWN_AUTH_ENTITY

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2294

X'000008F6'

MQRC_UNKNOWN_REF_OBJECT

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2295

X'000008F7'

MQRC_CHANNEL_ACTIVATED

この理由コードが返されるのは,Channel Not Activatedイベントの生成対象になっていたチャネルが活動状態になるのを待っている場合,別のチャネルが活動状態のスロットを解放したために活動状態となったときです。Channel Not Activatedイベントは,活動スロットが解放されるのを待たないで活動できるチャネルに対しては生成されません。

対処

ありません。この理由コードは,対応するイベントメッセージを識別するためにだけ使用されます。

2296

X'000008F8'

MQRC_CHANNEL_NOT_ACTIVATED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2297

X'000008F9'

MQRC_UOW_CANCELED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2298

X'000008FA'

MQRC_FUNCTION_NOT_SUPPORTED

要求された機能は,現在の環境では利用できません。

対処

アプリケーションから命令を削除してください。

2299

X'000008FB'

MQRC_SELECTOR_TYPE_ERROR

Selector引数のデータ型が間違っています。この引数はlong型でなければいけません。

対処

Selector引数をlongとして宣言してください。

2300

X'000008FC'

MQRC_COMMAND_TYPE_ERROR

mqExecute命令が発行されましたが,管理バッグ内のMQIASY_TYPEデータ項目の値がMQCFT_COMMANDではありません。

対処

管理バッグ内のMQIASY_TYPEデータ項目の値がMQCFT_COMMANDであることを確認してください。

2301

X'000008FD'

MQRC_MULTIPLE_INSTANCE_ERROR

Selector引数でシステムセレクタ(MQIASY_*値の一つ)を指定していますが,ItemIndex引数がMQIND_NONEではありません。各システムセレクタのインスタンスは一つだけバッグ内に存在できます。

対処

ItemIndex引数の値にMQIND_NONEを指定してください。

2302

X'000008FE'

MQRC_SYSTEM_ITEM_NOT_ALTERABLE

バッグ内のシステムデータ項目(MQIASY_*セレクタの一つのあるデータ項目)の値を変更する命令が発行されましたが,データ項目をアプリケーションで変更できないため,命令は失敗しました。

対処

ユーザ定義データ項目のセレクタを指定するか,命令を削除してください。

2303

X'000008FF'

MQRC_BAG_CONVERSION_ERROR

mqBufferToBagまたはmqGetBag命令が発行されましたが,バッファまたはメッセージ内のデータをバッグに変換できませんでした。変換するデータが無効なPCFの場合に発生します。

対処

バッファまたはメッセージを作成したアプリケーションのロジックを確認して,バッファまたはメッセージに有効なPCFが含まれることを確認してください。

メッセージに無効なPCFがある場合,そのメッセージはmqGetBag命令で取り出せません。

・MQGMO_BROWSE_*オプションの一つが指定されると,メッセージはキューに残り,MQGET命令で取り出せます。

・その他の場合は,メッセージがキューからすでに削除され廃棄されています。メッセージがトランザクション内で取り出された場合,トランザクションをロールバックしてMQGET命令でメッセージを取り出せます。

2304

X'00000900'

MQRC_SELECTOR_OUT_OF_RANGE

Selector引数の値が,命令の有効範囲外です。バッグがMQCBO_CHECK_SELECTORSオプションで作成された場合は,次に示す条件を満たしてください。

  • mqAddInteger命令のとき,値はMQIA_FIRSTからMQIA_LASTまでの範囲です。

  • mqAddString命令のとき,値はMQCA_FIRSTからMQCA_LASTまでの範囲です。

バッグがMQCBO_CHECK_SELECTORSオプションで作成されなかった場合,値はゼロ以上でなければいけません。

対処

有効な値を指定してください。

2305

X'00000901'

MQRC_SELECTOR_NOT_UNIQUE

ItemIndex引数の値がMQIND_NONEですが,バッグにはSelector引数で指定されたセレクタ値を持つデータ項目が複数あります。MQIND_NONEの場合,バッグには指定セレクタのオカレンスを一つだけ含められます。

この理由コードは,セレクタを一つしか許可しない必要引数に二つ以上のセレクタのオカレンスが管理バッグにあるときにも,mqExecute命令で発生します。

対処

バッグを作成したアプリケーションのロジックを確認してください。ロジックが正しい場合は,ItemIndexにゼロ以上の値を指定し,バッグ内の全セレクタのオカレンスを処理するためのアプリケーションロジックを追加します。

発行する管理コマンドの記述を見直して,バッグ内にすべての必要引数が正しく定義されていることを確認します。

2306

X'00000902'

MQRC_INDEX_NOT_PRESENT

指定された索引がありません。

  • バッグの場合には,Selector引数で指定したセレクタ値を持つデータ項目が一つ以上バッグにあるが,どのデータ項目も索引値がItemIndex引数で指定されていないことを示します。SelectorおよびItemIndex引数で指定したデータ項目がバッグ内に必要です。

  • ネームリストの場合には,索引引数値が大き過ぎて,有効な値の範囲外であることを示します。

対処

バッグまたはネームリストにあるデータ項目の索引を指定してください。mqCountItems命令を使用してバッグにあるセレクタを持つデータ項目の数を確認したり,nameCountメソッドを使用してネームリスト内の名前の数を確認したりします。

2307

X'00000903'

MQRC_STRING_ERROR

String引数が無効です。引数ポインタが無効または読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2308

X'00000904'

MQRC_ENCODING_NOT_SUPPORTED

メッセージ記述子MQMD構造体のEncodingフィールドにサポートされない値があります。

  • mqPutBag命令の場合,エラーに示されているフィールドは命令のMsgDesc引数内にあります。

  • mqGetBag命令の場合,エラーに示されているフィールドは次に示す場所にあります。

    −MQGMO_CONVERTオプションが指定された場合は,命令のMsgDesc引数です。

    −MQGMO_CONVERTが指定されなかった場合は,取り出すメッセージのメッセージ記述子です。

対処

値はMQENC_NATIVEでなくてはなりません。

メッセージ内のEncodingフィールドの値が無効な場合,メッセージはmqGetBag命令で取り出せません。

・MQGMO_BROWSE_*オプションの一つが指定されると,メッセージはキューに残り,MQGET命令で取り出せます。

・その他の場合は,メッセージがキューからすでに削除され廃棄されています。メッセージがトランザクション内で取り出された場合,トランザクションをロールバックしMQGET命令でメッセージを取り出せます。

2309

X'00000905'

MQRC_SELECTOR_NOT_PRESENT

Selector引数に,バッグにないセレクタが指定されています。

対処

バッグにあるセレクタを指定してください。

2310

X'00000906'

MQRC_OUT_SELECTOR_ERROR

OutSelector引数が無効です。引数ポインタが無効かまたは読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を修正してください。

2311

X'00000907'

MQRC_STRING_TRUNCATED

命令によって返された文字列が長過ぎてバッファに入りません。文字列はバッファに入るように切り捨てられました。

対処

文字列の全体が必要な場合は,バッファを大きくしてください。mqInquireString命令ではStringLength引数を設定し,切り捨てないで文字列全体が入るバッファサイズを指定します。

2312

X'00000908'

MQRC_SELECTOR_WRONG_TYPE

指定のセレクタを持つデータ項目がバッグ内にありますが,そのデータ項目のデータ型が,使用する命令のデータ型と矛盾します。例えば,データ項目が整数データ型で,使用する命令は文字データ型のmqSetStringという場合があります。

mqBagToBuffer,mqExecuteおよびmqPutBag命令でも,MQIACF_INQUIRYデータ項目をバッグに追加するためにmqAddStringまたはmqSetStringが使用された場合にこの理由コードが発生します。

対処

mqSetIntegerおよびmqSetString命令の場合,MQIND_ALLをItemIndex引数に指定して,必要なデータ型の新規オカレンスを作成する前に指定セレクタの既存の全オカレンスをバッグから削除してください。

mqInquireBag,mqInquireIntegerおよびmqInquireString命令の場合,mqInquireItemInfo命令を使用して指定セレクタを持つデータ項目のデータ型を決定し,次に適切な命令を使用してデータ項目の値を決定します。

mqBagToBuffer,mqExecuteおよびmqPutBag命令の場合は,mqAddIntegerまたはmqSetInteger命令を使用してMQIACF_INQUIRYデータ項目を必ずバッグに追加します。

2313

X'00000909'

MQRC_INCONSISTENT_ITEM_TYPE

指定セレクタの異なるオカレンスをバッグに追加するためにmqAddIntegerまたはmqAddString命令が発行されましたが,オカレンスのデータ型が最初のオカレンスのデータ型と異なりました。

mqBufferToBagおよびmqGetBag命令で,バッファまたはメッセージ内のPCFに複数のオカレンスがあるセレクタが含まれていて,それらのオカレンスのデータ型が不一致な場合にも,この理由コードが発生することがあります。

対処

mqAddIntegerおよびmqAddString命令の場合は,バッグ内のセレクタで最初のオカレンスのデータ型に適した命令を使用してください。

mqBufferToBagおよびmqGetBag命令の場合は,バッファを作成したか,またはメッセージを送信したアプリケーションのロジックを確認して,セレクタの複数オカレンスのデータ型が同じであるか確認します。セレクタのデータ型が混在しているメッセージは,mqGetBag命令では取り出せません。

・MQGMO_BROWSE_*オプションの一つが指定されると,メッセージはキューに残り,MQGET命令で取り出せます。

・その他の場合は,メッセージがキューからすでに削除され廃棄されています。メッセージがトランザクション内で取り出された場合,トランザクションをロールバックしメッセージをMQGET命令で取り出せます。

2314

X'0000090A'

MQRC_INDEX_ERROR

命令またはメソッドの索引引数に無効な値があります。値はゼロ以上でなければいけません。バッグ命令の場合は特定のMQIND_*値も指定できます。

  • mqDeleteItem,mqSetIntegerおよびmqSetString命令の場合は,MQIND_ALLとMQIND_NONEが有効です。

  • mqInquireBag,mqInquireInteger,mqInquireStringおよびmqInquireItemInfo命令の場合は,MQIND_NONEが有効です。

対処

有効な値を指定してください。

2315

X'0000090B'

MQRC_SYSTEM_BAG_NOT_ALTERABLE

バッグへデータ項目を追加したり,バッグ内の既存データ項目値を変更したり,メッセージを取り出してバッグへ挿入したりする目的で命令が発行されました。しかし,前回のmqExecute命令の結果としてシステムが作成したバッグであるため,命令は失敗しました。アプリケーションからシステムバッグを変更できません。

対処

アプリケーションによって作成されたバッグのハンドルを指定するか,命令を削除してください。

2316

X'0000090C'

MQRC_ITEM_COUNT_ERROR

mqTruncateBag命令が発行されましたが,ItemCount引数に指定された値が無効です。値がゼロより小さいか,バッグ内のユーザ定義のデータ項目数より大きな値です。

mqCountItems命令でも,引数ポインタが無効か引数ポインタが読み取り専用ストレージを指していると,この理由コードが発生します。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

有効な値を指定してください。mqCountItems命令を使用して,バッグ内のユーザ定義のデータ項目数を確認します。

2317

X'0000090D'

MQRC_FORMAT_NOT_SUPPORTED

メッセージ記述子MQMD構造体のFormatフィールドにサポートされない値があります。

  • mqPutBag命令の場合,エラーに示されているフィールドは命令のMsgDesc引数内にあります。

  • mqGetBag命令の場合,エラーに示されているフィールドは,取り出すメッセージのメッセージ記述子にあります。

対処

値は次に示すどれかです。

・MQFMT_ADMIN

・MQFMT_EVENT

・MQFMT_PCF

メッセージ内のFormatフィールドの値が上記のどれでもない場合,メッセージはmqGetBag命令で取り出せません。

・MQGMO_BROWSE_*オプションの一つが指定されると,メッセージはキューに残り,MQGET命令で取り出せます。

・その他の場合は,メッセージがキューからすでに削除され,廃棄されています。メッセージがトランザクション内で取り出された場合,トランザクションをロールバックしMQGET命令でメッセージを取り出せます。

2318

X'0000090E'

MQRC_SELECTOR_NOT_SUPPORTED

Selector引数にシステムセレクタである値(負の値)が指定されていますが,そのシステムセレクタは,命令でサポートされている値ではありません。

対処

サポートされているセレクタ値を指定してください。

2319

X'0000090F'

MQRC_ITEM_VALUE_ERROR

mqInquireBagまたはmqInquireInteger命令が発行されましたが,ItemValue引数が無効です。引数ポインタが無効か,または読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2320

X'00000910'

MQRC_HBAG_ERROR

引数としてバッグハンドルが指定された命令が発行されましたが,ハンドルが無効です。出力引数の場合,引数ポインタが無効か引数ポインタが読み取り専用ストレージを指しているときも,この理由コードが発生します。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2321

X'00000911'

MQRC_PARAMETER_MISSING

管理メッセージには,管理バッグ内にない引数が必要です。この理由コードは,MQCBO_ADMIN_BAGまたはMQCBO_REORDER_AS_REQUIREDオプションによって作成されたバッグだけに発生します。

対処

発行する管理コマンドの記述を見直して,バッグ内にすべての必要な引数があることを確認してください。

2322

X'00000912'

MQRC_CMD_SERVER_NOT_AVAILABLE

管理コマンドを処理するコマンドサーバが使用できません。

対処

コマンドサーバを開始してください。

2323

X'00000913'

MQRC_STRING_LENGTH_ERROR

StringLength引数が無効です。引数ポインタが無効か,または読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2324

X'00000914'

MQRC_INQUIRY_COMMAND_ERROR

事前にmqAddInquiryによって属性セレクタがバッグに追加されましたが,mqBagToBuffer,mqExecuteまたはmqPutBag命令に使用するコマンドコードが認識されません。その結果,正しいPCFメッセージは生成されません。

対処

mqAddInquiry命令を削除し,代わりに適切なMQIACF_*_ATTRSまたはMQIACH_*_ATTRSセレクタを指定したmqAddInteger命令を使用してください。

2325

X'00000915'

MQRC_NESTED_BAG_NOT_SUPPORTED

命令への入力であるバッグにネストバッグがあります。ネストバッグは,命令からの出力であるバッグの場合だけサポートされます。

対処

異なるバッグを命令への入力として使用してください。

2326

X'00000916'

MQRC_BAG_WRONG_TYPE

命令に対して不正な型のバッグのハンドルが,Bag引数に指定されています。バッグは管理バッグでなくてはいけません。つまり,MQCBO_ADMIN_BAGオプションを指定したmqCreateBag命令で作成するバッグの必要があります。

対処

バッグを作成するときにMQCBO_ADMIN_BAGオプションを指定してください。

2327

X'00000917'

MQRC_ITEM_TYPE_ERROR

mqInquireItemInfo命令が発行されましたが,ItemType引数が無効です。引数ポインタが無効かまたは読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2328

X'00000918'

MQRC_SYSTEM_BAG_NOT_DELETABLE

バッグを削除するためにmqDeleteBag命令が発行されました。しかし,前回のmqExecute命令の結果システムが作成したバッグだったため,命令は失敗しました。アプリケーションでシステムバッグを削除できません。

対処

アプリケーションによって作成されたバッグのハンドルを指定するか,命令を削除してください。

2329

X'00000919'

MQRC_SYSTEM_ITEM_NOT_DELETABLE

バッグからシステムデータ項目(MQIASY_*セレクタの一つを持つデータ項目)の値を削除するための命令が発行されました。しかし,そのデータ項目はアプリケーションで削除できないため命令は失敗しました。

対処

ユーザ定義データ項目のセレクタを指定するか,命令を削除してください。

2330

X'0000091A'

MQRC_CODED_CHAR_SET_ID_ERROR

CodedCharSetId引数が無効です。引数ポインタが無効かまたは読み取り専用ストレージを指しています。無効な引数ポインタを必ずしも検出できません。検出されなかった場合は予期しない結果が発生します。

対処

引数を訂正してください。

2331

X'0000091B'

MQRC_MSG_TOKEN_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2332

X'0000091C'

MQRC_MISSING_WIH

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2333

X'0000091D'

MQRC_WIH_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2334

X'0000091E'

MQRC_RFH_ERROR

MQPUTまたはMQPUT1命令が発行されましたが,メッセージデータに無効なMQRFHまたはMQRFH2構造体があります。次に示すエラーの可能性があります。

  • StrucIdフィールドがMQRFH_STRUC_IDではありません。

  • VersionフィールドがMQRFH_VERSION_1(MQRFH構造体)またはMQRFH_VERSION_2(MQRFH2構造体)ではありません。

  • StrucLengthフィールドで指定する値が小さ過ぎるため,構造体および構造体の末尾にある可変長データを入れることができません。

  • CodedCharSetIdフィールドに,0または無効な負の値が指定されています。

  • 命令のBufferLength引数の値が小さ過ぎるため,構造体を入れることができません。構造体がメッセージの末尾を超えて拡張されています。

対処

メッセージを生成したアプリケーションを変更して,有効なMQRFH構造体がメッセージデータに配置されるようにしてください。

2335

X'0000091F'

MQRC_RFH_STRING_ERROR

MQRFH構造体のNameValueStringフィールドの内容が無効です。NameValueStringは,次に示す規則に正確に従ってください。

  • 文字列は,一つ以上の空白で区切られたゼロ以上の名前と値の対で構成されなければなりません。この場合の空白は有意ではありません。

  • 名前または値に有意のブランクが含まれている場合は,その名前または値を二重引用符で囲んでください。

  • 名前または値それ自体に一つ以上の二重引用符が含まれている場合は,その名前または値を二重引用符で囲み,かつ組み込まれている二重引用符は二重にしてください。

  • 名前または値には,区切り文字の役割を持つヌル以外のどの文字でも含めることができます。ヌルおよびそれに続く文字は,NameValueStringに定義された長さまで無視されます。

NameValueStringを次に示します。

Famous_Words "The program displayed ""Hello World"""

対処

メッセージを生成したアプリケーションを変更して,このアプリケーションが上記の規則に正確に従ったデータをNameValueStringフィールドに配置するようにします。StrucLengthフィールドが正しい値に設定されていることを確認してください。

2336

X'00000920'

MQRC_RFH_COMMAND_ERROR

メッセージにMQRFH構造体がありますが,NameValueStringフィールドに含まれているコマンド名は無効です。

対処

メッセージを生成したアプリケーションを変更して,このアプリケーションが有効なコマンド名をNameValueStringフィールドに配置するようにしてください。

2337

X'00000921'

MQRC_RFH_PARM_ERROR

メッセージにMQRFH構造体がありますが,NameValueStringフィールドにある引数名は指定されたコマンドには無効です。

対処

メッセージを生成したアプリケーションを変更して,このアプリケーションがNameValueStringフィールドに指定したコマンドに有効な引数だけを配置するようにしてください。

2338

X'00000922'

MQRC_RFH_DUPLICATE_PARM

メッセージにMQRFH構造体があります。しかし,指定したコマンドに引数の出現は1回だけが有効であるのに,NameValueStringフィールドに2回以上出現しています。

対処

メッセージを生成したアプリケーションを変更して,NameValueStringフィールドに引数が1回だけ出現するようにしてください。

2339

X'00000923'

MQRC_RFH_PARM_MISSING

メッセージにMQRFH構造体があります。しかし,NameValueStringフィールドに指定するコマンドには,必要な引数が不足しています。

対処

メッセージを生成したアプリケーションを変更して,指定したコマンドに必要なすべての引数をNameValueStringフィールドに配置してください。

2340

X'00000924'

MQRC_CHAR_CONVERSION_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2341

X'00000925'

MQRC_UCS2_CONVERSION_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2342

X'00000926'

MQRC_DB2_NOT_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2343

X'00000927'

MQRC_OBJECT_NOT_UNIQUE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2344

X'00000928'

MQRC_CONN_TAG_NOT_RELEASED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2345

X'00000929'

MQRC_CF_NOT_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2346

X'0000092A'

MQRC_CF_STRUC_IN_USE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2347

X'0000092B'

MQRC_CF_STRUC_LIST_HDR_IN_USE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2348

X'0000092C'

MQRC_CF_STRUC_AUTH_FAILED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2349

X'0000092D'

MQRC_CF_STRUC_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2350

X'0000092E'

MQRC_CONN_TAG_NOT_USABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2351

X'0000092F'

MQRC_GLOBAL_UOW_CONFLICT

グローバルトランザクションの内部で,ほかのグローバルトランザクションに参加中の接続ハンドルを使用しようとしました。異なるDTCトランザクションに関係するオブジェクト間で,アプリケーションが接続ハンドルを渡すとこのエラーが発生することがあります。トランザクションの完了は非同期であるため,アプリケーションが最初のオブジェクトを完了してトランザクションをコミットしたあとでこのエラーが発生することがあります。

このエラーは,非トランザクションMQI命令の場合には発生しません。

この理由コードはWindows環境でだけ発生します。

対処

オブジェクトのクラスに定義されているMTS Transaction Support属性が正しく設定されているか確認してください。必要な場合には,異なるトランザクション内で実行中のオブジェクトによって接続ハンドルが使用されないようにアプリケーションを訂正してください。

2352

X'00000930'

MQRC_LOCAL_UOW_CONFLICT

グローバルトランザクションの内部で,キューマネジャが調整するローカルトランザクションに参加中の接続ハンドルを使用しようとしました。アプリケーションがオブジェクト間で接続ハンドルを渡すとき,一方のオブジェクトがDTCトランザクションに関係していて他方が関係していない場合に,このエラーが発生することがあります。

このエラーは,非トランザクションMQI命令の場合には発生しません。

この理由コードはWindowsの環境でだけ返されます。

対処

オブジェクトのクラスに定義されているMTS Transaction Support属性が正しく設定されているか確認してください。必要な場合には,接続ハンドルが異なるトランザクション内で実行中のオブジェクトによって使用されないようにアプリケーションを訂正してください。

2353

X'00000931'

MQRC_HANDLE_IN_USE_FOR_UOW

トランザクション外で,グローバルトランザクションに参加中の接続ハンドルを使用しようとしました。

アプリケーションがオブジェクト間で接続ハンドルを渡すとき,一方のオブジェクトがDTCトランザクションに関係していて他方が関係していない場合に,このエラーが発生することがあります。トランザクションの完了が非同期であるため,アプリケーションが最初のオブジェクトを完了してそのトランザクションをコミットしたあとでこのエラーが発生することがあります。

トランザクションとともに作成され,トランザクションに関連づけられた単一オブジェクトが実行中にその関連を失った場合にも,このエラーが発生することがあります。DTCがMTSとは独立してそのトランザクションを終了するとき,関連は失われます。この終了は,トランザクションがタイムアウトになったか,DTCが停止されたためである可能性があります。

このエラーは,非トランザクションMQI命令の場合には発生しません。

この理由コードはWindowsの環境でだけ返されます。

対処

オブジェクトのクラスに定義されているMTS Transaction Support属性が正しく設定されているか確認してください。必要な場合には,異なるトランザクション内で実行中のオブジェクトが同じ接続ハンドルの使用を試行しないようにアプリケーションを訂正してください。

2354

X'00000932'

MQRC_UOW_ENLISTMENT_ERROR

この理由コードはいろいろな理由で発生することがあります。最もよくある理由は,DTCトランザクションによって作成されたオブジェクトが,DTCトランザクションがタイムアウトするまでにトランザクションのMQI命令を発行しないことです。トランザクションのMQI命令が発行されたあとでDTCトランザクションがタイムアウトになる場合,MQI命令の失敗によって理由コードMQRC_HANDLE_IN_USE_FOR_UOWが返されます。

MQRC_UOW_ENLISTMENT_ERRORが返されるほかの理由は,不正なインストールです。Windows NT Service PackはWindows NT Option Packのあとにインストールしてください。

この理由コードはWindows環境でだけ返されます。

対処

DTCのTransaction timeout値を確認してください。必要な場合には,インストール順序を確認してください。

2355

X'00000933'

MQRC_UOW_MIX_NOT_SUPPORTED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2356

X'00000934'

MQRC_WXP_ERROR

チェーンから次のレコードのアドレスを取得するために,クラスタワークロード出口からMQXCLWLN命令が発行されました。次に示すどれかの理由で,ワークロード出口引数構造体ExitParmsが有効ではありません。

  • 引数ポインタが無効です。無効な引数およびポインタを必ず検出できるわけではありません。検出されなかった場合は予期しない結果が発生します。

  • StrucIdフィールドがMQWXP_STRUC_IDではありません。

  • VersionフィールドがMQWXP_VERSION_2ではありません。

対処

ExitParmsに指定された引数が,出口が呼び出されたときに出口に渡されたMQWXP構造体であることを確認してください。

2357

X'00000935'

MQRC_CURRENT_RECORD_ERROR

チェーンの次のレコードアドレスを取得するために,クラスタワークロード出口からMQXCLWLN命令が発行されましたが,CurrentRecord引数によって指定されたアドレスが有効なレコードのアドレスではありません。CurrentRecordはクラスタキャッシュ内にあるあて先レコード(MQWDR),キューレコード(MQWQR),またはクラスタレコード(MQWCR)でなければなりません。

対処

クラスタワークロード出口がクラスタキャッシュにある有効なレコードのアドレスを渡していることを確認してください。

2358

X'00000936'

MQRC_NEXT_OFFSET_ERROR

チェーンの次のレコードアドレスを取得するために,クラスタワークロード出口からMQXCLWLN命令が発行されましたが,NextOffset引数によって指定されたオフセットが有効ではありません。NextOffsetは以下のフィールドのどれかの値でなければなりません。

  • MQWDRのChannelDefOffsetフィールド

  • MQWDRのClusterRecOffsetフィールド

  • MQWQRのClusterRecOffsetフィールド

  • MQWCRのClusterRecOffsetフィールド

対処

NextOffset引数に指定されている値が,上記のフィールドのどれかの値であることを確認してください。

2359

X'00000937'

MQRC_NO_RECORD_AVAILABLE

チェーンの次のレコードアドレスを取得するために,クラスタワークロード出口からMQXCLWLN命令が発行されましたが,現行レコードがチェーン内の最後のレコードです。

対処

ありません。

2360

X'00000938'

MQRC_OBJECT_LEVEL_INCOMPATIBLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2361

X'00000939'

MQRC_NEXT_RECORD_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2362

X'0000093A'

MQRC_BACKOUT_THRESHOLD_REACHED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2363

X'0000093B'

MQRC_MSG_NOT_MATCHED

この理由コードは,MQDLH構造体のReasonフィールドまたは報告メッセージのMQMD構造体のFeedbackフィールドにだけ発生します。

ポイントツーポイントメッセージングを実行している間に,JMSは,キューをモニタするConnectionConsumerのセレクタに合わないメッセージを検知しました。性能を維持するため,そのメッセージはMQMD構造体のReportフィールドの後処理オプションに従って処理されました。

ReportフィールドでMQRO_EXCEPTION_*オプションのどれかを指定する場合,この理由コードが報告メッセージのFeedbackフィールドに出力されます。ReportフィールドでMQRO_DEAD_LETTER_Qを指定するか,または後処理オプションがデフォルトのままの場合,この理由コードがMQDLH構造体のReasonフィールドに出力されます。

対処

キューをモニタするConnectionConsumerが十分なセレクタを提供していることを確認してください。または,メッセージを保持するようにQueueConnectionFactoryを設定します。

2364

X'0000093C'

MQRC_JMS_FORMAT_ERROR

この理由コードは,パースできないというメッセージをJMSが検出した場合に発生します。JMS ConnectionConsumerによってこのようなメッセージが検出された場合,そのメッセージはMQMD構造体のReportフィールドの後処理オプションに従って処理されます。

ReportフィールドでMQRO_EXCEPTION_*オプションのどれかを指定する場合,この理由コードが報告メッセージのFeedbackフィールドに出力されます。ReportフィールドでMQRO_DEAD_LETTER_Qを指定するか,または後処理オプションがデフォルトのままの場合,この理由コードがMQDLH構造体のReasonフィールドに出力されます。

対処

メッセージの発行元を調査してください。

2365

X'0000093D'

MQRC_SEGMENTS_NOT_SUPPORTED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2366

X'0000093E'

MQRC_WRONG_CF_LEVEL

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2367

X'0000093F'

MQRC_CONFIG_CREATE_OBJECT

この状態は,オブジェクトが作成される場合に検出されます。

対処

ありません。この理由コードは,対応するイベントメッセージの識別にだけ使用されます。

2368

X'00000940'

MQRC_CONFIG_CHANGE_OBJECT

この状態は,オブジェクトが変更される場合に検出されます。

対処

ありません。この理由コードは,対応するイベントメッセージの識別にだけ使用されます。

2369

X'00000941'

MQRC_CONFIG_DELETE_OBJECT

この状態は,オブジェクトが削除される場合に検出されます。

対処

ありません。この理由コードは,対応するイベントメッセージの識別にだけ使用されます。

2370

X'00000942'

MQRC_CONFIG_REFRESH_OBJECT

この状態は,オブジェクトが更新される場合に検出されます。

対処

ありません。この理由コードは,対応するイベントメッセージの識別にだけ使用されます。

2371

X'00000943'

MQRC_CHANNEL_SSL_ERROR

この状態は,SSLキー交換または認証の失敗のために接続が確立できない場合に検出されます。

対処

ありません。この理由コードは,対応するイベントメッセージの識別にだけ使用されます。

2373

X'00000945'

MQRC_CF_STRUC_FAILED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2374

X'00000946'

MQRC_API_EXIT_ERROR

API出口機能が無効な応答コードを返したか,またはほかの理由で失敗しました。

対処

出口のロジックを調べ,出口がMQAXP構造体のExitResponseフィールドまたはExitResponse2フィールドに有効な値を返すことを確認してください。FFSTレコードを調べて問題の詳細情報があるか確認してください。

2375

X'00000947'

MQRC_API_EXIT_INIT_ERROR

API出口機能のための実行環境の初期化中に,キューマネジャでエラーが発生しました。

問題についての詳細情報を取得するために,FFSTレコードを調査してください。

2376

X'00000948'

MQRC_API_EXIT_TERM_ERROR

API出口機能のための実行環境の終了中に,キューマネジャでエラーが発生しました。

問題についての詳細情報を取得するために,FFSTレコードを調査してください。

2377

X'00000949'

MQRC_EXIT_REASON_ERROR

API出口機能によってMQXEP命令が発行されましたが,ExitReason引数に指定された値が無効か,または指定された機能識別子Functionでサポートされていません。

対処

Functionに指定された値に対して有効な値をExitReasonに指定するよう,出口機能を変更してください。

2378

X'0000094A'

MQRC_RESERVED_VALUE_ERROR

API出口機能によってMQXEP命令が発行されましたが,Reserved引数に指定された値が無効です。値はヌルポインタにしてください。

対処

Reserved引数の値としてヌルポインタを指定するように出口を変更してください。

2379

X'0000094B'

MQRC_NO_DATA_AVAILABLE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2380

X'0000094C'

MQRC_SCO_ERROR

MQCONNX命令で,次に示すどちらかの理由によってMQSCO構造体が無効です。

  • StrucIdフィールドがMQSCO_STRUC_IDです。

  • VersionフィールドがMQSCO_VERSION_1ではありません。

対処

MQSCO構造体の定義を訂正してください。

2381

X'0000094D'

MQRC_KEY_REPOSITORY_ERROR

MQCONNまたはMQCONNX命令で,キーリポジトリの位置が指定されていないか,無効か,または位置を指定してキーリポジトリにアクセスするとエラーが発生します。キーリポジトリの位置は,次に示すどちらかによって指定されます。

  • MQSSLKEYR環境変数(MQCONNまたはMQCONNX命令の場合)

  • MQSCO構造体のKeyRepositoryフィールドの値(MQCONNX命令の場合)

MQCONNX命令でMQSSLKEYRとKeyRepositoryの両方が指定されている場合,KeyRepositoryが使用されます。

対処

キーリポジトリに有効な位置を指定してください。

2382

X'0000094E'

MQRC_CRYPTO_HARDWARE_ERROR

MQCONNまたはMQCONNX命令で,暗号ハードウェアの構成文字列が無効か,または構成文字列を使用して暗号ハードウェアを構成するとエラーが発生します。構成文字列は,次に示すどちらかによって指定されます。

  • MQSSLCRYP環境変数(MQCONNまたはMQCONNX命令の場合)

  • MQSCO構造体のCryptoHardwareフィールドの値(MQCONNX命令の場合)

MQCONNX命令でMQSSLCRYPとCryptoHardwareの両方が指定されている場合,CryptoHardwareが使用されます。

対処

暗号ハードウェアに有効な構成文字列を指定してください。

2383

X'0000094F'

MQRC_AUTH_INFO_REC_COUNT_ERROR

MQCONNX命令で,MQSCO構造体のAuthInfoRecCountフィールドに,0より小さい値が指定されています。

対処

AuthInfoRecCountフィールドにゼロ以上の値を指定してください。

2384

X'00000950'

MQRC_AUTH_INFO_REC_ERROR

MQCONNX命令で,MQSCO構造体にMQAIRレコードのアドレスが正確に指定されていません。次に示すどれかが該当します。

  • AuthInfoRecCountはゼロより大きいが,AuthInfoRecOffsetがゼロであり,AuthInfoRecPtrがヌルポインタです。

  • AuthInfoRecOffsetがゼロではなく,AuthInfoRecPtrがヌルポインタではありません。

  • AuthInfoRecPtrが無効なポインタです。

  • AuthInfoRecOffsetまたはAuthInfoRecPtrが,アクセス不可能なストレージを指しています。

対処

AuthInfoRecOffsetまたはAuthInfoRecPtrの一方がゼロで,もう一方がゼロ以外の数値にしてください。使用しているフィールドがアクセス可能なストレージを指していることを確認します。

2385

X'00000951'

MQRC_AIR_ERROR

MQCONNX命令でMQAIRレコードが無効です。その理由は次に示すどちらかです。

  • StrucIdフィールドがMQAIR_STRUC_IDではありません。

  • VersionフィールドがMQAIR_VERSION_1ではありません。

対処

MQAIRレコードの定義を訂正してください。

2386

X'00000952'

MQRC_AUTH_INFO_TYPE_ERROR

MQCONNX命令で,MQAIRレコードのAuthInfoTypeフィールドに無効な値が指定されています。

対処

AuthInfoTypeにMQAIT_CRL_LDAPを指定してください。

2387

X'00000953'

MQRC_AUTH_INFO_CONN_NAME_ERROR

MQCONNX命令で,MQAIRレコードのAuthInfoConnNameフィールドに無効な値が指定されています。

対処

有効な接続名を指定してください。

2388

X'00000954'

MQRC_LDAP_USER_NAME_ERROR

MQCONNX命令で,MQAIRレコードのLDAPユーザ名が正しく指定されていません。次に示すどれかが該当します。

  • LDAPUserNameLengthがゼロより大きいが,LDAPUserNameOffsetがゼロであり,LDAPUserNamePtrがヌルポインタです。

  • LDAPUserNameOffsetがゼロではなく,LDAPUserNamePtrがヌルポインタではありません。

  • LDAPUserNamePtrが無効なポインタです。

  • LDAPUserNameOffsetまたはLDAPUserNamePtrが,アクセスできないストレージを指しています。

対処

LDAPUserNameOffsetまたはLDAPUserNamePtrの一方がゼロで,もう一方がゼロ以外の数値にしてください。使用しているフィールドがアクセスできるストレージを指していることを確認します。

2389

X'00000955'

MQRC_LDAP_USER_NAME_LENGTH_ERR

MQCONNX命令で,MQAIRレコードのLDAPUserNameLengthフィールドにゼロより小さい値が指定されています。

対処

LDAPUserNameLengthに,ゼロ以上の値を指定してください。

2390

X'00000956'

MQRC_LDAP_PASSWORD_ERROR

MQCONNX命令で,MQAIRレコードのLDAPPasswordフィールドに値が指定されていますが,このフィールドには値を指定できません。

対処

ブランクまたはヌルの値を指定してください。

2391

X'00000957'

MQRC_SSL_ALREADY_INITIALIZED

SSL構成オプションを指定してMQCONNまたはMQCONNX命令が発行されましたが,SSL環境は初期化済みです。キューマネジャとの接続は正常に完了しましたが,命令に指定されたSSL構成オプションは無視されました。代わりに既存のSSL環境が使用されました。

対処

MQCONNまたはMQCONNX命令に定義したSSL構成オプションでアプリケーションを実行する場合,MQDISC命令を使用してキューマネジャとの接続を切断して,アプリケーションを終了してください。または,SSL環境が初期設定されていないときにアプリケーションをあとで実行してください。

2392

X'00000958'

MQRC_SSL_CONFIG_ERROR

MQCONNX命令で,MQCNO構造体はMQSCO構造体を正しく指定していません。次に示すどれかが該当します。

  • SSLConfigOffsetがゼロではなく,SSLConfigPtrがヌルポインタではありません。

  • SSLConfigPtrが無効なポインタです。

  • SSLConfigOffsetまたはSSLConfigPtrが,アクセスできないストレージを指しています。

対処

SSLConfigOffsetまたはSSLConfigPtrの一方がゼロで,もう一方がゼロ以外の数値にしてください。使用しているフィールドがアクセスできるストレージを指していることを確認します。

2393

X'00000959'

MQRC_SSL_INITIALIZATION_ERROR

SSL構成オプションを指定してMQCONNまたはMQCONNX命令が発行されましたが,SSL環境の初期化中にエラーが発生しました。

対処

SSLのインストールが正しいことを確認してください。

2394

X'0000095A'

MQRC_Q_INDEX_TYPE_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

2396

X'0000095C'

MQRC_SSL_NOT_ALLOWED

SSL暗号化を指定したキューマネジャへの接続が要求されました。しかし,要求された接続モード(バインディング接続など)ではSSLがサポートされていません。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

クライアント接続モードを要求するか,またはSSL暗号化を使用不可にするよう,アプリケーションを訂正してください。

2397

X'0000095D'

MQRC_JSSE_ERROR

JSSEがエラー(SSL暗号化を使用したキューマネジャとの接続中など)を報告しました。この理由コードを含むMQExceptionオブジェクトは,JSSEがスローする例外を参照します。これは,MQException.getCause()メソッドを使用して取得できます。JMSでは,MQExceptionはスローされたJMSExceptionにリンクされます。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

原因となった例外を調査して,JSSEエラーを確認してください。

2398

X'0000095E'

MQRC_SSL_PEER_NAME_MISMATCH

アプリケーションはSSL暗号化を使用してキューマネジャに接続しようとしましたが,キューマネジャによって示された識別名は,指定されたパターンと一致しません。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

キューマネジャの識別で使用する証明書を調査してください。また,アプリケーションによって指定されているsslPeerNameプロパティの値も調査してください。

2399

X'0000095F'

MQRC_SSL_PEER_NAME_ERROR

アプリケーションに指定されているピア名の形式が不正です。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

アプリケーションによって指定されているsslPeerNameプロパティの値を調査してください。

2400

X'00000960'

MQRC_UNSUPPORTED_CIPHER_SUITE

SSL暗号化を指定したキューマネジャへの接続が要求されました。しかし,アプリケーションに指定されているCipherSuiteはサポートされていないことがJSSEによって報告されました。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

アプリケーションに指定されているCipherSuiteを調査してください。JSSECipherSuiteの名前は,キューマネジャで使用される同等のCipherSpecとは異なることに注意してください。

また,JSSEが正しくインストールされているか確認してください。

2401

X'00000961'

MQRC_SSL_CERTIFICATE_REVOKED

SSL暗号化を指定したキューマネジャへの接続が要求されました。しかし,キューマネジャによって示された証明書は,指定されたCertStoreの一つによって取り消されていました。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

キューマネジャの識別に使用する証明書を調査してください。

2402

X'00000962'

MQRC_SSL_CERT_STORE_ERROR

SSL暗号化を指定したキューマネジャへの接続が要求されました。しかし,アプリケーションが提供するCertStoreオブジェクトの中から,キューマネジャによって示される証明書を検索できませんでした。この理由コードのあるMQExceptionオブジェクトは,最初のCertStoreの検索時に検出されるExceptionを参照します。これはMQException.getCause()メソッドを使用して取得できます。JMSでは,MQExceptionはスローされるJMSExceptionにリンクされます。

この理由コードは,Javaアプリケーションの場合だけ発生します。

対処

原因となった例外を調査して,エラーを確認してください。アプリケーションが提供するCertStoreオブジェクトを調査してください。原因となった例外がjava.lang.NoSuchElementExceptionの場合,アプリケーションでCertStoreオブジェクトの空のコレクションを指定していないか確認してください。

6100

X'000017D4'

MQRC_REOPEN_EXCL_INPUT_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6101

X'000017D5'

MQRC_REOPEN_INQUIRE_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6102

X'000017D6'

MQRC_REOPEN_SAVED_CONTEXT_ERR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6103

X'000017D7'

MQRC_REOPEN_TEMPORARY_Q_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6104

X'000017D8'

MQRC_ATTRIBUTE_LOCKED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6105

X'000017D9'

MQRC_CURSOR_NOT_VALID

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6106

X'000017DA'

MQRC_ENCODING_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6107

X'000017DB'

MQRC_STRUC_ID_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6108

X'000017DC'

MQRC_NULL_POINTER

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6109

X'000017DD'

MQRC_NO_CONNECTION_REFERENCE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6110

X'000017DE'

MQRC_NO_BUFFER

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6111

X'000017DF'

MQRC_BINARY_DATA_LENGTH_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6112

X'000017E0'

MQRC_BUFFER_NOT_AUTOMATIC

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6113

X'000017E1'

MQRC_INSUFFICIENT_BUFFER

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6114

X'000017E2'

MQRC_INSUFFICIENT_DATA

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6115

X'000017E3'

MQRC_DATA_TRUNCATED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6116

X'000017E4'

MQRC_ZERO_LENGTH

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6117

X'000017E5'

MQRC_NEGATIVE_LENGTH

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6118

X'000017E6'

MQRC_NEGATIVE_OFFSET

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6119

X'000017E7'

MQRC_INCONSISTENT_FORMAT

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6120

X'000017E8'

MQRC_INCONSISTENT_OBJECT_STATE

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6121

X'000017E9'

MQRC_CONTEXT_OBJECT_NOT_VALID

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6122

X'000017EA'

MQRC_CONTEXT_OPEN_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6123

X'000017EB'

MQRC_STRUC_LENGTH_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6124

X'000017EC'

MQRC_NOT_CONNECTED

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6125

X'000017ED'

MQRC_NOT_OPEN

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6126

X'000017EE'

MQRC_DISTRIBUTION_LIST_EMPTY

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6127

X'000017EF'

MQRC_INCONSISTENT_OPEN_OPTIONS

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6128

X'000017F0'

MQRC_WRONG_VERSION

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。

6129

X'000017F1'

MQRC_REFERENCE_ERROR

この値はTP1/Message Queueでは返りません。詳細については,IBM MQのマニュアルを参照してください。