<session>要素にはTopLinkセッションに対する構成情報が含まれています。この要素にはセッションのオプションを指定するいくつかのタグがあります。セッションXMLファイルには通常、少なくとも1つの<session>要素があり、アプリケーションで必要な場合は複数の要素指定も可能です。
<session>は表B-1にリスト表示されている構成タグをサポートします。
表B-1 <session>要素内のタグ
例B-2 プロジェクト・クラスの使用
<toplink-configuration>
<session>
<name>mysession</name>
<project-class>com.mycompany.MyProject</project-class>
...
</session>
</toplink-configuration>
例B-3 プロジェクトXMLの使用
<toplink-configuration>
<session>
<name>mysession</name>
<project-xml>C:/myproject/myproject.xml</project-xml>
...
</session>
</toplink-configuration>
これらのタグ以外に、<session>要素にはセッション構成情報を示すいくつかのタグがあります。リストには次のようなライブラリが含まれます。
<session-type>要素は<session>要素の内側に示され、次のタグでセッション・タイプを指定します。
表B-2 <session-type>要素内のタグ
例B-4 ServerSessionの定義
<session>
<name>myServerSession</name>
<project-class>com.mycompany.MyProject</project-class>
<session-type>
<server-session/>
</session-type>
...
</session>
例B-5 DatabaseSessionの定義
<session>
<name>myDatabaseSession</name>
<project-class>com.mycompany.MyProject</project-class>
<session-type>
<database-session/>
</session-type>
...
</session>
<login>要素はセッションのオプションです。セッションXMLファイルに<login>要素を含めない場合は、TopLinkマッピング・エディタでデフォルトのログインを設定する必要があります。
表B-3 <login>要素内の基本構成タグ
例B-6 JDBCを使用した基本構成
<session>
<name>myServerSession</name>
<project-class>com.mycompany.MyProject</project-class>
<session-type>
<server-session/>
</session-type>
<login>
<license-path>C:/myproject/license/</license-path>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<connection-url>jdbc:oracle:thin@dbserver:1521:dbname</connection-url>
<platform-class>oracle.toplink.internal.databaseaccess.OraclePlatform</platform-class>
<user-name>scott</user-name>
<password>tiger</password>
</login>
...
</session>
例B-7 データソースを使用した基本構成
<session>
<name>myServerSession</name>
<project-class>com.mycompany.MyProject</project-class>
<session-type>
<server-session/>
</session-type>
<login>
<data-source>jdbc/MyApplicationDS</data-source>
<platform-class>oracle.toplink.internal.databaseaccess.OraclePlatform</platform-class>
</login>
...
</session>
<login>要素には、セッション・ログインをカスタマイズできるオプションのタグがいくつかあります。オプションの<login>タグは通常、有効な値としてTRUEまたはFALSEを受け取ります。表B-4はこれらのタグを説明しています。
表B-4 <login>要素内のオプション・タグ
login要素にはこの他に2つのオプション・タグがあります。
セッション・ログインの一部として順序付けを構成できます(必須ではありません)。セッションXMLファイルで順序付けを構成しない場合は、TopLinkマッピング・エディタで指定された構成がアプリケーションで使用されます。
特定のセッションにカスタム順序付けを使用する際はセッションXMLで順序付けを構成します。
表B-5には、セッションXMLファイルにおける順序付けの構成に使用する要素がリスト表示されています。これらの要素はすべてオプションです。
表B-5 <login>要素内のオプション順序付け構成タグ
詳細は「順序付け」を参照してください。
例B-8 ネイティブ順序付けの構成
<session>
<login>
...
<uses-native-sequencing>true</uses-native-sequencing>
<sequence-preallocation-size>50</sequence-preallocation-size>
</login>
...
</session>
例B-9 表ベースの順序付けの構成
<session>
...
<login>
<uses-native-sequencing>false</uses-native-sequencing>
<sequence-table>SEQUENCE</sequence-table>
<sequence-name-field>SEQ_NAME</sequence-name-field>
<sequence-counter-field>SEQ_COUNT</sequence-counter-field>
</login>
...
</session>
<login>の一部としてキャッシュ同期化を構成します。<cache-synchronization-manager>要素と表B-6にリスト表示されているタグを使用して、アプリケーションに対するキャッシュ同期化を構成します。
表B-6 キャッシュ同期化マネージャ構成タグ
例B-10 キャッシュ同期化マネージャの使用
<session>
...
<login>
<cache-synchronization-manager>
<clustering-service>oracle.toplink.remote.rmi.RMIClusteringService</clustering-service>
<multicast-port>6020</multicast-port>
<multicast-group-address>226.18.6.18</multicast-group-address>
<is-asynchronous>true</is-asynchronous>
<should-remove-connection-on-error>true</should-remove-connection-on-error>
<naming-service-url>localhost:1099</naming-service-url>
</cache-synchronization-manager>
</login>
...
</session>
セッション・イベントの発生をアプリケーションに通知する場合は、イベント・リスナーを使用してイベント通知を登録します。セッションXMLファイルでイベント・リスナーを構成できます。
<event-listener-class>タグを使用すると、oracle.toplink.sessions.SessionEventListenerインタフェースを実装するリスナー・クラスか、oracle.toplink.sessions.SessionEventAdapterクラスを拡張するリスナー・クラスを構成できます。複数の<event-listener-class>タグを記述し、各タグについて実装クラス名を指定することで、複数のイベント・リスナー・クラスを構成できます。
例B-11 コードでのイベント・リスナー・クラスの設定
package examples;
import oracle.toplink.sessions.*;
public class MyEventListener extends SessionEventAdapter {
public void preLogin(SessionEvent event) {
Session session = event.getSession();
/* custom code goes here */
}
}
例B-12 セッションXMLでのイベント・リスナー・クラスの設定
<session>
...
<event-listener-class>examples.MyEventListener</event-listener-class>
...
</session>
TopLinkではexamples.MyEventListenerクラスがセッションに対するSessionEventManagerに登録されます。preLoginイベントがセッションで発生すると、MyEventListenerクラスpreLoginメソッドが起動します。
TopLinkには、アプリケーションを最適化しパフォーマンス上のボトルネックを識別するために使用できる、プロファイラが用意されています。パフォーマンス・プロファイラを実装するには、<profiler-class>タグを使用してセッションにパフォーマンス・プロファイラを指定します。
例B-13 セッションXMLでのパフォーマンス・プロファイラの実装
<session>
...
<profiler-class>oracle.toplink.tools.profiler.PerformanceProfiler</profiler-class>
...
</session>
<profiler-class>タグは、oracle.toplink.sessions.SessionProfilerインタフェースを実装するすべてのクラスをサポートします。このため、プロファイラがoracle.toplink.sessions.SessionProfilerインタフェースを実装していれば、独自のプロファイラをビルドしてセッションに追加することができます。
システムに外部トランザクション(たとえばJTAの下などに)が含まれる場合は、<external-transaction-controller-class>タグを使用してTopLink外部トランザクション・コントローラを指定します。
外部トランザクション・コントローラを使用するには、セッション・ログインで次の項目を指定します。
例B-14 外部トランザクション・コントローラの構成
<session>
...
<login>
...
<uses-external-transaction-controller>true</uses-external-transaction-controller>
<data-source>jdbc/MyApplicationDS</data-source>
<uses-external-connection-pool>true</uses-external-connection-pool>
...
</login>
<external-transaction-controller-class>oracle.toplink.jts.oracle9i.Oracle9iJTSExternalTransactionController</external-transaction-controller-class>
...
</session>
<exception-handler-class>タグは、セッションの例外を扱うクラスを指定します。このタグは、oracle.toplink.exceptions.ExceptionHandlerを実装するすべてのクラスをサポートします。
例B-15 コードでの例外ハンドラの構成
package examples;
import oracle.toplink.exceptions.*;
public class MyExceptionHandler implements ExceptionHandler {
public Object handleException(RuntimeException exception) {
/*custom code goes here */
}
}
例B-16 セッションXMLファイルでの例外ハンドラの構成
<session>
...
<exception-handler-class>examples.MyExceptionHandler</exception-handler-class>
...
</session>
セッションXMLファイルの<connection-pool>要素によって、TopLinkアプリケーションに対する1つの接続プールまたは複数の接続プールを明示的に構成できます。セッションの接続プールを構成しない場合、セッションではプロジェクトで定義したデフォルトの接続プールが使用されます。
プロジェクトに対する接続プールの構成の詳細は、「接続プールの使用」を参照してください。
手動で定義した各<connection-pool>についてはログインを定義する必要があります。ログインの構成の詳細は、「<login>要素」を参照してください。
表B-7 <connection-pool>要素タグ
例B-17 接続プール要素の構成
<session>
...
<connection-pool>
<is-read-connection-pool>true</is-read-connection-pool>
<name>additionalReadPool</name>
<max-connections>20</max-connections>
<min-connections>10</min-connections>
<login>
...
</login>
</connection-pool>
...
</session>
セッションのロギングは、明示的に指定しないかぎりTopLinkでは自動的に有効になりません。セッションのロギングを有効にするには、セッションXMLファイルでセッション定義の一部として<enable-logging>要素を指定します。
ロギングを有効にするには、<enable-logging>要素を指定してそれをTRUEに設定します。ロギングを有効にした後、セッションXMLファイルで1つ以上のロギング・オプションを指定することでセッションにおけるロギング動作をカスタマイズできます。使用可能なロギング・オプションは表B-8に示されており、引数としてTRUEまたはFALSEを受け取ります。
表B-8 <enable-logging>オプション・タグ
例B-18 ロギングおよびロギング・オプションの構成
<session>
...
<enable-logging>true</enable-logging>
<logging-options>
<log-debug>false</log-debug>
<log-exceptions>true</log-exceptions>
<log-exception-stacktrace>true</log-exception-stacktrace>
<print-session>true</print-session>
<print-thread>false</print-thread>
<print-connection>true</print-connection>
<print-date>true</print-date>
</logging-options>
...
</session>
Copyright © 1997, 2004, Oracle. All rights reserved.