-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 により示されるアプリケーション・プランを再バインドする。

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 により示されるアプリケーション・プランを再バインドする。

アプリケーションの条件
  • CURRENT PACKAGESET 特殊レジスターが、アプリケーションによって正しくセットされなかった。

    SET CURRENT PACKAGESET = :HV を使用するときには、サブシステム・パラメーター・オプションの :HV と一致する正しいコード化スキームを必ず使用してください。このステートメントには、プランにバインドされたパッケージまたは DBRM が必要ないため、システムに定義されたコード化スキームが使用されます。SET CURRENT PACKAGE PATH の場合も同じ条件が適用されます。

    修正処置:CURRENT PACKAGESET 特殊レジスターを正しくセットする。

  • アプリケーションが、正しいロケーションに接続されていなかった。

    修正処置:正しいロケーションに接続する。

03
dbrm-name により示される DBRM 名がパッケージ・リスト内の 1 つ以上の項目と一致するが、 これらの項目の検索では、パッケージが検出されなかった。 reason-code 値 02 についてリストされている条件はすべて、以下の追加条件であるため、reason-code 値 03 の考えられる原因となります。
  • 実行中のアプリケーション・プログラム・バージョンの DBRM が バインドされなかった (アプリケーション・プログラムの整合性トークンと同じ整合性トークンをもつ パッケージが見つからなかった)。

    問題判別: 照会 4

    修正処置:実行するアプリケーション・プログラム・バージョンの DBRM を collection-id により示されるコレクションにバインドする。

  • アプリケーション・プログラムの誤ったバージョンが実行されている。

    修正処置:アプリケーション・プログラムの正しいバージョンを実行する。アプリケーション・プログラムの整合性トークンは、 バインドされたパッケージの整合性トークンと同じです。

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