12 Oracle Database Provider for DRDAの使用に関する制限事項

本来はIBM DB2向けに設計されているアプリケーションをOracle Databaseでカスタマイズまたは維持する際には、様々な制限事項と既知の回避策があります。

12.1 Resynch Manager

Oracle Database Provider for DRDAでは、分散作業単位のためにSync Point Managerサービスがサポートされています。また、ログなしでソース Sync Point Managerを使用する移行の実行中に再同期できるように、Resynchronization Managerサービスもサポートされています。

Oracle Database Provider for DRDAのこのリリースでは、アクティブなインダウト・トランザクションの解決サービスはサポートされていません。移行されたインダウト・トランザクションでは、クライアント・システムとOracle Databaseの間での手動解決が必要です。インダウト・トランザクションの手動解決の詳細は、Oracle® Database管理者ガイドを参照してください。

12.2 カーソルのHOLD属性のセマンティクス

HOLD属性が設定されているカーソルには次の制限事項があります。

  1. リモート作業単位(RUOW)では、FOR UPDATE句を使用して準備されたカーソルは、COMMITまたはROLLBACKで暗黙にクローズされます。

  2. 分散作業単位(DUOW)では、COMMITまたはROLLBACKで、オープン・カーソルが含まれているサーバーで更新が行われる場合には、すべてのカーソルが暗黙的にクローズされます。

12.3 DB2パスワードでのブランクの埋込み

パスワードがDRDAで暗号化および送信される場合、8文字未満のパスワードにはDB2 for z/OSによりブランクが挿入されます。その結果、ログオンが失敗し、エラーORA-01017が発生します。ユーザー・アカウントのパスワードを8文字以上の長さにすることをお薦めします。

12.4 データ型の制限事項

データ型の使用にはいくつかの制約があります。

12.4.1 DATEデータ型

Oracle DATEデータ型には、DRDA DATEデータ型でサポートされていない時刻コンポーネントが含まれています。Oracle DATEデータに時刻コンポーネントが含まれている場合にそのDATEデータを操作すると、予期されている結果にならないことがあります。整合性を維持するため、OracleネイティブDATE構文を使用してDATEデータを挿入するときには、時刻コンポーネントを格納しないでください。または、DATE列をTIMESTAMPに再マップしてください。

12.4.2 Oracleオブジェクト・リレーショナル・データ型

このリリースでは、オブジェクト・リレーショナル・データ型を使用して定義された列を含むオブジェクトに対する問合せはサポートされていません。

このリリースでは、入力または戻り値の引数にオブジェクト・リレーショナル・データ型を使用して定義されたコール側SQLプロシージャはサポートされていません。

12.4.3 TIMESTAMPデータ型

Oracle Database Provider for DRDAは、小数点以下6桁の固定精度を使用してTIMESTAMPを表します。

互換性の理由から、TIMESTAMPデータを使用するときには十分に注意してください。場合によってはプログラムでの調整(型キャストなど)を行う必要があります。TIMESTAMP型キャストの詳細は、Oracle® Database SQL言語リファレンスを参照してください。

12.4.4 TIMESTAMP WITH TIMEZONEデータ型

TIMESTAMP WITH TIMEZONEの表現は、Oracle DatabaseとDB2で大きく異なります。

Oracle Database Provider for DRDAは、Oracleの表現規則に従ってTIMESTAMP WITH TIMEZONEを表現します。クライアントとサーバーの間で最適な互換性を維持するため、記述されているタイムゾーン表記のかわりに、4桁のタイムゾーン接尾辞表記(例: -08:00)を使用します。

12.4.5 XMLデータ型

このリリースでは、DRDA XMLデータ型(988989)はプログラムまたはバインド変数データ型としてサポートされていません。

12.4.6 SYS.XMLTypeデータ型

Oracle XMLデータ型、SYS.XMLType、は、このリリースではサポートされていません。

12.5 Extended Length Mode

DB2 for z/OSの最新リリース(v11.1)では、カーソルにより生成される問合せ結果でStreaming Layer Bモード・プロトコルがサポートされていません。これらのカーソルはROWSETsパラメータを使用して定義されます。これによりは、32767バイトのデータを超える行セットが生成されます。

カーソル宣言の例

EXEC SQL DECLARE DT CURSOR WITH ROWSET POSITIONING FOR SEL;

DRDA規格に基づき、ターゲット・サーバーは、特定の問合せの問合せデータが戻される形式を決定できます。Streaming Layer Bモードは、この目的では最も効率的な形式です。ただし、ROWSETsが関連している場合、一部DB2リリースではこのモードはサポートされておらず、DB2クライアント・アプリケーションにエラーが戻されます。

DSNT4081 SQLCODE = —30020, ERROR: EXECUTION FAILED DUE TO A DISTRIBUTION PROTOCOL ERROR THAT CAUSED DEALLOCATION OF THE CONVERSATION: REASON 124C (0100)

このような状況では、DB2はStreaming Layer Bモードのオブジェクトを受け入れません。ただし、Extended Length Modeのオブジェクトは受け入れます。

DB2がStreaming Layer Bモードをサポートするまでは、このモードを有効にするようにPROTOPROC_OPTIONS構成パラメータを設定できます。

関連トピック

関連項目:

「構成パラメータ」の章のPROTOPROC_OPTIONSの項。

12.6 その他の制限事項

SQL句の制約事項などその他の制限事項の概要は、「Oracle Database Provider for DRDAでのSQL文のサポート」を参照してください。