この章では、TopLinkセッションの作成方法について説明します。
この章の内容は次のとおりです。
使用可能な様々なセッション・タイプの詳細は、87.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章「実行時のセッションの取得と使用」を参照)。
Oracle JDeveloper TopLinkエディタおよびTopLink Workbenchを使用すると、セッション・インスタンスを作成してsessions.xml
ファイルに保存できます。これらのツールでは、sessions.xml
ファイルはセッション構成として表されます。各セッション・インスタンスはこのセッション構成内に格納されています。複数のセッション構成を作成でき、それぞれには、独自の一意名を持った対応するsessions.xml
ファイルがあります。
セッションの作成および管理には、Oracle JDeveloperを使用することをお薦めします。これが、セッション管理には最も効率的で柔軟なアプローチです。このアプローチの利点の詳細は、87.2.2項「セッションの構成とsessions.xmlファイル」を参照してください。
TopLink Workbenchは、セッション構成とその内容をナビゲータ・ウィンドウに表示します。セッション構成を選択すると、その属性がエディタ・ウィンドウに表示されます。
図88-1には、次の各ユーザー・インタフェース要素がコールアウトで示されています。
セッション構成
データベース・セッション
リレーショナル・サーバー・セッション
接続プール
EISサーバー・セッション
XMLセッション
セッション・ブローカ
TopLinkのセッション構成(sessions.xml
ファイル)を作成するには、次の手順を実行します。
ツールバーの「新規」をクリックして、「セッション構成」を選択します。
また、新規セッション構成は、メニューから「ファイル」→「新規」→「セッション構成」を選択するか、標準ツールバーで「新規セッション構成の作成」をクリックしても作成できます。
新規セッション構成の要素がナビゲータ・ウィンドウに表示され、「セッション構成」プロパティ・シートがエディタ・ウィンドウに表示されます。
「セッション構成」プロパティ・シートの各フィールドにデータを入力します(88.3項「セッション構成の構成」を参照)。
各TopLinkセッション構成(sessions.xml
ファイル)には、複数のセッションとセッション・ブローカを含めることができます。また、含めたすべてのセッションに適用される各セッション構成のクラスパスを指定できます。
ナビゲータでセッション構成を選択します。そのプロパティがエディタに表示されます。
次の情報を参照し、「セッション構成」プロパティ・シートの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
プロジェクトの保存場所 | 「変更」をクリックして、セッション構成の保存先となるディレクトリを選択します。 |
クラスパス | このセッション構成が外部Javaクラス(セッション・イベント・リスナーなど)を必要とする諸機能について依存する、コンパイル済のJavaクラスが含まれたJARまたはZIPファイルがリストされます。
|
''< sessions configuration name > ''のセッション |
このセッション構成に定義済の使用可能なセッションがリストされます。
TopLink Workbenchを使用したセッション作成の詳細は、次の項を参照してください。 |
Oracle JDeveloperまたはTopLink Workbenchを使用してサーバー・セッションを作成することをお薦めします(88.4.1項「TopLink Workbenchを使用したサーバー・セッションの作成方法」を参照)。
サーバー・セッションの作成後、クライアント・セッションをサーバー・セッションから取得、作成します(90.4項「クライアント・セッションの取得」を参照)。
サーバー・セッションを作成するには、最初にセッション構成を作成する必要があります(88.2項「セッション構成の作成」を参照)。
TopLinkの新規サーバー・セッションを作成するには、次の手順を実行します。
セッションを作成するセッション構成をナビゲータ・ウィンドウで選択します。
ツールバーの「セッションの追加」をクリックします。「新規セッションの作成」ダイアログ・ボックスが表示されます。
新規サーバー・セッションは、ナビゲータでセッション構成を右クリックして、コンテキスト・メニューから「新規」→「セッション」を選択しても作成できます。あるいは、「セッション構成」プロパティ・シートの「セッションの追加」をクリックしても作成できます。
次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
名前 | 新規セッションの名前を指定します。 |
サーバー・プラットフォームを使用 | アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。
このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。 |
プラットフォーム | このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。
アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。 TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。
選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。 |
データ・ソースの選択 | このセッション構成のデータ・ソースを選択します。各セッション構成には、データ・ソースを1つ指定する必要があります。次のいずれかを選択します。
詳細は、15.1項「TopLinkプロジェクト・タイプ」を参照してください。 |
セッションの選択 | 「サーバー・セッション」を選択して、3層アプリケーションの複数のクライアント用に単一のデータ・ソース(共有オブジェクト・キャッシュや接続プールなど)用のセッションを作成します。 |
脚注1 XMLプロジェクト用のサーバー・セッションは作成できません。
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です。
セッション・ブローカは、サーバー・セッションとデータベース・セッションの両方を対象とすることができます。サーバー・セッションを指定してセッション・ブローカを使用することをお薦めします。サーバー・セッションが最もスケーラブルなセッション・タイプのためです。
Oracle JDeveloperまたはTopLink Workbenchを使用してサーバー・セッションを作成することをお薦めします(88.5.1項「TopLink Workbenchを使用したセッション・ブローカおよびクライアント・セッションの作成方法」を参照)。
サーバー・セッションを指定してセッション・ブローカを作成、構成した後は、実行時にセッション・ブローカからクライアント・セッションを取得して、各クライアントについてセッション・ブローカによって管理されているすべてのデータ・ソースへの専用接続を提供できます。詳細は、90.4項「クライアント・セッションの取得」を参照してください。
セッション・ブローカ・セッションを作成するには、最初にセッション構成(88.2項「セッション構成の作成」を参照)と、1つ以上のサーバー・セッション(88.4項「サーバー・セッションの作成」を参照)、または1つ以上のデータベース・セッション(88.6項「データベース・セッションの作成」を参照)を作成する必要があります。
TopLinkの新規セッション・ブローカを作成するには、次の手順を実行します。
セッション・ブローカを作成するセッション構成をナビゲータ・ウィンドウで選択します。
ツールバーの「セッション・ブローカの追加」をクリックします。「新規セッション・ブローカの作成」ダイアログ・ボックスが表示されます。
新規セッション・ブローカは、ナビゲータ・ウィンドウのセッション構成を右クリックして、コンテキスト・メニューから「セッション・ブローカの追加」を選択しても作成できます。あるいは、「セッション構成」プロパティ・シートの「セッション・ブローカの追加」をクリックしても作成できます。
次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
名前 | 新規セッション・ブローカの名前を指定します。 |
サーバー・プラットフォームを使用 | アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。
このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。 |
プラットフォーム | このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。
アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。 TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。
選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。 |
管理するセッションの選択 | この新規セッション・ブローカによって管理するセッションを(使用可能なセッションのリストから)選択し、「OK」をクリックします。
注意: このフィールドが表示されるのは、構成に有効なセッションが含まれる場合のみです。 |
第89章「セッションの構成」に進んでください。
例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();
Oracle JDeveloperまたはTopLink Workbenchを使用してデータベース・セッションを作成することをお薦めします(88.6.1項「TopLink Workbenchを使用したデータベース・セッションの作成方法」を参照)。
データベース・セッションを作成すると、実行時にそれを取得して使用できます。データベース・セッションの取得の詳細は、90.3項「セッション・マネージャからのセッションの取得」を参照してください。
データベース・セッションを作成するには、最初にセッション構成を作成する必要があります(88.2項「セッション構成の作成」を参照)。
TopLinkの新規データベース・セッションを作成するには、次の手順を実行します。
セッションを作成するセッション構成をナビゲータ・ウィンドウで選択します。
ツールバーの「セッションの追加」をクリックします。「新規セッションの作成」ダイアログ・ボックスが表示されます。
新規の構成は、ナビゲータ・ウィンドウでセッション構成を右クリックし、コンテキスト・メニューから「新規」→「セッション」を選択しても作成できます。
図88-5 「新規セッションの作成」ダイアログ・ボックス、「データベース・セッション」オプション
次の情報を参照し、ダイアログ・ボックスの各フィールドにデータを入力します。
フィールド | 説明 |
---|---|
名前 | 新規セッションの名前を指定します。 |
サーバー・プラットフォームを使用 | アプリケーションをJava EEアプリケーション・サーバーにデプロイする場合、このフィールドを選択します。
このフィールドを選択した場合、「プラットフォーム」を選択してターゲット・アプリケーション・サーバーを構成する必要があります。 |
プラットフォーム | このオプションは、「サーバー・プラットフォームを使用」を選択した場合にのみ使用可能になります。
アプリケーションのデプロイ先となるJava EEアプリケーション・サーバーを選択します。 TopLinkでは、次のJava EEアプリケーション・サーバーがサポートされます。
選択するサーバー・プラットフォームは、このセッション構成で作成するすべてのセッションのデフォルトのサーバー・プラットフォームになります。セッション・レベルで、この選択をオーバーライドするか、カスタム・サーバー・プラットフォーム・クラスを指定できます(89.9項「サーバー・プラットフォームの構成」を参照)。 |
データ・ソースの選択 | このセッション構成のデータ・ソースを選択します。各セッション構成には、データ・ソースを1つ指定する必要があります。次のいずれかを選択します。
詳細は、15.1項「TopLinkプロジェクト・タイプ」を参照してください。 |
セッションの選択 | 「データベース・セッション」を選択して、単純なアプリケーションやプロトタイピングに適した単一のクライアント用に単一のデータベース(共有オブジェクト・キャッシュや接続プールを含む)用のセッションを作成します。 |
必要な情報を入力し、「OK」をクリックします。
TopLink Workbenchのウィンドウが表示され、ナビゲータ・ウィンドウにデータベース・セッションが表示されます。
第89章「セッションの構成」に進んでください。
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
を作成する例を示します。
リモート・セッションは、そのサーバー側セッションへのリモート接続を介して取得されます。リモート・セッションは、リモート・クライアントからJavaコードを介して取得されます。また、サーバー側セッションをoracle.toplink.remote.ejb.RemoteSessionController
に登録し、RMIネーミング・サービスからアクセス可能にする必要もあります。
リモート・セッション全体をJavaコードで作成します(88.7.1項「Javaを使用したリモート・セッションの作成方法」を参照)。
例88-7および例88-8は、RMIを使用するサーバー上のリモート・セッション・コントローラと通信するTopLinkのリモート・セッションを、クライアントで作成する方法を示します。接続の作成後、クライアント・アプリケーションでは、その他のTopLinkのセッションを使用するときと同じように、リモート・セッションを使用します。
例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;
クライアント側のコードでは、アプリケーションの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();