ヘッダーをスキップ
Oracle TopLink開発者ガイド
10g(10.1.3.1.0)
B31861-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

8 デプロイ用TopLinkファイルの作成

この章では、次のタイプのアプリケーションのためにデプロイ・ファイルを作成するときに必要となるTopLink情報について説明します。

パッケージ化およびデプロイの詳細は、次を参照してください。

TopLinkデプロイ・ファイル作成の概要

デプロイするアプリケーションのタイプに応じて、次のいずれかのデプロイ・ファイルを作成する必要があります。

TopLink Workbenchでは、TopLink Workbenchプロジェクトからデプロイ・ファイルを作成できます(「プロジェクト情報のエクスポート」を参照)。プロジェクトの作成後、デプロイ・ファイルを作成するには2種類の方法があります。

XMLファイルはコンパイル済のJavaファイルよりもデプロイとトラブルシューティングが簡単であるため、デプロイ方法としてはXMLによるデプロイをお薦めします。この方法では、安全かつ簡単に変更を行うことのできる非常に柔軟な構成が得られます。XMLデプロイ・ファイルは、サード・パーティのアプリケーションやコンパイラがなくても、正常にデプロイできます。


注意:

EJB 3.0を使用している場合、注釈を使用して、デプロイメント・ディスクリプタで以前に指定した内容の大部分を指定できます。デプロイメント・ディスクリプタを使用して、注釈をオーバーライドしたり、注釈でサポートされていないオプションを指定できます。現在サポートされている注釈の詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

project.xmlファイル

project.xmlファイルは、アプリケーションの中心です。このファイルには、定義したマッピングとディスクリプタ、およびプロジェクトに関連付けられた名前付き問合せまたはファインダが含まれています。

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

XSDファイルの形式

10gリリース3(10.1.3.1.0)以降、project.xmlでは、旧Document Type Definition(DTD)のかわりに、XMLスキーマ・ファイル形式(XSDファイル)を使用します。XSDファイルでは、要素および属性を定義するのみでなく、要素および属性を有効なXMLファイル内で使用する方法を決定します。XSDファイルは標準XMLとして書式設定され、Oracleネームスペースに完全準拠します。TopLinkは、現行XSD形式と旧DTD形式の両方を読み取ることができますが、書き込むことができるのは現行XSD形式のみです。

以前の形式は、DTDでのみ定義されています。現行リリースでは、次のXMLスキーマに基づいてデプロイXMLファイルを生成できます。

  • object-persistence_1_0.xsd: このスキーマは、永続性およびマッピングの一般的な概念を定義します。

  • toplink-object-persistence_10_1_3.xsd: このスキーマは、前述の一般的な概念を拡張して、TopLink固有データを追加で含んでいます。

詳細は、<TOPLINK_HOME>\config\xsdsディレクトリにある当該のXSDを参照してください。XSDファイルは、OTNでも入手できます。

CMP以外のアプリケーションおよびプロジェクト・メタデータ

CMP以外のアプリケーションでは、プロジェクト・メタデータをproject.xmlファイルで定義します。

project.xmlファイルは、プロジェクト・メタデータの構成、変更およびトラブルシューティングを行うための単純で柔軟な方法を提供します。project.xmlファイルにはこのような属性があるため、TopLinkプロジェクトの構成にはこのファイルの使用をお薦めします。TopLink Workbenchには、project.xmlファイルを作成および編集するためのグラフィック・ツールが用意されています。TopLink Workbenchを使用したプロジェクト作成の詳細は、「TopLink Workbenchを使用したproject.xmlの作成」を参照してください。

CMPアプリケーションおよびプロジェクト・メタデータ

CMPアプリケーションでは、プロジェクト・メタデータの指定方法は、アプリケーションをデプロイするJ2EEアプリケーション・サーバーに依存します(「toplink-ejb-jar.xmlファイル」を参照)。

TopLink Workbenchを使用したproject.xmlの作成

project.xmlファイルはアプリケーションに関連付けられたクラスおよびデータ・ソースと同期化する必要があるため、手動で変更しないでください。同期化を正しく行うことができるTopLink Workbenchは、プロジェクトを変更するために最適な方法です。TopLink Workbenchでプロジェクトを変更し、project.xmlファイルを再デプロイするだけです。このオプションを使用することで、プロジェクトが変更されるたびにJavaコードを再生成およびコンパイルする必要性をなくして、デプロイの時間を短縮します。

デプロイXML情報のエクスポートに関する詳細は、「プロジェクト情報のエクスポート」を参照してください。


注意:

このファイルにproject.xml以外の名前を付けてもかまいません。ただし、ここでは、説明をわかりやすくするため、ファイル名を変更しないものとしています。

プログラムによるproject.xmlの作成

オプションとして、DeploymentXMLGenerator APIを使用して、次のいずれかの方法でプログラムによりproject.xmlを生成できます。

  • アプリケーションから、DeploymentXMLGeneratorとJavaソースをインスタンス化します。次のメソッドをコールします。

    generate (<MW_Project.mwp>, <output file.xml>)

  • コマンドラインから、次のコマンドを使用します。

    java -classpath toplink.jar;toplinkmw.jar;xmlparserv2.jar;ejb.jar; oracle.toplink.workbench.external.api.DeploymentXMLGenerator <MW_Project.mwp> <output file.xml>

どちらの方法を使用する場合も、クラスパスに<ORACLE_HOME>\toplink\configディレクトリが含まれていることを事前に確認してください。


注意:

EJB 3.0を使用している場合、注釈を使用して、project.xmlファイルで以前に指定した内容の大部分を指定できます。注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定するために、現行リリースでもEJB 3.0アプリケーションにproject.xmlファイルを提供することは可能です。現在サポートされている注釈の詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

sessions.xmlファイル

各TopLinkプロジェクトは、TopLinkのセッションに属します。セッションは、アプリケーションがTopLink機能にアクセスするときに使用するファサードです(セッションに関する詳細は、第XV部「TopLinkセッション」を参照してください)。セッションを定義する場所は、アプリケーションがCMPを使用するかどうかに応じて異なります。

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

XSDファイルの形式

10gリリース3(10.1.3.1.0)以降、sessions.xmlでは、旧Document Type Definition(DTD)のかわりに、XMLスキーマ・ファイル形式(XSDファイル)を使用します。この変更により、XSDを使用することによるすべての利点が得られるのみでなく、TopLinkランタイム環境がsessions.xmlファイルのロードおよび検証時により優れた診断を提供できるようになりました。

XSDファイルは、OTNでも入手できます。http://www.oracle.com/technology/oracleas/schema/sessions_10_1_3.xsd

XSDで書式設定されたsessions.xmlファイルを使用すると、TopLinkランタイムは、sessions.xmlファイルの検証とセッションのインスタンス化を分離して行います。XMLファイルの書式設定の問題とセッション・マネージャによるセッションのインスタンス化の問題を分離できることで、トラブルシューティングが簡単になります。例8-1で示されているように、検証時にスローされる例外により、失敗が無効なsessions.xmlファイルに起因することが明確に示されます。

例8-1 強化された検証例外

Exception [TOPLINK-9010] (Oracle TopLink - 10g (10.0.3)(Build 040127Dev)): oracle.toplink.exceptions.SessionLoaderException
Exception Description: A End tag does not match start tag 'session'. was thrown while parsing the XML file against the XML schema.
Internal Exception: oracle.xml.parser.v2.XMLParseException: End tag does not match start tag 'session'.

CMP以外のアプリケーションおよびセッション・メタデータ

CMP以外のアプリケーションでは、セッションをsessions.xmlファイルで定義します。

sessions.xmlファイルは、アプリケーション・セッションの構成、変更およびトラブルシューティングを行うための単純で柔軟な方法を提供します。sessions.xmlファイルにはこのような属性があるため、TopLinkプロジェクトの構成にはこのファイルの使用をお薦めします。TopLink Workbenchには、sessions.xmlファイルを作成および編集するためのグラフィック・ツールが用意されています。TopLink Workbenchを使用したセッション作成の詳細は、第73章「セッションの作成」を参照してください。

CMPアプリケーションおよびセッション・メタデータ

CMPプロジェクトでは、セッション・メタデータの指定方法は、アプリケーションをデプロイするJ2EEアプリケーション・サーバーに依存します。

  • OC4Jでは、セッション構成は、orion-ejb-jar.xmlファイルで行われます。データ・ソース、共通のセッションのオプションの一部およびセッション・カスタマイザ・クラスを指定できます(「OC4Jおよびorion-ejb-jar.xmlファイル」を参照)。この場合、TopLinkプロジェクトXMLファイルをtoplink-ejb-jar.xmlと命名します(「project.xmlファイル」を参照)。

  • BEA WebLogic Serverでは、セッション構成は、toplink-ejb-jar.xmlファイルで行われます。データ・ソース、共通のセッションのオプションの一部およびセッション・カスタマイザ・クラスを指定できます(「toplink-ejb-jar.xmlファイル」を参照)。

  • IBM WebSphere Application Serverでは、セッション構成は、toplink-ejb-jar.xmlと命名する必要のあるsessions.xmlファイルで行われます(第73章「セッションの作成」を参照)。


注意:

EJB 3.0を使用している場合、注釈を使用してセッション構成を指定することはできません。sessions.xmlファイルがアプリケーション・タイプに適用可能な場合、そのファイルを提供する必要があります。

ejb-jar.xmlファイル

各EJBモジュールには、モジュールに含まれるすべてのEJBを記述する1つのejb-jar.xmlファイルが含まれています。

ほとんどのIDEには、ejb-jar.xmlファイルを作成する機能が用意されています。IDEからのこのファイルの生成の詳細は、IDEのドキュメントを参照してください。

EJBアプリケーションを構築する場合、TopLink Workbenchでejb-jar.xmlファイルを作成することをお薦めします。TopLink Workbenchではejb-jar.xmlファイルの読取りと書込みの両方が可能なため、次のような方法で、TopLink Workbenchを使用してejb-jar.xmlファイルをメンテナンスできます。

  • TopLink Workbenchを使用せずにファイルを手動で変更した場合、ejb-jar.xmlファイルをTopLink Workbenchプロジェクトに再インポートしてプロジェクトをリフレッシュします。

  • TopLink Workbenchプロジェクトを変更して保存すると、TopLink Workbenchにより、ejb-jar.xmlファイルが自動的に更新されます。

TopLink Workbenchにおけるejb-jar.xmlファイルの管理の詳細は、「ejb-jar.xmlファイルの使用」を参照してください。


注意:

EJB 3.0を使用している場合、注釈を使用して、ejb-jar.xmlファイルで以前に指定した内容の大部分を指定できます。注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定するために、現行リリースでもEJB 3.0アプリケーションにejb-jar.xmlファイルを提供することは可能です。現在サポートされている注釈の詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

<J2EE-Container>-ejb-jar.xmlファイル

<J2EE-Container>-ejb-jar.xmlファイルの内容は、EJBのデプロイ先となるコンテナによって異なります。このファイルを作成するには、コンテナ付属のツールを使用します。

ほとんどの場合、<J2EE-Container>-ejb-jar.xmlファイルは変更せずにTopLinkに統合できます。ただし、場合によっては、いくつかのTopLink固有の変更を行う必要があります。


注意:

EJB 3.0を使用している場合、注釈を使用して、<J2EE-Container>-ejb-jar.xmlファイルで以前に指定した内容の大部分を指定できます。注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定するために、現行リリースでもEJB 3.0アプリケーションに<J2EE-Container>-ejb-jar.xmlファイルを提供することは可能です。現在サポートされている注釈の詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

詳細は、次を参照してください。

OC4Jおよびorion-ejb-jar.xmlファイル

表8-1は、orion-ejb-jar.xmlファイルを変更できるシナリオをまとめたものです。

表8-1 orion-ejb-jar.xmlファイルを変更できるシナリオ

CMPタイプ マッピング・タイプ アクション

Orion

orion-ejb-jar.xmlで指定

  1. デプロイします。

Orion

デフォルト・マッピング

  1. orion-ejb-jar.xmlファイルを編集して、persistence-manager属性のnameorionに設定します。

  2. デプロイします。

Toplink

toplink-ejb-jar.xmlで指定(デフォルトのpersistence-managerプロパティ)

  1. デプロイします。

Toplink

toplink-ejb-jar.xmlで指定(カスタムのpersistence-managerプロパティ)

  1. orion-ejb-jar.xmlファイルを編集して、persistence-manager属性のnametoplinkに設定します。

  2. persistence-managerの追加のサブエントリを編集します(「orion-ejb-jar.xmlファイルのOC4J用の構成」を参照)。

  3. デプロイします。

Toplink

デフォルト・マッピング(toplink-ejb-jar.xmlに指定しない)

  1. デプロイします。


orion-ejb.jar.xmlファイルの構成に関する詳細は、「orion-ejb-jar.xmlファイルのOC4J用の構成」を参照してください。

BEA WebLogic Serverおよびweblogic-ejb-jar.xmlファイル

weblogic-ejb-jar.xmlの構成に関する詳細は、「weblogic-ejb-jar.xmlファイルのBEA WebLogic Server用の構成」を参照してください。

toplink-ejb-jar.xmlファイル

toplink-ejb-jar.xmlファイルは、CMPプロジェクトでのみ使用されます。TopLinkランタイムは、<J2EE container>-ejb-jar.xmlファイル(<J2EE-Container>-ejb-jar.xmlファイル」を参照)に設定されたプロパティを使用して、toplink-ejb-jar.xmlファイルを見つけ、読み取ります。


注意:

EJB 3.0を使用している場合、注釈を使用して、toplink-ejb-jar.xmlファイルで以前に指定した内容の大部分を指定できます。注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定するために、現行リリースでもEJB 3.0アプリケーションにtoplink-ejb-jar.xmlファイルを提供することは可能です。現在サポートされている注釈の詳細は、『Oracle Containers for J2EE Enterprise JavaBeans開発者ガイド』を参照してください。

toplink-ejb-jar.xmlファイルの用途は、使用しているアプリケーション・サーバーのタイプによって異なります。

OC4Jおよびtoplink-ejb-jar.xmlファイル

CMPアプリケーションをOC4Jにデプロイする場合、toplink-ejb-jar.xmlファイルがproject.xmlファイルに使用される名前です。

この場合、toplink-ejb-jar.xmlファイルを作成するには、単にproject.xmlファイルの名前を変更します。詳細は、「project.xmlファイル」を参照してください。

BEA WebLogic Serverおよびtoplink-ejb-jar.xmlファイル

CMPアプリケーションをBEA WebLogic Serverにデプロイすると、toplink-ejb-jar.xmlファイルにはproject.xmlファイルへの参照が追加されます。

例8-2は、典型的なBEA WebLogic Server toplink-ejb-jar.xmlファイルを示しています。

例8-2 BEA WebLogic Server toplink-ejb-jar.xmlファイル

<?xml version="1.0"?>
<!DOCTYPE toplink-ejb-jar PUBLIC "-//Oracle Corp.//DTD TopLink CMP WebLogic 10.0.3 Developer Preview//EN" "toplink-wls-ejb-jar_10_0_3.dtd">
<toplink-ejb-jar>
    <session>
        <name>ejb20_EmployeeDemo</name>
        <project-xml>Employee.xml</project-xml>
        <login>
            <datasource>jdbc/JTSTopLinkDS</datasource>
            <non-jts-datasource>jdbc/TopLinkDS</non-jts-datasource>
        </login>
        <customization-class>
           oracle.toplink.demos.ejb.cmp.wls.employee.EmployeeCustomizer
        </customization-class>
    </session>
</toplink-ejb-jar>

BEA WebLogic Serverでは、TopLinkマッピングおよびランタイム構成のデプロイ・カスタマイズを許可するために使用される、(oracle.toplink.ejb.cmp.DeploymentCustomizationインタフェースを実装する)オプションのデプロイ・カスタマイズ・クラスを指定できます。例8-2では、デプロイ・カスタマイズ・クラス名は、EmployeeCustomizerとなります。このデプロイ・カスタマイズ・クラスは、そのパッケージ名で完全修飾され、デプロイJARに含まれている必要があります。

デプロイ時、TopLinkランタイムは、このクラスの新しいインスタンスを作成し、そのメソッドbeforeLoginCustomization(セッションへのTopLinkランタイムのログイン前)およびafterLoginCustomization(セッションへのTopLinkランタイムのログイン後)を、パラメータとしてTopLinkセッションに渡して起動します。

beforeLoginCustomizationメソッドの実装を使用して、pm-propertiesによってサポートされていない次のようなセッション属性を構成します。

  • キャッシュ・コーディネーション

  • パラメータ使用のSQL

  • ネイティブSQL

  • バッチ書込みとバッチ・サイズ

  • バイト配列とバイト列バインディング

  • EISログイン

  • イベント・リスナー

  • 表修飾子

  • 順序付け

例8-2には、<non-jts-datasource>要素が含まれます。この要素の使用は、BEA WebLogic Serverのtoplink-ejb-jar.xmlに限定されません。Java Transaction API(JTA)でキャッシュ・コーディネーションを使用する場合には、常にTopLink Workbenchを通じてこの要素を構成する必要があります(「非トランザクション読取りログインの構成」を参照)。これにより、TopLinkでは、順序付けの割当てに対してコンテキスト外の読取り操作と最適化を実行できます(「外部管理トランザクション・データ・ソース」を参照)。

セッション構成の詳細は、第74章「セッションの構成」を参照してください。

IBM WebSphere Application Serverおよびtoplink-ejb-jar.xmlファイル

CMPアプリケーションをIBM WebSphere Application Serverにデプロイすると、toplink-ejb-jar.xmlファイルがsessions.xmlファイルに使用される名前となり、project.xmlファイルへの参照が追加されます。

この場合、toplink-ejb-jar.xmlファイルを作成するには、単にsessions.xmlファイルの名前を変更します。詳細は、「sessions.xmlファイル」を参照してください。

Javaアプリケーション

Javaアプリケーションでは、TopLinkはデプロイのためにJ2EEコンテナを使用しません。かわりに、自身のメカニズムを利用して、機能と永続性を提供します。このタイプのアプリケーションの重要な要素は、J2EEコンテナを使用しないこと、およびアプリケーションJARファイルをクラスパスに配置することによりアプリケーションをデプロイするということです。

Javaアプリケーションは、次のデプロイ・ファイルを必要とします。

JavaServer Pagesおよびサーブレット・アプリケーション

多くの設計者は、JSPとJavaサーブレットを使用したTopLinkアプリケーションを構築します。このタイプの設計では、通常、Webベースのアプリケーションがサポートされます。

JSPおよびサーブレット・アプリケーションは、次のデプロイ・ファイルを必要とします。

セッションBeanアプリケーション

通常、セッションBeanはプロセス、オペレーションまたはサービスをモデル化するものであるため、永続的ではありません。TopLinkとの対話をセッションBeanにラップするTopLinkアプリケーションを構築できます。セッションBeansは、TopLink関連のオペレーションすべてをクライアントのかわりに実行します。このタイプの設計では、JTSおよび外部管理トランザクションを使用しますが、CMPアプリケーション関連のオーバーヘッドは発生しません。また、セッションBeanアプリケーションはスケーラビリティに優れ、簡単にデプロイできます。

セッションBeanアプリケーションは、次のデプロイ・ファイルを必要とします。

CMPアプリケーション

多くのアプリケーションは、J2EEコンテナの提供する永続性メカニズムを使用します。TopLinkでは、このタイプのアプリケーションが完全にサポートされています。

JARファイルに含まれるコンテナ管理の永続性を備えたすべてのエンティティBeanに対して、ただ1つの永続性マネージャのみを使用できます。

CMPアプリケーションは、次のデプロイ・ファイルを必要とします。

BMPアプリケーション

BMPを使用する独自の永続性コードを記述する場合は、oracle.toplink.ejb.bmpパッケージのクラスを利用できます。これらクラスの使用の有無にかかわらず、BMPアプリケーションは、次のデプロイ・ファイルを必要とします。

orion-ejb-jar.xmlファイルのOC4J用の構成

TopLinkアプリケーションをOC4J 10gリリース3(10.1.3.1.0)以上にデプロイするには、orion-ejb-jar.xmlファイルを次に記載の説明に従って変更します。

アプリケーションをOC4Jの以前のリリースから移行する場合、TopLink移行ツールを使用して、orion-ejb-jar.xmlファイルから新しいtoplink-ejb-jar.xmlに永続性情報を自動的に移行できます。詳細は、「OC4J TopLinkの永続性へのOC4J Orionの永続性の移行」を参照してください。

persistence-managerのエントリの構成

10gリリース3(10.1.3.1.0)のデフォルト永続性マネージャであるTopLinkをOC4J永続性マネージャとして使用している場合、persistence-managerのサブエントリ(表8-2を参照)をorion-ejb-jar.xmlファイルに構成できます。orion-ejb-jar.xmlファイルを変更するシナリオの詳細は、「OC4Jおよびorion-ejb-jar.xmlファイル」を参照してください。

OC4J永続性マネージャとしてTopLinkを使用していない場合、persistence-managerのサブエントリは変更しないでください。

OC4J 10gリリース3(10.1.3.1.0)以上では、entity-deployment属性のpm-nameをサポートしていません。このかわりとして、persistence-managerの属性nameを使用してください(表8-2を参照)。OC4Jがorion-ejb.jar.xmlファイルを解析したとき、pm-name属性が発見されると、OC4Jはその値を無視して、次の警告メッセージを記録します。


警告:

pm-nameの使用はサポートされていないため、将来のリリースで削除されます。かわりに、<persistence-manager>のnameを使用してpmの使用を指定してください。


表8-2 orion-ejb-jar.xmlファイルのpersistence-managerのエントリ

エントリ 説明

name

使用する永続性マネージャの名前。この値をtoplinkに設定します。

nameプロパティをtoplinkに設定すると、pm-propertiesも構成できます(「pm-propertiesの構成」を参照)。

class-name

この属性は構成しないでください。nametoplinkに設定されている場合、class-nameはデフォルトで正しく設定されます。

descriptor

このプロパティは、nametoplinkに設定されているときにのみ適用されます。

TopLinkマッピング・メタデータをデプロイXMLファイルにエクスポートする場合は、このプロパティをデプロイXMLファイルの名前(デフォルト: toplink-ejb-jar.xml)に設定します。

マッピング・メタデータ・ファイルのかわりにTopLinkプロジェクト・クラスを使用する場合は、このプロパティを設定しないでください(表8-3project-classを参照)。


pm-propertiesの構成

永続性マネージャとしてTopLinkを選択した場合(表8-2nameを参照)、persistence-managerpm-properties用サブエントリ(表8-3を参照)を使用し、TopLinkセッションが、TopLinkランタイムによってCMPプロジェクトのために内部で作成および使用されるように構成しておきます。persistence-managerのサブエントリは、CMPプロジェクトのsessions.xmlファイルのかわりになります。


注意:

セッション機能のサブセットを構成できるのはこれらのプロパティを使用した場合のみで、多くの場合、デフォルトの構成が適用されます。すべてのセッション機能を構成しデフォルトをオーバーライドするには、カスタマイズ・クラスを使用する必要があります(表8-3customization-classを参照)。

表8-3 orion-ejb-jar.xmlファイルのpersistence-managerのサブエントリ

エントリ 説明

session-name

TopLinkで永続化されたこのEJBデプロイJARファイルの一意の名前。このアプリケーション・サーバー・インスタンスに含まれる、TopLinkによって永続化されたデプロイ済JARファイルすべてにおいて、一意とする必要があります。

TopLinkランタイムが、TopLinkで永続化されたデプロイ済JARファイルのTopLinkセッションを内部で作成すると、TopLinkセッション・マネージャはこのsession-name下にセッション・インスタンスを格納します。セッション・マネージャに関する詳細は、第75章「実行時のセッションの取得と使用」を参照してください。

名前を指定しないと、TopLinkランタイムは一意の名前を生成します。

project-class

TopLinkマッピング・メタデータをJavaクラスにエクスポート(してoracle.toplink.sessions.Projectを拡張)する場合、このプロパティを、パッケージ名で完全修飾されたクラス名に設定します。デプロイ可能なJARファイルにクラス・ファイルが含まれていることを確認してください。

マッピング・メタデータ・ファイルを使用している場合、このプロパティは設定しないでください(表8-2descriptorを参照)。

customization-class

TopLinkマッピングおよびランタイム構成のデプロイ・カスタマイズを許可するために使用されるオプションのJavaクラス(oracle.toplink.ejb.cmp.DeploymentCustomizationを実装します)。デプロイ時、TopLinkランタイムは、このクラスの新しいインスタンスを作成し、そのメソッドbeforeLoginCustomization(セッションへのTopLinkランタイムのログイン前)およびafterLoginCustomization(セッションへのTopLinkランタイムのログイン後)を、パラメータとしてTopLinkセッションに渡して起動します。

beforeLoginCustomizationメソッドの実装を使用して、pm-propertiesによってサポートされていないセッションを構成します。このようなプロパティには、キャッシュ・コーディネーション(「cache-synchronizationのプロパティの構成」も参照)、パラメータ使用のSQL、ネイティブSQL、バッチ書込み/バッチ・サイズ、バイト配列/バイト列バインディング、EISログイン、イベント・リスナー、表修飾子および順序付けがあります。セッション構成の詳細は、第74章「セッションの構成」を参照してください。

クラスは、そのパッケージ名で完全修飾され、デプロイJARファイルに含まれている必要があります。

db-platform-class

特定のデータベースに固有のTopLinkサポートを含む、オプションのTopLinkデータベース・プラットフォーム・クラス(oracle.toplink.platform.databaseまたはoracle.toplink.platform.database.oracleのインスタンス)。

この値は、アプリケーションが使用しているデータベースに対応するデータベース・プラットフォーム・クラスに設定します。クラスは、そのパッケージ名で完全修飾されている必要があります。

remote-relationships

リモート・オブジェクト間のリレーションシップを可能にするオプション・フラグ。有効な値は次のとおりです。

  • true: すべてのリレーションシップが、エンティティBeanのリモート・インタフェースを介して保持されます。

  • false: この機能を無効にします。

cache-synchronization

「cache-synchronizationのプロパティの構成」を参照してください。

default-mapping

「default-mappingのプロパティの構成」を参照してください。


cache-synchronizationのプロパティの構成

TopLinkを永続性マネージャとして選択した場合(表8-2nameを参照)、pm-propertiescache-synchronization用サブエントリ(表8-4を参照)を使用し、セッションのTopLinkキャッシュ・コーディネーション機能を構成して、TopLinkランタイムによってCMPプロジェクトのために内部で使用されるようにします。TopLinkキャッシュ・コーディネーションに関する詳細は、「キャッシュ・コーディネーションの概要」を参照してください。

このサブエントリが存在している場合、キャッシュ・コーディネーションの構成を実行する際に、カスタマイズ・クラスを使用する必要があります(表8-3customization-classを参照)。TopLinkキャッシュ・コーディネーションの構成に関する詳細は、第88章「コーディネート・キャッシュの構成」を参照してください。

表8-4 orion-ejb-jar.xmlファイルのpm-propertiesのcache-synchronization用サブエントリ

エントリ 説明

mode

キャッシュ・コーディネーション更新を他のサーバーに同期または非同期のいずれで伝播するかを示すインジケータ。有効な値は次のとおりです。

  • asynchronous(デフォルト)

  • synchronous

server-url

JMSによってコーディネートされるキャッシュ用: Oracle Application Server Containers for J2EE(OC4J)JNDIネーミング・サービスを使用することと、コーディネートされたキャッシュにあるすべてのホストがOC4J固有のRMIプロトコルであるORMIを使用して通信できることを前提として、次のようなURLを使用します。

ormi://<JMS-host-IP>:<JMS-host-port>

ここで、JMS-host-IPは、JMSサービス・プロバイダが稼働するホストのIPアドレスで、JMS-host-portは、JMSサービス・プロバイダがJMSリクエストをリスニングするポートです。

RMIまたはCORBAによってコーディネートされるキャッシュ用: OC4J JNDIネーミング・サービスを使用することと、コーディネートされたキャッシュにあるすべてのホストがOC4Jのデフォルト・ポートである23791でOC4J固有のRMIプロトコルであるORMIを使用して通信できることを前提として、次のようなURLを使用します。

ormi://<session-host-IP>:23791

ここで、session-host-IPはこのセッションがデプロイされるホストのIPアドレスです。

server-user

JNDIネーミング・サービスにログインするために必要となる、オプションのユーザー名。


default-mappingのプロパティの構成

TopLinkを永続性マネージャとして選択した場合(表8-2nameを参照)、pm-propertiesdefault-mapping用サブエントリ(表8-5を参照)を使用して、TopLinkのデフォルト・マッピングおよび自動表生成機能を構成します。

TopLinkのデフォルト・マッピングに関する詳細は、「実行時にOC4Jを使用するCMPプロジェクトでのデフォルト・マッピング」を参照してください。

TopLinkの自動表生成に関する詳細は、「データベース表の自動作成」を参照してください。

表8-5 orion-ejb-jar.xmlファイルのpm-propertiesのdefault-mapping用サブエントリ

エントリ 説明

db-table-gen

マップされるデータベース表を準備するためにTopLinkが実行する内容を決定する、オプションの要素。有効な値は次のとおりです。

  • Create(デフォルト): この値は、マップ先の表をデプロイ時に作成することをTopLinkに指示します。表がすでに存在する場合、TopLinkは該当する警告メッセージ(「表はすでに存在しています」など)を記録し、デプロイの処理を続行します。

  • DropAndCreate: この値は、デプロイ時に表を削除してから表を作成することをTopLinkに指示します。最初に表が存在していない場合に削除操作を行うと、ドライバによってSQLExceptionがスローされます。ただし、TopLinkはこの例外を処理(その例外をログした上で無視します)し、表作成操作の処理に進みます。デプロイは、削除と作成操作の両方が失敗した場合にのみ失敗します。

  • UseExisting: この値は、TopLinkに表の操作を実行しないように指示します。表が存在していない場合、デプロイはエラーなしで続行されます。

orion-ejb-jar.xmlファイルは、EARファイルで定義されていない場合には、デプロイ時にOC4Jコンテナによって生成されます。この場合、db-table-genの値を指定するには、TopLinkシステム・プロパティtoplink.defaultmapping.dbTableGenSettingを使用します。例: -Dtoplink.defaultmapping.dbTableGenSetting="DropAndCreate"

orion-ejb-jar.xmlプロパティは、システム・プロパティをオーバーライドします。orion-ejb-jar.xmlのプロパティとシステム・プロパティの両方が存在している場合、TopLinkは、orion-ejb-jar.xmlファイルから設定を取得します。

この設定は、アプリケーション(EAR)またはシステムのレベルで、自動作成表および自動削除表の構成をオーバーライドします。詳細は、「データベース表の自動作成」を参照してください。

extended-table-names

生成された表の名前が一意とするには長さが足りない場合に使用される要素。値はtrueまたはfalse(デフォルト)に限定されています。trueに設定すると、TopLinkランタイムは、生成する表の名前を一意にします。

デフォルト・マッピングでは、各エンティティは1つの表にマップされます。唯一の例外は多対多でのマッピングで、この場合、ソースおよびターゲットのエンティティに1つの余分なリレーション表が含まれます。

extended-table-namesfalse(デフォルト)に設定すると、シンプルなネーミング・アルゴリズムが使用され、表名はTL_<bean_name>のように定義されます。たとえば、Bean名がEmployeeの場合、関連する表名はTL_EMPLOYEEとなります。

ただし、同じエンティティが1つのアプリケーションで、または複数のアプリケーションにわたって、複数のJARファイルで定義されていると、表名の衝突は避けられません。

この問題を回避するには、extended-table-namestrueに設定します。trueに設定すると、TopLinkは、表の名前を定義するために代替の表ネーミング・アルゴリズムを使用して、<bean_name>_<jar_name>_<app_name>のようにします。このアルゴリズムは、Bean、JARおよびEARの名前の組合せを使用して、アプリケーション全体で一意の表の名前を作成します。たとえば、Employeeという名前のBeanがTest.jarに、Test.jarDemo.earにある場合(また、アプリケーション名は「Demo」)、対応する表名は、EMPLOYEE_TEST_DEMOとなります。

orion-ejb-jar.xmlファイルは、EARファイルで定義されていない場合には、デプロイ時にOC4Jコンテナによって生成されます。この場合、extended-table-namesの値を指定するには、TopLinkシステム・プロパティtoplink.defaultmapping.useExtendedTableNamesを使用します。例: -Dtoplink.defaultmapping.useExtendedTableNames="true"

orion-ejb-jar.xmlプロパティは、システム・プロパティをオーバーライドします。orion-ejb-jar.xmlのプロパティとシステム・プロパティの両方が存在している場合、TopLinkは、orion-ejb-jar.xmlファイルから設定を取得します。


weblogic-ejb-jar.xmlファイルのBEA WebLogic Server用の構成

TopLinkアプリケーションをBEA WebLogic Serverにデプロイするには、次で説明されているようにweblogic-ejb-jar.xmlファイルを変更します。

TopLinkがサポートしていないかまたは必要としないweblogic-ejb-jar.xmlのタグは使用しないでください(「weblogic-ejb-jar.xmlファイルのサポートされていないタグ」を参照)。

BEA WEbLogic ServerアプリケーションをOC4Jに移行する場合、TopLink移行ツールを使用して、weblogic-ejb-jar.xmlファイルから新しいtoplink-ejb-jar.xmlに永続性情報を自動的に移行できます。詳細は、「BEA WebLogic永続性のOC4J TopLink永続性への移行」を参照してください。

persistence-descriptorのエントリの構成

weblogic-ejb-jar.xmlファイルでは、次のようなサブエントリを持つpersistence-descriptorエントリがBeanごとに必要です。

  • TopLinkが使用可能であり、使用される必要があることを示すサブエントリを持つpersistence-descriptorエントリを構成します。

    • WebLogic 6.1(Service Pack 4)にデプロイする場合、persistence-type要素とpersistence-use要素を含めます。どちらの要素にもtype-identifierおよびtype-versionタグが必要です。表8-6type-identifierタグのオプションを、表8-7type-versionタグのオプションをまとめたものです。

    • WebLogic 7.0または8.1にデプロイする場合、type-identifierおよびtype-versionタグを持つpersistence-use要素を含めます。表8-6type-identifierタグのオプションを、表8-7type-versionタグのオプションをまとめたものです。

  • WebLogic 6.1を使用する場合、要素type-storagepersistence-type要素に追加し、META-INF\toplink-ejb-jar.xmlに設定します。

  • WebLogic 7.0または8.1を使用する場合、要素type-storageをpersistence-use要素に追加し、META-INF\toplink-ejb-jar.xmlに設定します。enable-call-by-reference要素をTRUEに設定し、参照呼出しを有効にします。

    <weblogic-enterprise-bean>
        <ejb-name>AccountBean</ejb-name>
        ...
            <enable-call-by-reference>True</enable-call-by-reference>
        ...
    </weblogic-enterprise-bean>
    
    

表8-6 WebLogicのtype-identifierの設定

EJBのバージョン XML要素

2.0

<type-identifier>TopLink_CMP_2_0</type-identifier>


表8-7 WebLogicのtype-versionの設定

WebLogicのEJBのバージョン XML要素

6.1

<type-version>4.0</type-version>

7.0

<type-version>4.5</type-version>

8.1

<type-version>9.0.4</type-version>


weblogic-ejb-jar.xmlファイルのサポートされていないタグ

weblogic-ejb-jar.xmlファイルには、TopLinkでサポートされておらず、必要のない次のような複数のタグが含まれています。

  • concurrency-strategy: このタグは、WebLogicで特定のBeanに対する同時ユーザーをどのように管理するかを指定するためのものです。TopLinkでは同時アクセスを内部的に管理するため、このタグは不要です。

    TopLinkでの同時実行性に関する方針の詳細は、「ロック・ポリシーの構成」を参照してください。

  • db-is-shared: TopLinkでは、データベース・アクセスの排他性についての仮定を行わないため、このタグは不要です。マルチユーザー・アクセスの問題には、各種ロック・ポリシーとリフレッシュ・ポリシーを通じて対処します。

  • delay-updates-until-end-of-tx: TopLinkでは、必ず更新をトランザクションの最後まで遅らせるため、このタグは不要です。

  • finders-load-bean: TopLinkでは、必ずファインダの実行時にBeanをロードするため、このタグは不要です。

  • pool: TopLinkでは、エンティティBeanに対してプール方式を使用しません。そのため、プールが原因で発生するオブジェクト・アイデンティティの問題が回避されます。

  • lifecycle: この要素は、プール方式に従うBeanを管理するためのものです。TopLinkではプール方式を使用しないため、このタグは無視されます。

  • is-modified-method-name: TopLinkでは、開発者が定義したBeanメソッドによって、オブジェクトの状態の変化を検出する必要はありません。

  • isolation-level: キャッシュまたはデータベース・トランザクションの分離レベル設定はTopLinkプロジェクトで指定するため、このタグは無視されます。

  • cache: TopLinkのキャッシュ・プロパティはTopLink Workbenchで定義するため、このタグは不要です。