Oracle® TopLink リリース・ノート

リリース12c (12.1.2)

E47978-01(原本部品番号:E40213-01)

目次

リリース・ノート

- 1 TopLinkオブジェクト・リレーショナルの問題

- 1.1 WLSシステムMBeanブラウザでEclipseLinkログ・レベルを設定できない問題

- 1.2 外部トランザクション制御でUnitOfWork.release()がサポートされない

- 1.3 UPDATEのリターン・ポリシーとオプティミスティック・ロック

- 1.4 TimestampをStringとして返すJDBCドライバ

- 1.5 作業ユニットで変更セットに削除オブジェクトが追加されない問題

- 2 TopLinkによるOracle Database拡張

- 2.1 Oracle WebLogic ServerでのSpatialおよびXDBサポート用のテンプレートJAR

- 3 0(ゼロ)の値の主キーの許可

- 4 JCA Oracle Databaseサービスと組み合されたSybaseの管理対象サーバー

- 5 コンテナ管理のJPAを使用するEclipseLinkでのロギング構成

- 6 ドキュメントのアクセシビリティについて

Oracle® TopLink

リリース・ノート

リリース12c (12.1.2)

E47978-01(原本部品番号:E40213-01)

2013年6月

この章では、Oracle TopLinkに関連する問題について説明します。内容は次のとおりです。

- 1項「TopLinkオブジェクト・リレーショナルの問題」

- 2項「TopLinkによるOracle Database拡張」

- 3項「0(ゼロ)の値の主キーの許可」

- 4項「JCA Oracle Databaseサービスと組み合されたSybaseの管理対象サーバー」

- 5項「コンテナ管理のJPAを使用するEclipseLinkでのロギング構成」

- 6項「ドキュメントのアクセシビリティについて」

1 TopLinkオブジェクト・リレーショナルの問題

この項には、次の問題に関する情報が含まれます。

- 1.1項「WLSシステムMBeanブラウザでEclipseLinkログ・レベルを設定できない問題」

- 1.2項「外部トランザクション制御でUnitOfWork.release()がサポートされない」

- 1.3項「UPDATEのリターン・ポリシーとオプティミスティック・ロック」

- 1.4項「TimestampをStringとして返すJDBCドライバ」

- 1.5項「作業ユニットで変更セットに削除オブジェクトが追加されない問題」

1.1 WLSシステムMBeanブラウザでEclipseLinkログ・レベルを設定できない問題

Oracle Bug#9349481に従って記載されています。

Oracle Enterprise Managerを使用してEclipseLinkログ・レベルを設定します。WLSシステムMBeanブラウザを使用して、この操作を実行しないでください。

1.2 外部トランザクション制御でUnitOfWork.release()がサポートされない

Oracle Bug#4742090に従って記載されています。

Java Transaction API(JTA)と同期している作業ユニットは、解放されると例外をスローします。現行のトランザクションでその変更を永続化しない場合、JTAトランザクションはロールバックする必要があります。

コンテナ境界型のトランザクションでは、EJB/セッション・コンテキストで次のようにsetRollbackOnly()をコールします。

@Stateless
public class MySessionBean
{    @Resource
SessionContext sc;

public void someMethod()
{
...
sc.setRollbackOnly();
}
}

Bean境界型のトランザクションでは、EJB/セッション・コンテキストから取得したUserTransactionで次のようにrollback()をコールします。

@Stateless
@TransactionManagement(TransactionManagementType.BEAN)
public class MySessionBean implements SomeInterface
{
@Resource
SessionContext sc;

public void someMethod()
{
sc.getUserTransaction().begin();
...
sc.getUserTransaction().rollback();
}
}

1.3 UPDATEのリターン・ポリシーとオプティミスティック・ロック

Oracle Bug#5354924、5255028に従って記載されています。

リターン・ポリシーを使用すると、INSERTおよびUPDATEの実行時に変更された値を返してキャッシュ済オブジェクトに移入できますが、このポリシーは、UPDATEで数値バージョンのオプティミスティック・ロックと組み合せると機能しません。すべてのUPDATE操作に対して返される値が1となり、意味のあるロック保護は提供されません。

UPDATEのリターン・ポリシーは、数値のオプティミスティック・ロックと組み合せて使用しないでください。

INSERTのリターン・ポリシーは、オプティミスティック・ロックの使用時に正常に機能します。

1.4 TimestampをStringとして返すJDBCドライバ

Oracle Bug#4671102に従って記載されています。

TopLinkでは、サーバーから返される日時の情報は、Timestampを使用しているものと仮定されます。JDBCドライバが現在の日付に対してStringを返すと、TopLinkは例外をスローします。これは、DB2 JDBCドライバの使用時に発生します。

この問題を回避するには、Timestampを返すドライバ(COM.ibm.db2.jdbc.app.DB2Driverなど)を使用するか、サーバー時間のかわりにローカル時間を使用するようにポリシーを変更してください。

別の回避方法は、次のようにプラットフォームで使用されるValueReadQueryで問合せリダイレクタを使用することです。

ValueReadQuery vrq = new ValueReadQuery(
"SELECT to_char(sysdate, 'YYYY-MM-DD HH:MM:SS.SSSSS') FROM DUAL"
);
vrq.setRedirector(new TSQueryRedirector());
...
class TSQueryRedirector implements QueryRedirector
{
public Object invokeQuery(DatabaseQuery query, Record arguments, Session session)
{
String value = (String)session.executeQuery(query);
return ConversionManager.getDefaultManager().convertObject(
value, java.sql.Timestamp.class
);
}
}

1.5 作業ユニットで変更セットに削除オブジェクトが追加されない問題

Oracle Bug#5097513に従って記載されています。

作業ユニットの変更セットにアクセスして変更内容を確認する場合、削除保留中のオブジェクト(uow.deleteObject( )やuow.deleteAllObjects( )など)は、結果セットから返されません。

削除保留中のオブジェクトは、作業ユニットのgetDeletedObjectsコールを通じてのみ取得できます。

2 TopLinkによるOracle Database拡張

この項の内容は次のとおりです。

- 2.1項「Oracle WebLogic ServerでのSpatialおよびXDBサポート用のテンプレートJAR」

2.1 Oracle WebLogic ServerでのSpatialおよびXDBサポート用のテンプレートJAR

Oracle Bug#8551001に従って記載されています。

Oracle SpatialおよびOracle XDBマッピングの機能を(スタンドアロンのOracle WebLogic ServerとOracle JDeveloperに統合されたWebLogic Serverの両方で)完全にサポートするには、それぞれtoplink-spatial-template.jarおよびtoplink-xdb-template.jarを使用してWebLogic Serverドメインを拡張し、Oracle SpatialとXDBをサポートする必要があります。

WebLogic Serverドメインを拡張するには:

1. toplink-spatial-template.jarファイル(Oracle Spatialのサポート用)とtoplink-xdb-template.jarファイル(Oracle XDBのサポート用)を次の場所からダウンロードします。

- http://download.oracle.com/otn/java/toplink/111110/toplink-spatial-template.jar

- http://download.oracle.com/otn/java/toplink/111110/toplink-xdb-template.jar

2. 表1「Oracle Spatialのサポート」または表2「Oracle XDBのサポート」を使用して、コピーするファイルを決定します。

表1 Oracle Spatialのサポート

コピーするファイル

コピー元脚注1

コピー先脚注2

sdoapi.jar

<ORACLE_DATABASE_HOME>/md/jlib

<WEBLOGIC_HOME>/server/lib

脚注1 これらはデフォルトの場所です。実際の場所は、特定の環境、インストール済オプションおよびリリースに応じて変化する可能性があります。

脚注2 Oracle JDeveloperに統合されたWebLogic Serverを使用する場合、<WEBLOGIC_HOME>は、<JDEVELOPER_HOME>ディレクトリ内に存在します。

表2 Oracle XDBのサポート

コピーするファイル

コピー元脚注1

コピー先脚注2

xdb.jar

<ORACLE_DATABASE_HOME>/rdbms/jlib

<WEBLOGIC_HOME>/server/lib

xml.jar

<ORACLE_DATABASE_HOME>/lib

<WEBLOGIC_HOME>/server/lib

xmlparserv2.jar

<ORACLE_DATABASE_HOME>/lib

<WEBLOGIC_HOME>/server/lib

orai18n-mapping.jar脚注 3

<ORACLE_DATABASE_HOME>/jlib

<WEBLOGIC_HOME>/server/lib

脚注1 これらはデフォルトの場所です。実際の場所は、特定の環境、インストール済オプションおよびリリースに応じて変化する可能性があります。

脚注2 Oracle JDeveloperに統合されたWebLogic Serverを使用する場合、<WEBLOGIC_HOME>は、<JDEVELOPER_HOME>ディレクトリ内に存在します。

脚注3 Oracle Database 11.2以上にはorai18n-mapping.jarを使用してください。

注意:

実際のJARファイルの名前は、コピー元のディレクトリでは異なる可能性がありますが、コピー先のディレクトリにコピーする際には、前述のとおりの名前にする必要があります。

3. 構成ウィザード(<WEBLOGIC_HOME>/common/bin/config.shまたは.bat)を起動します。

4. 「既存のWebLogicドメインの拡張」を選択します。

5. WebLogic Serverドメインを参照して選択します。
WebLogic Serverが統合されたJDeveloperを使用する場合、一般的なWebLogic Serverドメインの場所は、次のようになります。

- Windows環境の場合: %APPDATA%\JDeveloper\systemXX.XX.XX.XX\DefaultDomain
XX.XX.XX.XXは、一意の製品ビルド番号です。

Windowsプラットフォームでは、フォルダ・オプションの「すべてのファイルとフォルダを表示する」を選択する必要があります。

- Windows以外の環境では、デフォルトの場所は、現在のユーザーのデフォルト・ホーム・ディレクトリ(<$Home>/DefaultDomain)内です。

詳細は、Oracle JDeveloperのドキュメントを参照してください。

6. 「既存の拡張テンプレートを使用してドメインを拡張する」を選択します。

7. 必要なテンプレートJARを参照して選択します(Oracle Spatialの場合はtoplink-spatial-template.jar、Oracle XDBの場合はtoplink-xdb-template.jar)。

8. ウィザードの残りのページを完了します。

3 0(ゼロ)の値の主キーの許可

Oracle Bug#9579986に従って記載されています。

デフォルトで、EclipseLinkは、nullを使用できないプリミティブ型(intやlongなど)で0(ゼロ)をnullとして解釈するため、0が主キーにとって無効な値となります。この設定は、persistence.xmlファイルのallow-zero-idプロパティを使用して変更できます。有効な値は次のとおりです。

- true - EclipseLinkは、0(ゼロ)の値を0として解釈します。この設定により、主キーで0の値を使用できます。

- false - (デフォルト)EclipseLinkは、0(ゼロ)をnullとして解釈します。

詳細は、http://wiki.eclipse.org/EclipseLink/UserGuideにあるEclipseLinkユーザーズ・ガイドを参照してください。

4 JCA Oracle Databaseサービスと組み合されたSybaseの管理対象サーバー

Oracle Bug#9579974に従って記載されています。

クラスタ内でOracle Database Adapterと組み合せてJCAサービスを使用し、Sybaseデータベースに対してデータベース操作を実行する場合、クラスタ内の管理対象ノードは、メッセージを処理して、重複する操作を試行することがあります。

Sybaseのサポートされるバージョンでは、Oracle TopLinkのレコード・ロックに対応していないため、重複する操作の試行がSybaseで許可されます。

5 コンテナ管理のJPAを使用するEclipseLinkでのロギング構成

Oracle Bug#9403222に従って記載されています。

デフォルトで、コンテナ管理のJPAのEclipseLinkユーザーは、Oracle WebLogic Serverのロギング・オプションを使用して、EclipseLinkで生成されたすべてのログ・メッセージをレポートします。『Oracle WebLogic Serverログ・ファイルの構成とログ・メッセージのフィルタ処理』のWebLogicロギング・サービスの構成に関する項を参照してください。

EclipseLinkのネイティブ・ロギング構成を使用するには、次のプロパティをpersistence.xmlファイルに追加します。

<property name="eclipselink.logging.logger" value="DefaultLogger"/>

6 ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

Oracle Fusion Middleware, リリース12c (12.1.2) TopLinkリリース・ノート

E47978-01

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.