-30047 STATEMENT FAILED BECAUSE OBJECT OF TYPE object-type CANNOT BE ACCESSED USING DIFFERENT DISTRIBUTED PROTOCOLS ON A CONNECTION FROM server-name-1 TO server-name-2
説明
以下のケースでは、object-type オブジェクトを参照する SQL ステートメントを処理できません。
- server-name-1 と server-name-2 の間の同じ接続が、アプリケーション指示アクセスとシステム指示アクセスの両方を使用している。
- アプリケーション指示アクセスの使用とシステム指示アクセスの使用がアプリケーション内で混在している。
- object-type
- オブジェクトのタイプ。
- server-name-1
- オブジェクトへのアクセスを試行したサーバーの名前。 サーバー名のうち 16 文字までが表示されます。
- server-name-2
- server-name-1 でのオブジェクトのインスタンスの作成に使用された、オブジェクトの定義が存在するサーバーの名前。 ロケーション名のうち 16 文字までが表示されます。
システムの処置
このステートメントを処理することはできません。
プログラマーの応答
Db2® for z/OS® リクエスターでバインドされたプランによってアプリケーションが制御され、かつアプリケーションによって使用される分散プロトコル内で変更が加えられる前にアプリケーションがコミットまたはロールバックを実行する場合は、DISCONNECT バインド・オプションを AUTOMATIC または CONDITIONAL に設定してプランを再バインドする必要があります。 これにより、リクエスターはコミットまたはロールバック処理の際に、リモート・サーバー接続を自動終了することが許可されます。
アプリケーションがプランによって制御されていない場合は、 コミットまたはロールバック・ステートメントの前に SQL RELEASE ステートメントを実行して、 分散プロトコルがアプリケーションによって変更される前にリモート・サーバー接続を終了できるようにする必要があります。 アプリケーションに追加のコミットまたはロールバック・ステートメントを導入すると、アプリケーションのデータ保全性を損なう可能性があるので、アプリケーションとアプリケーションが呼び出すすべてのストアード・プロシージャーを変更して、リモート SQL ステートメントの処理用に同じ分散プロトコルが使用されるようにする必要があります。
SQLSTATE
58008