プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle TopLinkリリース・ノート
12c (12.2.1)
E69915-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
 

Oracle® Fusion Middleware

Oracle TopLinkリリース・ノート

12c (12.2.1)

E69915-01(原本部品番号:E67787-01)

2015年10月

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

1 Oracle TopLink 12.2.1の新機能

このリリースの新しい機能/機能強化は次のとおりです。

  • MOXyでのBean検証のサポート

    この機能強化では、EclipseLinkでのJAXBの実装であるMOXyにBean検証の方法(JSR303およびJSR349に準拠)を提供します。

  • MOXyでのJSON-Pサポート

    JSR-353 MOXyのサポートが提供されることで、要件(パフォーマンス、メモリーなど)に基づいて使用するJSONパーサーを選択できます。デフォルトでは、MOXyはhttps://jsonp.java.netのデフォルトの実装を使用します

    詳細は、https://wiki.eclipse.org/EclipseLink/DesignDocs/405161を参照してください

  • JPA-RSの機能拡張

    このリリースでは、JPA RESTfulサービスに2つの追加(プロジェクションおよびページネーション)が含まれています。

  • マルチテナンシ用eclipselink.multitenant.strategyプロパティ

    EclipseLink固有のプロパティ(eclipselink.multitenant.strategy)が導入され、マルチテナンシが透過的に処理される環境がサポートされます。このプロパティの値は'external'(マルチテナンシ要件が外部(アプリケーション)で処理され、TopLinkで無視される)か、org.eclipse.persistence.descriptors.MultitenantPolicyインタフェースを実装するクラスの完全修飾名です。

    このオプションを使用するために@Multitenantエンティティを定義する必要はなく、EntityManagerFactoryはテナント間で共有されます。その共有キャッシュは無効になり、エンティティで独自のスキーマは定義しません。

2 非推奨のTopLink Grid

Oracle TopLink 12.2.1では、TopLink Grid機能は推奨されません。

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

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

3.1 ERROR PARSING VALIDATION.XML - JAVA.UTIL.CONCURRENT.EXECUTIONEXCEPTION

ある状況では、ログ・ファイルに次のような警告のログ・メッセージが含まれていることがあります。このログ・メッセージに害はなく、TopLinkのvalidation.xmlファイル(JSR 303 Bean検証仕様に定義)の検索について示しています。TopLinkではファイルシステムのvalidation.xmlのみ読み取ることができ、アーカイブからは読み取れません。

[WARNING] [] [org.eclipse.persistence.jaxb.BeanValidationHelper] [tid: [STANDBY].ExecuteThread: '35' for queue: 'weblogic.kernel.Default 
(self-tuning)'] [ecid: 8ee5cff5-3f55-4f1b-a389-4328958b1ee9-0000003d,0] [APP: 
webcenter] [partition-name: DOMAIN] [tenant-name: GLOBAL] Error parsing 
validation.xml[[
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: 
URI scheme is not "file"

3.2 ExalogicのTuningAgentプロファイラが設定されない

TopLink Exalogicの自動チューナを使用する際に、oracle.toplink.exalogic.tuning.TuningAgentプロファイラが有効化されません。TuningAgentプロファイラは、スタック・スレッドの問題が原因で無効化されました。

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

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

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

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();
    }
} 

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

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

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

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

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

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
        );
    }
}

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

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

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

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

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


警告:

この特定の設定をpersistence.xmlを介して構成すると、サーバーで実行されているすべてのアプリケーションに影響を及ぼすため、この構成プロパティの追加には潜在的な危険があります

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

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

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

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

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

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

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

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

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

Oracle Supportへのアクセス

サポートを購入したオラクル社のお客様は、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のアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートを購入したオラクル社のお客様は、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.2.1) TopLinkリリース・ノート

E69915-01

Copyright © 2014, 2015 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の登録商標です。

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