-805 DBRM OR PACKAGE NAME location-name.collection-id.dbrm-name.consistency-token NOT FOUND IN PLAN plan-name. REASON reason-code
説明
アプリケーション・プログラムで、 DBRM またはパッケージを使用しようとしましたが、それが見つかりません。
- location-name.collection-id.dbrm-name.consistency-token
- 見つからなかったパッケージ。CURRENT PACKAGESET 特殊レジスターがローカル・プログラム実行に関してブランクになっている場合、collection-id はブランクとなります。
- plan-name
- プランの名前。
- reason-code
- 失敗の理由を示す数値。
- 01
- DBRM 名がプランのメンバー・リスト内に見つからず、またプランのパッケージ・リストもない。
問題判別: 照会 1
修正処置: BIND サブコマンドの MEMBER リストに、dbrm-name により示される DBRM を追加し、plan-name により示されるアプリケーション・プランをバインドする。
- プランのパッケージ・リストがないために、パッケージ名が見つからない。
問題判別: 照会 2
修正処置:適切なパッケージ・リスト項目を指定した PKLIST オプションを REBIND サブコマンドに追加し、plan-name により示されるアプリケーション・プランを再バインドする。
- DBRM 名がプランのメンバー・リスト内に見つからず、またプランのパッケージ・リストもない。
- 02
- DBRM 名 dbrm-name が、メンバー・リストまたはパッケージ・リスト内の項目と一致しない。
次のいずれかの条件が問題の原因となっている可能性があります。
- BIND の条件
- plan-name により示されるアプリケーション・プランがバインドされた時点でのパッケージ・リスト内の collection-id が正しくなかった。
問題判別: 照会 2
修正処置: PKLIST オプション内の項目のコレクション ID を訂正し、REBIND サブコマンドを使用して plan-name により示されるアプリケーション・プランを再バインドする。
- plan-name により示されるアプリケーション・プランがバインドされた時点でのパッケージ・リスト内の location-name が正しくなかった。
問題判別: 照会 2
修正処置: PKLIST オプション内の項目のロケーション名を訂正し、REBIND サブコマンドを使用して plan-name により示されるアプリケーション・プランを再バインドする。
- plan-name により示されるアプリケーション・プランがバインドされた時点での BIND サブコマンドの CURRENTSERVER オプション内の location-name が正しくなかった。
問題判別: 照会 3
修正処置: CURRENTSERVER オプション内のロケーション名を訂正し、REBIND サブコマンドを使用して plan-name により示されるアプリケーション・プランを再バインドする。
- plan-name により示されるアプリケーション・プランがバインドされた時点でのパッケージ・リスト内の collection-id が正しくなかった。
- アプリケーションの条件
- CURRENT PACKAGESET 特殊レジスターが、アプリケーションによって正しくセットされなかった。
SET CURRENT PACKAGESET = :HV を使用するときには、サブシステム・パラメーター・オプションの :HV と一致する正しいコード化スキームを必ず使用してください。このステートメントには、プランにバインドされたパッケージまたは DBRM が必要ないため、システムに定義されたコード化スキームが使用されます。SET CURRENT PACKAGE PATH の場合も同じ条件が適用されます。
修正処置:CURRENT PACKAGESET 特殊レジスターを正しくセットする。
- アプリケーションが、正しいロケーションに接続されていなかった。
修正処置:正しいロケーションに接続する。
- CURRENT PACKAGESET 特殊レジスターが、アプリケーションによって正しくセットされなかった。
- 03
- dbrm-name により示される DBRM 名がパッケージ・リスト内の 1 つ以上の項目と一致するが、
これらの項目の検索では、パッケージが検出されなかった。
reason-code 値 02 についてリストされている条件はすべて、以下の追加条件であるため、reason-code 値 03 の考えられる原因となります。
- 実行中のアプリケーション・プログラム・バージョンの DBRM が
バインドされなかった (アプリケーション・プログラムの整合性トークンと同じ整合性トークンをもつ
パッケージが見つからなかった)。
問題判別: 照会 4
修正処置:実行するアプリケーション・プログラム・バージョンの DBRM を collection-id により示されるコレクションにバインドする。
- アプリケーション・プログラムの誤ったバージョンが実行されている。
修正処置:アプリケーション・プログラムの正しいバージョンを実行する。アプリケーション・プログラムの整合性トークンは、 バインドされたパッケージの整合性トークンと同じです。
- 実行中のアプリケーション・プログラム・バージョンの DBRM が
バインドされなかった (アプリケーション・プログラムの整合性トークンと同じ整合性トークンをもつ
パッケージが見つからなかった)。
- 04
location-name 値により示されるリモート・サイトにパッケージが存在しない。
問題判別: 照会 4
- ブランク
- SQLERRMT の長さのために、location-name の長さが 16 で、 collection-id の長さが 18 で、dbrm-name の長さが 8 であると、reason-code 値はブランクとなります。
ネイティブ SQL プロシージャーで、影響を受ける SQL ステートメントが、 SET CURRENT PACKAGESET、SET CURRENT PACKAGE PATH、または CONNECT ステートメントの後ろにある場合、あるいは、 リモート・サーバー上のオブジェクトを参照している場合、BIND COPY を使用して追加のパッケージをバインドする必要があります。 再生成が必要になるような、ネイティブ SQL プロシージャーの変更が行われたときはいつでも、追加のパッケージも、コピー・オプションを使用してバインドされる必要があります。
システムの処置
このステートメントを処理することはできません。
プログラマーの応答
reason-code について提供される情報を使用して、問題を解決してください。
問題判別
以下の照会は、問題判別に役立ちます。 ローカル・ロケーションからこれらの照会を実行してください。
- 照会 1: プランのメンバー・リスト内の DBRM を表示する
SELECT PLCREATOR, PLNAME, NAME, VERSION FROM SYSIBM.SYSDBRM WHERE PLNAME = 'plan-name';
1 行も戻されない場合、プランはメンバー・リストなしでバインドされています。
- 照会 2: プランのパッケージ・リスト内の項目を表示する
SELECT LOCATION, COLLID, NAME FROM SYSIBM.SYSPACKLIST WHERE PLANNAME = 'plan-name';
1 行も戻されない場合、プランはパッケージ・リストなしでバインドされています。
- 照会 3: プランに対する BIND サブコマンドに指定された CURRENTSERVER 値を表示する
SELECT NAME, CURRENTSERVER FROM SYSIBM.SYSPLAN WHERE NAME = 'plan-name';
- 照会 4: SYSPACKAGE 内に一致するパッケージがあるかどうかを表示する
パッケージがリモートにある場合は、FROM 文節にロケーション名を指定してください。
メッセージの collection-id 値がブランクの場合、次に示す照会を使用してください。
SELECT COLLID, NAME, HEX(CONTOKEN), VERSION FROM location-name.SYSIBM.SYSPACKAGE WHERE NAME = 'dbrm-name' AND HEX(CONTOKEN) = 'consistency-token';
メッセージの collection-id 値がブランクではない場合、次に示す照会を使用してください。
SELECT COLLID, NAME, HEX(CONTOKEN), VERSION FROM location-name.SYSIBM.SYSPACKAGE WHERE NAME = 'dbrm-name' AND HEX(CONTOKEN) = 'consistency-token' AND COLLID = 'collection-id';
1 行も戻されない場合、パッケージの正しいバージョンがバインドされていません。
SQLSTATE
51002