この章では、内部接続プールを使用するために構成が必要な各種コンポーネントについて説明します。
この章の内容は次のとおりです。
表101-1は、内部接続プールの構成可能オプションを示します。
サーバー・セッションを使用する場合、デフォルトの読取り接続プールおよび書込み接続プールを構成できます。また、作成したオプションの名前付き接続プールおよびシーケンス接続プールを構成することもできます(100.1項「内部接続プールの作成の概要」を参照)。
表101-1は、内部接続プールの構成可能オプションを示します。
表101-1 接続プールの構成可能オプション
構成オプション | Oracle JDeveloper |
TopLink Workbench |
Java |
---|---|---|---|
接続プール・サイズ(101.2項「接続プール・サイズの構成」を参照) |
|
|
|
排他読取り接続(101.6項「排他読取り接続の構成」を参照)脚注1 |
|
|
|
非トランザクション読取りログイン(101.4項「非トランザクション読取りログインの構成」を参照)脚注1 |
|
|
|
プロパティ(101.3項「プロパティの構成」を参照) |
|
|
|
接続プールの接続オプション(101.5項「接続プールの接続オプションの構成」を参照)脚注2 脚注3 |
|
|
|
脚注1 読取り接続プールのみ。
脚注2 書込み接続プールは対象外です。
脚注3 シーケンス接続プールに適用されます。
デフォルトでは、TopLinkの内部接続プールを使用する場合、TopLinkの書込み接続プールは最低5つから最高10の接続を保持します。読取り接続プールは、最低および最高2つの接続を保持します。
接続プールのサイズは、アプリケーションの同時実行性に大きく影響する可能性があるため、予期されるアプリケーションの負荷を処理するために十分な大きさに設定する必要があります。
ヒント: 多数の接続をサポートしないJDBCドライバとの互換性を維持するには、デフォルトの接続数を小さくします。JDBCドライバがサポートする場合は、読取りおよび書込みに対して多数の接続数を使用します。 |
入力可能な最小値は0です。最大接続数を0に設定すると、TopLinkは接続を割り当てることができなくなります。
最小接続数は常に最大接続数以下にする必要があります。
接続が最大数まで使用されている場合、次の接続リクエストは接続が使用可能になるまでブロックされます。
Oracle JDeveloper TopLinkエディタ、TopLink Workbench(101.2.1項「TopLink Workbenchを使用した接続プール・サイズの構成方法」を参照)またはJava(101.2.2項「Javaを使用した接続プール・サイズの構成方法」を参照)を使用して接続プール・サイズを構成できます。
TopLinkの内部接続プールで最小および最大接続数を指定するには、次の手順を実行します。
ナビゲータでサーバー・セッションを開き、その接続プールを表示します。
ナビゲータで接続プールを選択します。そのプロパティがエディタに表示されます。
「一般」タブをクリックします。「一般」タブが表示されます。
目的の最小接続数および最大接続数を入力して[Enter]を押すか、上下矢印を使用して値を増減します。
Javaを使用する場合、setMaxNumberOfConnections
およびsetMinNumberOfConnection
メソッドを使用して接続プール・サイズを設定できます。
例101-1は、読取り接続の接続プール・サイズの構成方法を示します。
書込み接続プールを除くすべての接続プールについて、プロパティと呼ばれる任意の名前付きの値を指定できます。
一部のデータ・ソースには、ConnectionPool
APIではサポートされていない別のドライバ固有プロパティが必要です。これらのプロパティをConnectionPool
に追加することにより、TopLinkがこれらをドライバに渡せるようにします。
Oracle JDeveloper TopLinkエディタ、TopLink Workbench(101.3.1項「TopLink Workbenchを使用したプロパティの構成方法」を参照)またはJava(101.3.2項「Javaを使用したプロパティの構成方法」を参照)を使用してプロパティを構成できます。
ConnectionPool
に関連付けられる任意の名前付き値のペアを指定するには、次の手順を実行します。
ナビゲータでサーバー・セッションを開き、その接続プールを表示します。
ナビゲータで読取り、名前付きまたはシーケンス接続プールを選択します。そのプロパティがエディタに表示されます。
「ログイン」タブをクリックします。「ログイン」タブが表示されます。
「プロパティ」サブタブをクリックします。「プロパティ」サブタブが表示されます。
プロパティの追加ダイアログ・ボックスを指定します。
プロパティの追加ダイアログ・ボックスで次の情報を使用してログイン・プロパティを追加または編集し、ログイン・プロパティを追加または編集します。
オプション | 説明 |
---|---|
名前 | TopLinkがDatasourceLogin のメソッドgetProperty を使用してプロパティ値を取得するための名前。 |
値 | TopLinkがDatasourceLogin のメソッドgetProperty を使用して、対応するプロパティ名を渡して取得する値。
TopLink Workbenchを使用する場合、設定できるのは、 |
新しい「名前/値」プロパティを追加するには、「追加」(または「編集」)をクリックします。
既存のプロパティを削除するには、「名前/値」の行を選択し、「削除」をクリックします。
Javaを使用する場合、DatasourceLogin
のメソッドsetProperty
を使用して任意のObject
値を設定できます。プロパティを削除するには、DatasourceLogin
のメソッドremoveProperty
を使用します。
外部トランザクション・コントローラを使用する場合(89.9項「サーバー・プラットフォームの構成」を参照)、接続を確立するには、通常の接続設定のオーバーヘッドのみでなく、トランザクションのオーバーヘッドも必要です。アプリケーションが表示のみを目的としてデータを読み取る場合や、ごくまれにデータを変更する場合、外部トランザクション・コントローラを使用しない独自の接続仕様を使用するよう、内部読取り接続プールを構成できます。これにより、新規読取り接続の確立に要する時間を短縮し、パフォーマンスを向上できます。
Oracle JDeveloper TopLinkエディタ、TopLink Workbench(101.4.1項「TopLink Workbenchを使用した非トランザクション読取りログインの構成方法」を参照)またはJava(101.4.2項「Javaを使用した非トランザクション読取りログインの構成方法」を参照)を使用して非トランザクション読取りログインを構成できます。
TopLinkの読取り接続プールに対する非トランザクション接続情報の構成を有効にするには、次の手順を実行します。
ナビゲータでサーバー・セッションを開き、その接続プールを表示します。
ナビゲータで読取り接続プールを選択します。そのプロパティがエディタに表示されます。
「ログイン」タブをクリックします。「ログイン」タブが表示されます。
「接続」サブタブをクリックします。「接続」サブタブが表示されます。
非トランザクション読取りログインを有効にするには、「非トランザクション読取りログイン」オプションを選択します(96.1.1項「外部管理トランザクション・データ・ソース」を参照)。101.5項「接続プールの接続オプションの構成」に進み、接続情報を指定します。
接続プールのgetLogin
メソッドを使用してDatabaseLogin
を取得し、次のDatabaseLogin
メソッドを使用して非トランザクション読取りログインのオプションを構成します。
useExternalTransactionController
setDriverClass
setDriverClassName
setDriverURLHeader
デフォルトでは、接続プールには、セッションに指定されているログイン構成が使用されます(98.3項「データベース・ログインの接続オプションの構成」および99.3項「セッション・レベルでのEIS接続仕様オプションの構成」を参照)。
読取り、名前付きおよびシーケンス接続プールの場合、接続プール別にセッション・ログイン構成をオーバーライドできます。
読取り接続プールに対してログイン構成を構成するには、最初に非トランザクション読取りログインについて有効にする必要があります(101.4項「非トランザクション読取りログインの構成」を参照)。
Oracle JDeveloper TopLinkエディタまたはTopLink Workbench(101.5.1項「TopLink Workbenchを使用した接続プールの接続オプションの構成方法」を参照)を使用して接続プールの接続オプションを構成できます。
TopLinkの読取り、名前付きまたはシーケンス接続プールの接続情報を構成するには、次の手順を実行します。
ナビゲータでサーバー・セッションを開き、その接続プールを表示します。
ナビゲータで読取り、名前付きまたはシーケンス接続プールを選択します。そのプロパティがエディタに表示されます。
「ログイン」タブをクリックします。「ログイン」タブが表示されます。
「接続」サブタブをクリックします。「接続」サブタブが表示されます。
図101-4 「ログイン」タブ、「接続」サブタブ、リレーショナル・セッションの接続プール・オプション
「非トランザクション読取りログイン」オプションが選択されていることを確認します。
次の情報を参照し、「接続」サブタブのフィールドを指定します。
フィールド | 説明 |
---|---|
データベース・ドライバ脚注1 | 適切なデータベース・ドライバを指定します。
注意: 「J2EEデータ・ソース」を選択する場合、外部接続プールを使用する必要があります。この「データベース・ドライバ」オプションの場合、内部接続プールは使用できません(詳細は、97.4項「外部接続プーリングの構成」を参照してください)。 |
ドライバ・クラス脚注1 | 「データベース・ドライバ」が「ドライバ・マネージャ」に設定されている場合はこのフィールドを構成します。オプションのメニューから選択します。このメニューには、TopLinkアプリケーション・クラスパスのすべてのJDBCドライバが含まれます。 |
URL脚注1 | 「データベース・ドライバ」が「ドライバ・マネージャ」に設定されている場合はこのフィールドを構成します。選択した「ドライバ・クラス」に関連するオプションのメニューから選択し、データ・ソースに合せてURLを編集します。 |
データ・ソース名脚注1 | 「データベース・ドライバ」が「J2EEデータ・ソース」に設定されている場合はこのフィールドを構成します。ターゲット・アプリケーション・サーバーで事前に構成されているJava EEデータ・ソースを示す有効なJNDI名を指定します(例: jdbc/EmployeeDB )。
慣例により、このような名前はすべて(提供されるすべてのリソース・ファクトリのルートである標準の |
接続仕様クラス脚注2 | 選択したプラットフォームに適切な接続仕様クラスを指定します。TopLinkクラスパスのすべてのクラスから選択する場合、「参照」をクリックします。(たとえば、「プラットフォーム」がoracle.toplink.eis.aq.AQPlatform である場合、oracle.toplink.eis.aq.AQEISConnectionSpec を使用します。)
プラットフォーム構成の詳細は、99.2項「セッション・レベルでのEISデータ・ソース・プラットフォームの構成」を参照してください。 |
コネクション・ファクトリURL脚注2 | 選択した「接続仕様クラス」に適したコネクション・ファクトリURLを指定します(例: jdbc:oracle:thin@:localhost:1521:orcl )。 |
脚注1 DatabaseLogin
が含まれるセッションの場合。
脚注2 EISLogin
が含まれるセッションの場合。
排他接続は、TopLinkが特定のセッションに対して割り当て、その他の任意のセッションによって使用されない接続です。
同じ接続で同時読取りを可能にすると、必要な読取り接続数が減り、接続が使用可能になるまで待機する必要があるリスクが軽減されます。ただし、多くのJDBCドライバは同時読取りをサポートしていません。
内部接続プールを使用する場合(96.1.6.1「内部接続プール」を参照)、読取り接続プールから排他接続を取得するようにTopLinkを構成できます。
デフォルトでは、TopLinkは排他読取り接続を取得します。
外部接続プールを使用する場合、読取り接続は常に排他的です。
Oracle JDeveloper TopLinkエディタまたはTopLink Workbench(101.6.1項「TopLink Workbenchを使用した排他読取り接続の構成方法」を参照)を使用して接続プールのサイズを構成できます。
排他接続を割り当てるようにTopLinkの読取り接続プールを構成にするには、次の手順を実行します。
ナビゲータでサーバー・セッションを開き、その接続プールを表示します。
ナビゲータで読取り接続プールを選択します。そのプロパティがエディタに表示されます。
「ログイン」タブをクリックします。「ログイン」タブが表示されます。
「接続」サブタブをクリックします。「接続」サブタブが表示されます。
TopLinkが読取り接続プールから排他接続を取得するように構成する場合、「排他接続」オプションを選択します。
TopLinkが読取り接続を共有し、同時読取りを許可するよう構成する場合、「排他接続」オプションの選択を解除します。このオプションを選択する前に、JDBCドライバが同時読取りをサポートしていることを確認します。