この章では、TopLinkデータ・ソース・ログインを構成する方法について説明します。
表82-1は、構成可能なTopLinkデータ・ソース・ログインのタイプと、そのタイプで対応している構成可能オプションが記載されたタイプ別の章への相互参照を示しています。
表82-2に、複数のTopLinkデータ・ソース・ログインのタイプによって共有される構成可能オプションを示します。
sessions.xmlファイルを使用してログイン情報を構成する場合、project.xmlのログイン情報がオーバーライドされ、かわりにsessions.xml構成の情報が使用されます。詳細は、「データ・アクセスの概要」を参照してください。
表82-2に、複数のTopLinkデータ・ソース・ログインのタイプによって共有される構成可能オプションを示します。ここで説明する構成可能オプション以外にも、表82-1に示すように、特定のデータ・ソース・ログインのタイプについて説明しているオプションも構成する必要があります。
必要な場合、ログインのユーザー名およびパスワードを指定できます。
TopLink Workbenchを使用してパスワードを指定する場合、プレーン・テキスト(暗号化されていない)値を入力します。デフォルトでは、TopLink WorkbenchではJCE暗号化を使用した暗号形式でsessions.xmlファイルに対してパスワードの書込みおよび読取りが行われます。パスワード暗号化の構成の詳細は、「パスワード暗号化の構成」を参照してください。
デフォルトでは、パスワードは、JCE暗号化を使用した暗号形式でsessions.xmlファイルに対して書込みおよび読取りが行われます。
現在、TopLink Workbenchでは、使用される暗号化クラスの指定はサポートされていません。使用される暗号化クラスを変更するには、preLoginイベント・リスナーを使用してJavaでログインを変更する必要があります。
非J2EEアプリケーションの場合は通常、TopLinkが提供する内部接続プールを使用します(「内部接続プール」を参照)。この場合、TopLink Workbenchを使用して、接続プールのオプションを構成し、シーケンス接続プールおよびアプリケーション固有の(名前付き)接続プールを作成できます。
J2EEアプリケーションの場合は通常、JDBCドライバまたはJ2EEコンテナが提供する外部接続プールを使用します(「外部接続プール」を参照)。必要な場合、非トランザクション・ログインを使用するように読取り接続プールを構成することや、独自の個別(可能であれば非トランザクション)ログインを使用するようにシーケンス接続プールを構成することが可能です。
JTA外部トランザクション・コントローラはアプリケーション・サーバーが提供する外部トランザクション・サービスに依存するため、トランザクション・コントローラを使用する場合は、外部接続プールを使用するようにTopLinkを構成する必要があります(「作業ユニットと外部トランザクション・サービスの統合」を参照)。
外部接続プールを使用すると、TopLinkアプリケーションで次のことが可能になります。
J2EE対応システムへの統合
JTAトランザクションとの統合(JTAトランザクションはJTA対応のデータ・ソースを必要とします)
複数のアプリケーションが同じデータ・ソースを使用する、共有接続プールの活用
構成と管理が直接サーバーで行われるデータ・ソースの使用
接続プールの詳細は、「接続プール」を参照してください。
セッション・ログインで外部接続プールを使用するかどうかを指定するには、次の手順を実行します。
アプリケーション・サーバーでデータ・ソースを構成します。
外部トランザクション・コントローラとともに外部接続プールを使用する場合(「サーバー・プラットフォームの構成」を参照)、JTA対応のデータ・ソースを構成するようにしてください。
詳細は、J2EEコンテナのドキュメントを参照してください。
ナビゲータでサーバーまたはデータベース・セッションを選択します。そのプロパティがエディタに表示されます。
「ログイン」タブをクリックします。「ログイン」タブが表示されます。
「接続」サブタブをクリックします。「接続」サブタブが表示されます。
図82-1 「ログイン」タブ、「接続」サブタブ、「外部接続プーリング」フィールド、「データベース・ドライバ」

このログインで外部接続プールを使用するかどうかを指定します。データベース・ドライバの場合、外部接続プーリングはオプションです。J2EEデータ・ソースの場合、外部接続プーリングは必須です。
すべてのDatasourceLoginタイプについて、プロパティと呼ばれる名前付きのカスタム値を指定できます。一部のデータ・ソースには、DatasourceLogin APIではサポートされていない別のドライバ固有プロパティが必要です(たとえば、「JDBCドライバ・プロパティの最適化」を参照)。これらのプロパティをDatasourceLoginに追加することにより、TopLinkがこれらをドライバに渡せるようにします。
リレーショナル・セッションの場合、最初に詳細オプションでプロパティの使用を有効にする必要があります(「詳細オプションの構成」を参照)。
EISセッションの場合、プロパティは常に有効です。
|
注意: パスワードをプロパティとして設定しないでください。常にTopLink WorkbenchまたはDatabaseLoginのメソッドsetPasswordを使用してください。パスワードの構成の詳細は、「ユーザー名およびパスワードの構成」を参照してください。 |
TopLink Workbenchを使用する場合、設定できるのは、Stringオブジェクトとして返される文字値のみです(「TopLink Workbenchの使用」を参照)。
Javaを使用する場合、任意のObject値を使用できます(「Javaの使用」を参照)。
DatasourceLoginに関連付けられる任意の名前付き値のペアを指定するには、次の手順を実行します。
新しい「名前/値」プロパティを追加するには、「追加」(または「編集」)をクリックします。プロパティの追加ダイアログ・ボックスが表示されます。
プロパティの追加ダイアログ・ボックスで、次の情報を使用してログイン・プロパティを追加または編集します。
| オプション | 説明 |
|---|---|
| 名前 | TopLinkがDatasourceLoginのメソッドgetPropertyを使用してプロパティ値を取得するための名前。 |
| 値 | TopLinkがDatasourceLoginのメソッドgetPropertyを使用して、対応するプロパティ名を渡して取得する値。
TopLink Workbenchを使用する場合、設定できるのは、 |
既存のプロパティを削除するには、「名前/値」の行を選択し、「削除」をクリックします。
Javaを使用する場合、DatasourceLoginのメソッドsetPropertyを使用して任意のObject値を設定できます。プロパティを削除するには、DatasourceLoginのメソッドremovePropertyを使用します。
デフォルトのNULL値は、TopLinkがnull値をデータ・ソースから読み取るときにnullのかわりに使用するJavaのObjectタイプおよび値です。
デフォルトのNULL値をログイン・レベルで構成すると、セッションで使用されるすべてのマッピングにこの値が適用されます。この場合、TopLinkは、この値を使用して1方向でのみ変換を行います。TopLinkは、データ・ソースからnullを読み取る場合、このnullを指定されたタイプおよび値に変換します。
また、TopLinkを使用して、マッピングごとにデフォルトのNULL値を設定することもできます(「マッピング・レベルでのデフォルトのNULL値の構成」を参照)。
|
注意: デフォルトのNULL値は、Objectである必要があります。プリミティブ値(intなど)を指定するには、対応するObjectラッパー(Integerなど)を使用する必要があります。 |
Java APIを使用する場合、DatabaseLoginのメソッドsetDefaultNullValue(Class,Object)を使用して、セッションで使用されるすべてのマッピングに対してデフォルトのNULL値を構成できます。
例:
// Defaults all null String values read from the database to empty String
session.getLogin().setDefaultNullValue(String.class, "");