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

戻る
戻る
 
次へ
次へ
 

88 セッションの作成

この章では、TopLinkセッションの作成方法について説明します。

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

使用可能な様々なセッション・タイプの詳細は、87.1項「セッション・タイプ」を参照してください。

88.1 セッション作成の概要

各TopLinkセッションは、セッション構成(sessions.xml)ファイル内に格納されます。プロジェクトは、Oracle JDeveloperTopLinkエディタ、TopLink WorkbenchまたはJavaコードを使用して作成できます。セッションの作成および管理には、Oracle JDeveloperを使用することをお薦めします(88.2項「セッション構成の作成」を参照)。

また、セッションはJavaでも作成できます。Javaでセッションを作成する方法の詳細は、『Oracle Fusion Middleware Java API Reference for Oracle TopLink』を参照してください。

セッションを作成した後、各種のオプションを構成する必要があります(第89章「セッションの構成」を参照)。セッションは、構成後、アプリケーションで永続性の管理に使用できます(第90章「実行時のセッションの取得と使用」を参照)。

88.2 セッション構成の作成

Oracle JDeveloper TopLinkエディタおよびTopLink Workbenchを使用すると、セッション・インスタンスを作成してsessions.xmlファイルに保存できます。これらのツールでは、sessions.xmlファイルはセッション構成として表されます。各セッション・インスタンスはこのセッション構成内に格納されています。複数のセッション構成を作成でき、それぞれには、独自の一意名を持った対応するsessions.xmlファイルがあります。

セッションの作成および管理には、Oracle JDeveloperを使用することをお薦めします。これが、セッション管理には最も効率的で柔軟なアプローチです。このアプローチの利点の詳細は、87.2.2項「セッションの構成とsessions.xmlファイル」を参照してください。

TopLink Workbenchは、セッション構成とその内容をナビゲータ・ウィンドウに表示します。セッション構成を選択すると、その属性がエディタ・ウィンドウに表示されます。

図88-1には、次の各ユーザー・インタフェース要素がコールアウトで示されています。

  1. セッション構成

  2. データベース・セッション

  3. リレーショナル・サーバー・セッション

  4. 接続プール

  5. EISサーバー・セッション

  6. XMLセッション

  7. セッション・ブローカ

図88-1 ナビゲータ・ウィンドウでのセッション構成

図88-1の説明が続きます
「図88-1 ナビゲータ・ウィンドウでのセッション構成」の説明

88.2.1 TopLink Workbenchを使用したセッション構成の作成方法

TopLinkのセッション構成(sessions.xmlファイル)を作成するには、次の手順を実行します。

  1. 「新規プロジェクト」ボタン
    ツールバーの「新規」をクリックして、「セッション構成」を選択します。

    新規セッション構成ボタン
    また、新規セッション構成は、メニューから「ファイル」「新規」「セッション構成」を選択するか、標準ツールバーで「新規セッション構成の作成」をクリックしても作成できます。

  2. 新規セッション構成の要素がナビゲータ・ウィンドウに表示され、「セッション構成」プロパティ・シートがエディタ・ウィンドウに表示されます。

    「セッション構成」プロパティ・シートの各フィールドにデータを入力します(88.3項「セッション構成の構成」を参照)。

88.3 セッション構成の構成

各TopLinkセッション構成(sessions.xmlファイル)には、複数のセッションとセッション・ブローカを含めることができます。また、含めたすべてのセッションに適用される各セッション構成のクラスパスを指定できます。

88.3.1 TopLink Workbenchを使用したセッション構成の構成方法

セッション構成を構成するには、次の手順を実行します。

  1. ナビゲータでセッション構成を選択します。そのプロパティがエディタに表示されます。

    図88-2 「セッション構成」プロパティ・シート

    図88-2の説明が続きます
    「図88-2 「セッション構成」プロパティ・シート」の説明

次の情報を参照し、「セッション構成」プロパティ・シートの各フィールドにデータを入力します。

フィールド 説明
プロジェクトの保存場所 「変更」をクリックして、セッション構成の保存先となるディレクトリを選択します。
クラスパス このセッション構成が外部Javaクラス(セッション・イベント・リスナーなど)を必要とする諸機能について依存する、コンパイル済のJavaクラスが含まれたJARまたはZIPファイルがリストされます。
  • JARまたはZIPファイルを追加するには、「エントリの追加」または「参照」をクリックしてファイルを追加します。

  • JARまたはZIPファイルを削除するには、ファイルを選択して「削除」をクリックします。

  • これらのJARまたはZIPファイルを検索する順序を変更するには、ファイルを選択し、「上へ」をクリックしてリスト内でファイルを上へ移動するか、「下へ」をクリックして下へ移動します。

''<sessions configuration name>''のセッション このセッション構成に定義済の使用可能なセッションがリストされます。
  • セッションを追加するには、「セッションの追加」をクリックします。

  • セッションを削除するには、ファイルを選択して「削除」をクリックします。

  • セッションの名前を変更するには、ファイルを選択して「名前の変更」をクリックします。

TopLink Workbenchを使用したセッション作成の詳細は、次の項を参照してください。


88.4サーバー・セッションの作成

Oracle JDeveloperまたはTopLink Workbenchを使用してサーバー・セッションを作成することをお薦めします(88.4.1項「TopLink Workbenchを使用したサーバー・セッションの作成方法」を参照)。

サーバー・セッションの作成後、クライアント・セッションをサーバー・セッションから取得、作成します(90.4項「クライアント・セッションの取得」を参照)。

88.4.1 TopLink Workbenchを使用したサーバー・セッションの作成方法

サーバー・セッションを作成するには、最初にセッション構成を作成する必要があります(88.2項「セッション構成の作成」を参照)。

TopLinkの新規サーバー・セッションを作成するには、次の手順を実行します。

  1. セッションを作成するセッション構成をナビゲータ・ウィンドウで選択します。

  2. 「セッションの追加」ボタン
    ツールバーの「セッションの追加」をクリックします。「新規セッションの作成」ダイアログ・ボックスが表示されます。

    新規サーバー・セッションは、ナビゲータでセッション構成を右クリックして、コンテキスト・メニューから「新規」「セッション」を選択しても作成できます。あるいは、「セッション構成」プロパティ・シートの「セッションの追加」をクリックしても作成できます。

    図88-3 「新規セッションの作成」ダイアログ・ボックス、「サーバー・セッション」オプション

    図88-3の説明が続きます
    「図88-3 「新規セッションの作成」ダイアログ・ボックス、「サーバー・セッション」オプション」の説明

次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。

フィールド 説明
名前 新規セッションの名前を指定します。
サーバー・プラットフォームを使用 アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。

このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。

    プラットフォーム このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。

アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。

TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。

  • WebLogic 10.n

  • WebLogic 9.n

  • OC4J 11.1.1

  • OC4J 10.1.3.n

  • SunAS 9.0

  • WebSphere 6.1

  • JBoss

  • カスタム

選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。

データ・ソースの選択 このセッション構成のデータ・ソースを選択します。各セッション構成には、データ・ソースを1つ指定する必要があります。次のいずれかを選択します。
  • データベース: リレーショナル・プロジェクトのセッションを作成します。

  • EIS: EISプロジェクトのセッションを作成します。

  • XML: XMLプロジェクトのセッションを作成します。脚注1

詳細は、15.1項「TopLinkプロジェクト・タイプ」を参照してください。

セッションの選択 「サーバー・セッション」を選択して、3層アプリケーションの複数のクライアント用に単一のデータ・ソース(共有オブジェクト・キャッシュや接続プールなど)用のセッションを作成します。

脚注1 XMLプロジェクト用のサーバー・セッションは作成できません。

88.4.2 Javaを使用したサーバー・セッションの作成方法

Javaコードでサーバー・セッションを作成するには、プロジェクトを使用します。Javaコードでプロジェクトを作成しても、またはproject.xmlファイルからプロジェクトを読み取ってもかまいません。

例88-1は、Projectクラスを使用してServerクラスのインスタンス(serverSession)を作成する方法を示します。

例88-1 Projectクラスからのサーバー・セッションの作成

Project myProject = new Project();
Server serverSession = myProject.createServerSession();

例88-2は、project.xmlファイルから読み取ったProjectクラスを使用してServerクラスのインスタンス(serverSession)を作成する方法を示します。

例88-2 project.xmlファイルのProjectからのサーバー・セッションの作成

Project myProject = XMLProjectReader.read("myproject.xml");
Server serverSession = myProject.createServerSession();

例88-3は、書込み接続プールの最小および最大サイズを指定してサーバー・セッションを作成する方法を示します(TopLinkの内部接続プーリングを使用する場合)。デフォルトの書込み接続プールの最小サイズは5で、最大サイズは10です。

例88-3 カスタム書込み接続プール・サイズを指定したサーバー・セッションの作成

XMLProjectReader.read("myproject.xml");
Server serverSession = myProject.createServerSession(32, 32);

88.5 セッション・ブローカおよびクライアント・セッションの作成

セッション・ブローカは、サーバー・セッションとデータベース・セッションの両方を対象とすることができます。サーバー・セッションを指定してセッション・ブローカを使用することをお薦めします。サーバー・セッションが最もスケーラブルなセッション・タイプのためです。

Oracle JDeveloperまたはTopLink Workbenchを使用してサーバー・セッションを作成することをお薦めします(88.5.1項「TopLink Workbenchを使用したセッション・ブローカおよびクライアント・セッションの作成方法」を参照)。

サーバー・セッションを指定してセッション・ブローカを作成、構成した後は、実行時にセッション・ブローカからクライアント・セッションを取得して、各クライアントについてセッション・ブローカによって管理されているすべてのデータ・ソースへの専用接続を提供できます。詳細は、90.4項「クライアント・セッションの取得」を参照してください。

88.5.1 TopLink Workbenchを使用したセッション・ブローカおよびクライアント・セッションの作成方法

セッション・ブローカ・セッションを作成するには、最初にセッション構成(88.2項「セッション構成の作成」を参照)と、1つ以上のサーバー・セッション(88.4項「サーバー・セッションの作成」を参照)、または1つ以上のデータベース・セッション(88.6項「データベース・セッションの作成」を参照)を作成する必要があります。

TopLinkの新規セッション・ブローカを作成するには、次の手順を実行します。

  1. セッション・ブローカを作成するセッション構成をナビゲータ・ウィンドウで選択します。

  2. セッション・ブローカの追加ボタン
    ツールバーの「セッション・ブローカの追加」をクリックします。「新規セッション・ブローカの作成」ダイアログ・ボックスが表示されます。

    新規セッション・ブローカは、ナビゲータ・ウィンドウのセッション構成を右クリックして、コンテキスト・メニューから「セッション・ブローカの追加」を選択しても作成できます。あるいは、「セッション構成」プロパティ・シートの「セッション・ブローカの追加」をクリックしても作成できます。

    図88-4 「新規セッション・ブローカの作成」ダイアログ・ボックス

    図88-4の説明が続きます
    「図88-4 「新規セッション・ブローカの作成」ダイアログ・ボックス」の説明

次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。

フィールド 説明
名前 新規セッション・ブローカの名前を指定します。
サーバー・プラットフォームを使用 アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。

このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。

プラットフォーム このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。

アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。

TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。

  • WebLogic 10.n

  • WebLogic 9.n

  • OC4J 11.1.1

  • OC4J 10.1.3.n

  • SunAS 9.0

  • WebSphere 6.1

  • JBoss

  • カスタム

選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。

管理するセッションの選択 この新規セッション・ブローカによって管理するセッションを(使用可能なセッションのリストから)選択し、「OK」をクリックします。

注意: このフィールドが表示されるのは、構成に有効なセッションが含まれる場合のみです。


第89章「セッションの構成」に進んでください。

88.5.2 Javaを使用したセッション・ブローカおよびクライアント・セッションの作成方法

例88-4は、SessionBrokerをインスタンス化し、そのインスタンスにセッションを登録することによる、Javaコードでのセッション・ブローカの作成方法を示します。

セッション・ブローカは他のセッションを参照するため、セッション・ブローカをインスタンス化する前にこれらのセッションを構成します。必要なディスクリプタをすべてセッションに追加しますが、ディスクリプタは初期化しません。また、セッションにもログインしません。セッション・ブローカをインスタンス化すると、これらの事項は管理されるためです。

例88-4 セッション・ブローカの作成

Project databaseProject = new MyDatabaseProject();
Server databaseSession = databaseProject.createServerSession();

Project eisProject = new MyEISProject();
Server eisSession = eisProject.createServerSession();

SessionBroker sessionBroker = new SessionBroker();
sessionBroker.registerSession("myDatabase", databaseSession);
sessionBroker.registerSession("myEIS", eisSession);

sessionBroker.login();

88.6 データベース・セッションの作成

Oracle JDeveloperまたはTopLink Workbenchを使用してデータベース・セッションを作成することをお薦めします(88.6.1項「TopLink Workbenchを使用したデータベース・セッションの作成方法」を参照)。

データベース・セッションを作成すると、実行時にそれを取得して使用できます。データベース・セッションの取得の詳細は、90.3項「セッション・マネージャからのセッションの取得」を参照してください。

88.6.1 TopLink Workbenchを使用したデータベース・セッションの作成方法

データベース・セッションを作成するには、最初にセッション構成を作成する必要があります(88.2項「セッション構成の作成」を参照)。

TopLinkの新規データベース・セッションを作成するには、次の手順を実行します。

  1. セッションを作成するセッション構成をナビゲータ・ウィンドウで選択します。

  2. 「セッションの追加」ボタン
    ツールバーの「セッションの追加」をクリックします。「新規セッションの作成」ダイアログ・ボックスが表示されます。

    新規の構成は、ナビゲータ・ウィンドウでセッション構成を右クリックし、コンテキスト・メニューから「新規」「セッション」を選択しても作成できます。

    図88-5 「新規セッションの作成」ダイアログ・ボックス、「データベース・セッション」オプション

    図88-5の説明が続きます
    「図88-5 「新規セッションの作成」ダイアログ・ボックス、「データベース・セッション」オプション」の説明

次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。

フィールド 説明
名前 新規セッションの名前を指定します。
サーバー・プラットフォームを使用 アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。

このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。

プラットフォーム このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。

アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。

TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。

  • WebLogic 10.n

  • WebLogic 9.n

  • OC4J 11.1.1

  • OC4J 10.1.3.n

  • SunAS 9.0

  • WebSphere 6.1

  • JBoss

  • カスタム

選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。

データ・ソースの選択 このセッション構成のデータ・ソースを選択します。各セッション構成には、データ・ソースを1つ指定する必要があります。次のいずれかを選択します。
  • データベース: リレーショナル・プロジェクトのセッションを作成します。

  • EIS: EISプロジェクトのセッションを作成します。

  • XML: XMLプロジェクトのセッションを作成します。

詳細は、15.1項「TopLinkプロジェクト・タイプ」を参照してください。

セッションの選択 「データベース・セッション」を選択して、単純なアプリケーションやプロトタイピングに適した単一のクライアント用に単一のデータベース(共有オブジェクト・キャッシュや接続プールを含む)用のセッションを作成します。

必要な情報を入力し、「OK」をクリックします。

TopLink Workbenchのウィンドウが表示され、ナビゲータ・ウィンドウにデータベース・セッションが表示されます。

第89章「セッションの構成」に進んでください。

88.6.2 Javaを使用したデータベース・セッションの作成方法

Javaコードでデータベース・セッションのインスタンスを作成するには、Projectを使用します。Javaコードでプロジェクトを作成しても、またはproject.xmlファイルからプロジェクトを読み取ってもかまいません。

例88-5は、Projectクラスを使用してDatabaseSessionを作成する例を示します。

例88-5 Projectクラスからのデータベース・セッションの作成

Project myProject = new Project();
DatabaseSession databaseSession = myProject.createDatabaseSession();

例88-6は、project.xmlファイルから読み取ったProjectクラスを使用してDatabaseSessionを作成する例を示します。

例88-6 project.xmlファイルのProjectからのデータベース・セッションの作成

Project myProject = XMLProjectReader.read("myproject.xml");
DatabaseSession databaseSession = myProject.createDatabaseSession();

88.7 リモート・セッションの作成

リモート・セッションは、そのサーバー側セッションへのリモート接続を介して取得されます。リモート・セッションは、リモート・クライアントからJavaコードを介して取得されます。また、サーバー側セッションをoracle.toplink.remote.ejb.RemoteSessionControllerに登録し、RMIネーミング・サービスからアクセス可能にする必要もあります。

リモート・セッション全体をJavaコードで作成します(88.7.1項「Javaを使用したリモート・セッションの作成方法」を参照)。

88.7.1 Javaを使用したリモート・セッションの作成方法

例88-7および例88-8は、RMIを使用するサーバー上のリモート・セッション・コントローラと通信するTopLinkのリモート・セッションを、クライアントで作成する方法を示します。接続の作成後、クライアント・アプリケーションでは、その他のTopLinkのセッションを使用するときと同じように、リモート・セッションを使用します。

88.7.1.1 サーバー

例88-7は、RMIRemoteSessionControllerのインスタンスを作成してクライアントに返すコードを示します。このコードは、アプリケーションのRMIサービス(MyRMIServerManagerImpl)に追加してください。コントローラは、リモート・クライアントとTopLinkのローカル・セッションの間にあります。

サーバー上に作成するRMIRemoteSessionControllerは、TopLinkのサーバー・セッションを使用します。このサーバー・セッションの作成および構成については、88.4項「サーバー・セッションの作成」および第91章「サーバー・セッションの構成」を参照してください。

例88-7 クライアント用のRMIRemoteSessionControllerを作成するサーバー

RMIRemoteSessionController controller = null;
try {
    // Create instance of RMIRemoteSessionControllerDispatcher which implements
    // RMIRemoteSessionController. The constructor takes a TopLink session as a parameter
    controller = new RMIRemoteSessionControllerDispatcher (localTopLinkSession);
}
catch (RemoteException exception) {
    System.out.println("Error in invocation " + exception.toString());
}
return controller;

88.7.1.2 クライアント

クライアント側のコードでは、アプリケーションのRMIサービス(この例ではMyRMIServerManager)への参照を取得し、このコードを使用してサーバー上で稼働するRMIRemoteSessionControllerを取得します。次に、セッション・コントローラへの参照を使用してRMIConnectionを作成し、ここからリモート・セッションを取得します。

例88-8 サーバーからRMIRemoteSessionControllerを取得するクライアント

MyRMIServerManager serverManager = null;
// Set the client security manager
try {
    System.setSecurityManager(new MyRMISecurityManager());
}
catch(Exception exception) {
    System.out.println("Security violation " + exception.toString());
}
// Get the remote factory object from the Registry
try {
    serverManager = (MyRMIServerManager) Naming.lookup("SERVER-MANAGER");
}
catch (Exception exception) {
    System.out.println("Lookup failed " + exception.toString());
}
// Start RMIRemoteSession on the server and create an RMIConnection
RMIConnection rmiConnection = null;
try {
    rmiConnection = new RMIConnection(
        serverManager.createRemoteSessionController()
    );
}
catch (RemoteException exception) {
    System.out.println("Error in invocation " + exception.toString());
}
// Create a remote session which we can use as a normal TopLink session
Session session = rmiConnection.createRemoteSession();