ヘッダーをスキップ
Oracle Fusion Middleware Oracle TopLink開発者ガイド
11gリリース1(11.1.1)
B56246-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

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

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

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

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

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

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

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

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


注意:

EJB 3.0を使用している場合、注釈を使用して、デプロイメント・ディスクリプタで以前に指定した内容の大部分を指定できます。デプロイメント・ディスクリプタを使用して、注釈をオーバーライドしたり、注釈でサポートされていないオプションを指定できます。

9.1.1 project.xmlファイル

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

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

9.1.1.1 XSDファイルの形式

project.xmlファイルのXSDは、toplink-object-persistence_11_1_1.xsdであり、<TOPLINK_HOME>\xsdsディレクトリにあります。

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

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

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

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

JPAアプリケーションの場合、JPA注釈、persistence.xmlorm.xml、EclipseLink JPA注釈およびpersistence.xmlプロパティ拡張機能を使用してプロジェクト・メタデータを表現できます。EclipseLink JPA永続性プロバイダでは、これらすべてのメタデータのソースを解釈して、実行時にインメモリー・セッションおよびプロジェクトが作成されます。

EclipseLink JPAを使用すると、JPAおよびEntityManagerを使用して永続クラスにアクセスしている間に、sessions.xmlおよびproject.xmlを使用してメタデータを指定することもできます。詳細は、『EclipseLink Developer's Guide』の「What You May Need to Know About EclipseLink JPA Overriding Mechanisms」(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#What_You_May_Need_to_Know_About_EclipseLink_JPA_Overriding_Mechanisms)を参照してください。

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

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

9.1.1.5 Oracle JDeveloperを使用したproject.xmlファイルの作成

Oracle JDeveloperでは、TopLinkマッピング・プロジェクト情報はTopLinkマップで保持されます。詳細は、Oracle JDeveloperオンライン・ヘルプを参照してください。

9.1.1.6TopLink Workbenchを使用したproject.xmlファイルの作成

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

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


注意:

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

9.1.1.7 プログラムによる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.mappings.DeploymentXMLGenerator <MW_Project.mwp> <output file.xml>
    

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


注意:

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

9.1.2 sessions.xmlファイル

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

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

9.1.2.1 XSDファイルの形式

sessions.xmlファイルのXSDは、sessions_11_1_1.xsdであり、<TOPLINK_HOME>\xsdsディレクトリにあります。

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

例9-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'.

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

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

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

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

JPAアプリケーションの場合、JPA注釈、persistence.xmlorm.xml、EclipseLink JPA注釈およびpersistence.xmlプロパティ拡張機能を使用してセッション・メタデータを表現できます。EclipseLink JPA永続性プロバイダでは、これらすべてのメタデータのソースを解釈して、実行時にインメモリーのTopLinkセッションおよびプロジェクトが作成されます。

EclipseLink JPAを使用すると、JPAおよびEntityManagerを使用して永続クラスにアクセスしている間に、sessions.xmlおよびproject.xmlを使用してメタデータを指定することもできます。詳細は、『EclipseLink Developer's Guide』の「What You May Need to Know About EclipseLink JPA Overriding Mechanisms」(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#What_You_May_Need_to_Know_About_EclipseLink_JPA_Overriding_Mechanisms)を参照してください。

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

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

OC4Jでは、セッション構成は、orion-ejb-jar.xmlファイルで行われます。data-source、共通のセッションのオプションの一部およびセッション・カスタマイザ・クラスを指定できます(表9-3「orion-ejb-jar.xmlファイルのpersistence-managerのpm-properties用サブエントリ」を参照)。この場合、TopLinkプロジェクトXMLファイルをtoplink-ejb-jar.xmlと命名します(9.1.1項「project.xmlファイル」を参照)。


注意:

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

9.1.3 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ファイルの管理の詳細は、19.7項「ejb-jar.xmlファイルの使用」を参照してください。


注意:

EJB 3.0を使用している場合、注釈を使用して、ejb-jar.xmlファイルで以前に指定した内容の大部分を指定できます。注釈をオーバーライドするか、または注釈でサポートされていないオプションを指定するために、現行リリースでもEJB 3.0アプリケーションにejb-jar.xmlファイルを提供することは可能です。

9.1.4 JAVA-EE-CONTAINER-ejb-jar.xmlファイル

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

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


注意:

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

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

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

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

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

表9-1では、orion-ejb-jar.xmlファイルを変更できるシナリオを示します。

表9-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で指定

  1. デプロイします。

Toplink

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

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

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

  3. デプロイします。

Toplink

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

  1. デプロイします。


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

9.1.5 toplink-ejb-jar.xmlファイル

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

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

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

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

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

9.2 Javaアプリケーション用デプロイ・ファイルの作成

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

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

9.3 JavaServer Pagesおよびサーブレット・アプリケーション用デプロイ・ファイルの作成

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

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

9.4 セッションBeanアプリケーション用デプロイ・ファイルの作成

通常、セッションBeanはプロセス、オペレーションまたはサービスをモデル化するものであるため、永続的ではありません。TopLinkとの対話をセッションBeanにラップするTopLinkアプリケーションを構築できます。セッションBeanは、TopLink関連のオペレーションすべてをクライアントのかわりに実行します。

このタイプの設計では、JTSおよび外部管理トランザクションが使用されますが、永続アプリケーションに関連するオーバーヘッドは発生しません。また、セッションBeanアプリケーションはスケーラビリティに優れ、簡単にデプロイできます。

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

9.4.1 EJB 1.nおよび2.nセッションBeanアプリケーション用デプロイ・ファイルの作成方法

EJB 1.nおよび2.nセッションBeanアプリケーションは、次のデプロイ・ファイルを必要とします。

9.4.2 EJB 3.0セッションBeanアプリケーション用デプロイ・ファイルの作成方法

EJB 3.0セッションBeanアプリケーションでは、JPA注釈および永続性単位プロパティ、または特別な場合にはeclipselink.session-xml永続性単位プロパティ(『EclipseLink Developer's Guide』の「EclipseLink JPA Persistence Unit Properties for Database, Session, and Application Server」の表(http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#Using_EclipseLink_JPA_Extensions_for_Session.2C_Target_Database_and_Target_Application_Server)を参照)を使用することをお薦めします。

また、project.xmlファイルおよびsessions.xmlファイルの使用を選択することもできます。

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

9.5 JPAアプリケーション用デプロイ・ファイルの作成

JPAアプリケーション用デプロイ・ファイルの作成方法の詳細は、『EclipseLink Developer's Guide』の「Packaging and Deploying EclipseLink JPA Applications」(http://wiki.eclipse.org/Packaging_and_Deploying_EclipseLink_JPA_Applications_%28ELUG%29)を参照してください。

9.6 CMPアプリケーション用デプロイ・ファイルの作成

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

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

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

9.7 BMPアプリケーション用デプロイ・ファイルの作成

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

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

TopLinkアプリケーションをOracle WebLogic Serverにデプロイする前に、weblogic-ejb-jar.xmlファイルを変更する必要があります。

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

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

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

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

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

  • 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で定義するため、このタグは不要です。

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

TopLinkアプリケーションをOC4Jにデプロイするには、orion-ejb-jar.xmlファイルを変更します。詳細は、9.9.1項「persistence-managerのエントリの構成方法」を参照してください。

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

9.9.1 persistence-managerのエントリの構成方法

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

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

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


警告:

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


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

エントリ 説明

name

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

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

class-name

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

descriptor

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

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

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


9.9.1.1pm-propertiesの構成

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


注意:

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

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

エントリ 説明

session-name

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

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

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

project-class

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

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

customization-class

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

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

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

db-platform-class

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

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

remote-relationships

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

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

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

cache-synchronization

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

default-mapping

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


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

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

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

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

エントリ 説明

mode

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

  • asynchronous(デフォルト)

  • synchronous

server-url

JMSコーディネート・キャッシュ用: 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ネーミング・サービスへのログインに必要なオプションのユーザー名。


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

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

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

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

表9-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)またはシステムのレベルで、autocreate-tablesおよびautodelete-tablesの構成をオーバーライドします。詳細は、6.4項「データベース表の自動作成」を参照してください。

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ファイルから設定を取得します。