Oracle外部データソースでADF Business Componentsを使用する場合の特別な考慮点

Oracle ADF Business ComponentsをOracle 9i LiteおよびOracle以外のデータベースで使用する場合、プラットフォーム固有の考慮点と制限があります。

このトピックには、次の情報が含まれています。

一般的な考慮点および制限

行のロック

個々の行のロック方法、および行がロックされている場合の応答方法のコントロールに、様々なSQLベンダーが異なる構文を使用します。この設定は、行のロック試行、および行がロック済の場合の即時エラーを目的としています。

Oracle構文は次のとおりです。SELECT DNAME from DEPT WHERE DEPTNO=20 FOR UPDATE NOWAIT

SQL*Server構文は次のとおりです。SELECT DNAME from DEPT WITH (HOLDLOCK) WHERE DEPTNO=20

Locktrailer句

次のいずれかの方法でロック動作をコントロールできます。

Locktrailerの位置

Locktrailer句の位置は、メソッドのオーバーライドでのみ変更できます。メソッドはブール・フラグgetLockTrailerIsAtEnd()であり、デフォルトでtrueに設定されます。

SQLServerでは、これがfalseにオーバーライドされ、Locktrailer句がSELECT句の終わりに挿入されます。挿入されない場合、Locktrailerが文の終わりに発生します。

select ENAME from EMP WITH (HOLDLOCK) where EMID=?"(SQL Server)
select ENAME from EMP where EMPID=? FOR UPDATE(SQL92、mySQLなど)

 

DB2を使用する場合のプラットフォーム固有の考慮点および制限

Oracle ADF Business ComponentsをDB2と組み合せて使用する場合、次の制限事項があります。

主キー

データ型

外部結合

DB2では、外部結合を指定する構文が異なります。DB2では、(+)はサポートされていません。このため、OracleでのSQL文

 SELECT E.EMPNO, E.ENAME, E.JOB, E.DEPTNO AS EMP_DEPT_NUM,
  D.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO
  (+) ORDER BY 1"    

のかわりに、DB2で次の文を使用する必要があります。

 SELECT E.EMPNO, E.ENAME, E.JOB, E.DEPTNO AS EMP_DEPT_NUM, D.DEPTNO,
  D.DNAME, D.LOC FROM EMP E LEFT OUTER JOIN DEPT D ON E.DEPTNO =
  D.DEPTNO"    

DB2での順序

順序の処理は、ユーザーが管理する必要があります。

DB2で順序を作成するには、次のようにします。

DB2で順序を削除するには、次のようにします。

順序の次の値を取得するには、次のようにします。

順序の現在(前)の値を取得するには、次のようにします。

SQL Serverを使用する場合のプラットフォーム固有の考慮点および制限

SQL ServerでのサンプルNorthwindおよびpubsの使用

SQL Server 2000には、Northwindおよびpubsというサンプルのデータベースが含まれています。これらの組込みデータベースをJDeveloperで使用する場合に起こる、既知の問題がいくつかあります。

まず、表の所有権をdboから自分のSQLログイン・アカウントに変更できます。たとえば、pubsデータベースのログインをpubs_userにできます。pubsデータベースには、AUTHORSという名前のデータベース表があります。

AUTHORS表を使用するには、次のようにします。

  1. pubsデータベースに移動し、「Tables」をクリックします。
  2. 「authors」を右クリックし、「Design Table」を選択します。
  3. 表の設計で、「Table and Index」プロパティ・アイコンをクリックします。
  4. 所有者をdboから、pubs用に作成したユーザーに変更します。
  5. JDeveloperを起動し、Connection Managerにpubs_userでログインします。
  6. これで、所有権をpubs_userに変更したauthorsおよび他の表がデータベース・ブラウザに表示されます。

設計時の実行では、データベースで定義された主キーを持つ表(たとえば、AUTHORSなど)の場合、主キーの属性がJDeveloperで認識される必要があります(JDeveloper 9.0.2では、この属性をIDEに手動で設定する必要があります)。定義された主キーを持たない表(DISCOUNTなど)の場合、または自動的に主キーが認識されない場合には、プロジェクトをコンパイルするには、JDeveloperで主キーを手動で入力する必要があります。

Business Component Browserで参照するには、構成にドライバ・クラスを追加し、Business Component Browserでこのローカル構成を選択します。ただし、更新時に必ずエラーが起こります。これは、既知の問題です。手順については、「SQL Serverデータベース用Oracle ADF Business Componentsの開発」を参照してください。

外部データソースに対するローカル・モードでのJSPの実行

Microsoft SQL Server 2000 Driver for JDBCなどのType 4 JDBCドライバの場合、必要なJARファイルをBC4J/libへコピーすることで、JSPをローカル・モードでデプロイできます。外部OC4Jと異なり、動的には認識されないため、BC4J/libへのコピーの後、埋込みサーバーを停止し、再起動する必要があります。外部OC4Jの場合、application.xml設定を使用することをお薦めします。

MySQLを使用する場合のプラットフォーム固有の考慮点および制限

ADFビジネス・コンポーネントでMySQLを使用する場合は、次の問題に注意してください。