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

戻る
戻る
 
次へ
次へ
 

97 データ・ソース・ログインの構成

この章では、TopLinkデータ・ソース・ログインを構成する方法について説明します。

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

表97-1は、構成可能なTopLinkデータ・ソース・ログインのタイプと、そのタイプで対応している構成可能オプションが記載されたタイプ別の章への相互参照を示します。

表97-1 TopLinkデータ・ソース・ログインの構成

構成対象 参照先

DatabaseLogin


第98章「データベース・ログインの構成」


EISLogin


第99章「EISログインの構成」



表97-2は、複数のTopLinkデータ・ソース・ログインのタイプによって共有される構成可能オプションを示します。

sessions.xmlファイルを使用してログイン情報を構成する場合、project.xmlのログイン情報がオーバーライドされ、かわりにsessions.xml構成の情報が使用されます。

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

97.1 共通データ・ソース・ログインのオプションの構成

表97-2は、複数のTopLinkデータ・ソース・ログインのタイプによって共有される構成可能オプションを示します。ここで説明する構成可能オプション以外にも、表97-1に示すように、特定のデータ・ソース・ログインのタイプ(96.1.2項「データ・ソース・ログインのタイプ」を参照)について説明しているオプションも構成する必要があります。

表97-2 共通データ・ソース・ログインのオプション

構成オプション Oracle JDeveloper
TopLink Workbench
Java

ユーザー名およびパスワード(97.2項「ユーザー名およびパスワードの構成」を参照)

サポートされている
サポートされている
サポートされている

パスワード暗号化(97.3項「パスワード暗号化の構成」を参照)

サポートされていない
サポートされていない
サポートされている

外部接続プーリング(97.4項「外部接続プーリングの構成」を参照)

サポートされている
サポートされている
サポートされている

プロパティ(97.5項「プロパティの構成」を参照)

サポートされている
サポートされている
サポートされている

デフォルトのNULL値(97.6項「ログイン・レベルでのデフォルトのNULL値の構成」を参照)

サポートされていない
サポートされていない
サポートされている

97.2 ユーザー名およびパスワードの構成

必要な場合、ログインのユーザー名およびパスワードを指定できます。

デプロイ・ログインにはパスワードを保存しないことをお薦めします。

TopLinkツールまたはJavaを使用してパスワードを指定する場合、プレーン・テキスト(暗号化されていない)値を入力します。TopLinkでは、JCE暗号化によってパスワードが暗号化されます。

デフォルトでは、JCE暗号化を使用した暗号形式でsessions.xmlファイルに対してパスワードの書込みおよび読取りが行われます。

デフォルトでは、プロジェクト・レベルのデータ・ソース・ログインを適切に構成していない場合、TopLinkではproject.xmlファイルに対してパスワードの書込みおよび読取りが行われません。TopLinkでproject.xmlファイルに対してパスワードの書込みおよび読取りを行うように構成する場合、デフォルトでは、JCE暗号化使用した暗号形式で行われます。

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

97.2.1 TopLink Workbenchを使用したユーザー名およびパスワードの構成方法

ユーザー名およびパスワードを指定するには、次の手順を実行します。

  1. ナビゲータでサーバーまたはデータベース・セッションを選択します。そのプロパティがエディタに表示されます。

  2. 「ログイン」タブをクリックします。「ログイン」タブが表示されます。

  3. 「接続」サブタブをクリックします。「接続」サブタブが表示されます。

    図97-1 「ログイン」タブ、「接続」サブタブ、「ユーザー名」および「パスワード」フィールド

    図97-1の説明が続きます
    「図97-1 「ログイン」タブ、「接続」サブタブ、「ユーザー名」および「パスワード」フィールド」の説明

  4. プレーン・テキスト(暗号化されていない)でユーザー名およびパスワードを入力します。

プレーン・テキスト(暗号化されていない)でユーザー名およびパスワードを入力します。

関連項目

ユーザー名およびパスワードの構成

関連項目

ユーザー名およびパスワードの構成

97.3 パスワード暗号化の構成

デフォルトでは、JCE暗号化を使用した暗号形式でsessions.xmlファイルに対してパスワードの書込みおよび読取りが行われます。

デフォルトでは、プロジェクト・レベルのデータ・ソース・ログインを適切に構成していない場合、TopLinkではproject.xmlファイルに対してパスワードの書込みおよび読取りが行われません。TopLinkでproject.xmlファイルに対してパスワードの書込みおよび読取りを行うように構成する場合、デフォルトでは、JCE暗号化使用した暗号形式で行われます。

独自の暗号化クラスを実装し、セッションDatasourceLoginで使用されるように構成できます。

現在、Oracle JDeveloperまたはTopLink Workbenchのいずれにおいても、使用される暗号化クラスの指定はサポートされていません。使用される暗号化クラスを変更するには、Javaでログインを変更する必要があります。

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

97.3.1 Javaを使用したパスワード暗号化の構成方法

パスワード暗号化クラスを構成するには、次の手順に従います。

  1. 暗号化クラスを作成します。

    暗号化クラスは、oracle.toplink.internal.security.Securableインタフェースを実装する必要があります(例97-1を参照)。

    例97-1 Securableを実装するカスタム暗号化クラス

    import oracle.toplink.internal.security.Securable;
    
    public class MyEncryptor implements Securable {
    
        public String encryptPassword(String pswd) {
        ...
        }
    
        public String decryptPassword(String encryptedPswd) {
        ...
        }
    
    }
    
  2. 暗号化クラスを使用してセッションを構成するには、DatasourceLoginメソッドであるsetEncryptionClassNameを呼び出すpreLoginイベント用にセッション・イベント・リスナー・クラスを作成します。

    SessionEventAdapterを使用してセッション・イベント・リスナーを簡略化します(例97-2を参照)。

    例97-2 セッション・イベント・リスナーにおけるカスタム暗号化クラスの指定

    import oracle.toplink.tools.sessionconfiguration.SessionEventAdapter;
    import oracle.toplink.sessions.SessionEvent;
    import oracle.toplink.sessions.Session;
    import oracle.toplink.sessions.DatasourceLogin;
    
    public class MySessionEventListener extends SessionEventAdapter {
    
        public void preLogin(SessionEvent event) {
            Session session = event.getSession();
            DatasourceLogin login = session.getDatasourceLogin();
            login.setEncryptionClassName(MyEncryptor.class.getName());
        }
    }
    
  3. セッション・イベント・リスナー・クラスをセッションと関連付けます。

    詳細は、89.10項「セッション・イベント・リスナーの構成」を参照してください。

97.4 外部接続プーリングの構成

非Java EEアプリケーションの場合は通常、TopLinkが提供する内部接続プールを使用します(96.1.6.1項「内部接続プール」を参照)。この場合、Oracle JDeveloperまたはTopLink Workbenchを使用して、接続プールのオプションを構成し、シーケンス接続プールおよびアプリケーション固有の(名前付き)接続プールを作成できます。

Java EEアプリケーションの場合は通常、JDBCドライバまたはJava EEコンテナが提供する外部接続プールを使用します(96.1.6.2項「外部接続プール」を参照)。必要な場合、非トランザクション・ログインを使用するように読取り接続プールを構成することや、独自の個別(可能であれば非トランザクション)ログインを使用するようにシーケンス接続プールを構成することが可能です。

JTA外部トランザクション・コントローラはアプリケーション・サーバーから提供される外部トランザクション・サービスに依存するため、外部トランザクション・コントローラを使用する場合は、外部接続プールを使用するようにTopLinkを構成する必要があります(115.13項「作業ユニットと外部トランザクション・サービスの統合」を参照)。

外部接続プールを使用すると、TopLinkアプリケーションで次のことが可能になります。

接続プールの詳細は、96.1.6項「接続プール」を参照してください。

97.4.1 TopLink Workbenchを使用した外部接続プーリングの構成方法

セッション・ログインで外部接続プールを使用するかどうかを指定するには、次の手順を実行します。

  1. アプリケーション・サーバーでデータ・ソースを構成します。

    外部トランザクション・コントローラとともに外部接続プールを使用する場合(89.9項「サーバー・プラットフォームの構成」を参照)、JTA対応のデータ・ソースを構成するようにしてください。

    詳細は、Java EEコンテナのドキュメントを参照してください。

  2. ナビゲータでサーバーまたはデータベース・セッションを選択します。そのプロパティがエディタに表示されます。

  3. 「ログイン」タブをクリックします。「ログイン」タブが表示されます。

  4. 「接続」サブタブをクリックします。「接続」サブタブが表示されます。

    図97-2 「ログイン」タブ、「接続」サブタブ、「外部接続プーリング」フィールド、「データベース・ドライバ」

    図97-2の説明が続きます
    「図97-2 「ログイン」タブ、「接続」サブタブ、「外部接続プーリング」フィールド、「データベース・ドライバ」」の説明

    図97-3 「接続」タブ、「外部接続プーリング」フィールド、J2EEデータ・ソース

    図97-3の説明が続きます
    「図97-3 「接続」タブ、「外部接続プーリング」フィールド、J2EEデータ・ソース」の説明

このログインで外部接続プールを使用するかどうかを指定します。データベース・ドライバの場合、外部接続プーリングはオプションです。Java EEデータ・ソースの場合、外部接続プーリングは必須です。

97.4.2 Javaを使用した外部接続プーリングの構成方法

Javaで外部接続プールを構成するには、次の手順を実行します。

  1. アプリケーション・サーバーでデータ・ソースを構成します。

    外部トランザクション・コントローラとともに外部接続プールを使用する場合(89.9項「サーバー・プラットフォームの構成」を参照)、JTA対応のデータ・ソースを構成するようにしてください。

    詳細は、Java EEコンテナのドキュメントを参照してください。

  2. データ・ソースを指定し、useExternalConnectionPoolingメソッドを使用して外部接続プーリングを使用するようにDatasourceLoginを構成します。

97.5 プロパティの構成

すべてのDatasourceLoginタイプについて、プロパティと呼ばれる名前付きのカスタム値を指定できます。一部のデータ・ソースには、DatasourceLogin APIではサポートされていない別のドライバ固有プロパティが必要です(たとえば、12.11.1項「JDBCドライバ・プロパティの最適化方法」を参照)。これらのプロパティをDatasourceLoginに追加することにより、TopLinkがこれらをドライバに渡せるようにします。

リレーショナル・セッションの場合、最初に詳細オプションでプロパティの使用を有効にする必要があります(98.7項「詳細オプションの構成」を参照)。

EISセッションの場合、プロパティは常に有効です。


注意:

パスワードをプロパティとして設定しないでください。常にOracle JDeveloper、TopLink Workbench、またはDatabaseLoginのメソッドsetPasswordを使用してください。パスワードの構成の詳細は、97.2項「ユーザー名およびパスワードの構成」を参照してください。

TopLink Workbenchを使用する場合、設定できるのは、Stringオブジェクトとして返される文字値のみです(97.5.1項「TopLink Workbenchを使用したプロパティの構成方法」を参照)。

Javaを使用する場合、任意のObject値を設定できます(97.5.2項「Javaを使用したプロパティの構成方法」を参照)。

97.5.1 TopLink Workbenchを使用したプロパティの構成方法

DatasourceLoginに関連付けられる任意の名前付き値のペアを指定するには、次の手順を実行します。

  1. ナビゲータでサーバーまたはデータベース・セッションを選択します。そのプロパティがエディタに表示されます。

  2. 「ログイン」タブをクリックします。「ログイン」タブが表示されます。

  3. 必要に応じて、プロパティのサポートを有効にします。

    • リレーショナル・セッションの場合、最初に詳細オプションでプロパティの使用を有効にする必要があります(98.7項「詳細オプションの構成」を参照)。

    • EISセッションの場合、プロパティは常に有効です。

  4. 「プロパティ」サブタブをクリックします。「プロパティ」サブタブが表示されます。

    図97-4 「ログイン」タブ、「プロパティ」サブタブ

    図97-4の説明が続きます
    「図97-4 「ログイン」タブ、「プロパティ」サブタブ」の説明

新しい「名前/値」プロパティを追加するには、「追加」(または「編集」)をクリックします。プロパティの追加ダイアログ・ボックスが表示されます。

プロパティの追加ダイアログ・ボックスで、次の情報を使用してログイン・プロパティを追加または編集します。

オプション 説明
名前 TopLinkがDatasourceLoginのメソッドgetPropertyを使用してプロパティ値を取得するための名前。
TopLinkがDatasourceLoginのメソッドgetPropertyを使用して、対応するプロパティ名を渡して取得する値。

TopLink Workbenchを使用する場合、設定できるのは、Stringオブジェクトとして返される文字値のみです。


既存のプロパティを削除するには、「名前/値」の行を選択し、「削除」をクリックします。

97.5.2 Javaを使用したプロパティの構成方法

Javaを使用する場合、DatasourceLoginのメソッドsetPropertyを使用して任意のObject値を設定できます。プロパティを削除するには、DatasourceLoginのメソッドremovePropertyを使用します。

97.6 ログイン・レベルでのデフォルトのNULL値の構成

デフォルトのNULL値は、TopLinkがnull値をデータ・ソースから読み取るときにnullのかわりに使用するJavaのObjectタイプおよび値です。

デフォルトのNULL値をログイン・レベルで構成すると、セッションで使用されるすべてのマッピングにこの値が適用されます。この場合、TopLinkは、この値を使用して1方向でのみ変換を行います。TopLinkは、データ・ソースからnullを読み取る場合、このnullを指定されたタイプおよび値に変換します。

また、TopLinkを使用して、マッピングごとにデフォルトのNULL値を設定することもできます(121.5項「マッピング・レベルでのデフォルトのNULL値の構成」を参照)。


注意:

デフォルトのNULL値は、Objectである必要があります。プリミティブ値(intなど)を指定するには、対応するObjectラッパー(Integerなど)を使用する必要があります。

97.6.1 Javaを使用したログイン・レベルでのデフォルトのNULL値の構成方法

Java APIを使用する場合、DatabaseLoginのメソッドsetDefaultNullValue(Class,Object)を使用して、セッションで使用されるすべてのマッピングに対してデフォルトのNULL値を構成できます。

次に例を示します。

// Defaults all null String values read from the database to empty String
session.getLogin().setDefaultNullValue(String.class, "");