接続プール
本製品 は標準JDBCコネクションプーリングを実装しています 。プーリングの有効化にはUseConnectionPooling を設定します。次のセクションでは、それらの設定および使用方法について説明します。
プールされた接続の操作
プールされていない接続との通信と同じように、標準JDBC オブジェクトを使って接続を開いたり、閉じたりすることができます。この場合、取得された Connection オブジェクトは、コネクションプールにより所有される物理的接続のハンドルです。接続が閉じられると、接続が廃棄されずにハンドルがプールに戻され、次の接続リクエストに使われます。
プールに戻されるには、明示的に接続を閉じなければなりません。
コネクションプールの設定
UseConnectionPooling に加え、次の接続プロパティを設定し、コネクションプールをコントロールします。
- PoolMaxSize:同時に開ける接続の最大数を定義します。
- PoolIdleTimeout:どのくらいの時間接続プールで接続がアイドル状態を維持できるかを設定します。この制限を超えた場合、接続はプールから削除されます。
- PoolWaitTime:どのくらいの時間新しい接続リクエストが、接続が有効になるまで待機すべきかの制限を設定します。この制限を超えた場合、リクエストはエラーを返します。デフォルトで接続リクエストは接続が有効になるまで無制限で待ち続けます。
graphqlDataSource でのコネクションプーリング
接続をプールするためのデフォルトのメソッドを使用するには、UseConnectionPooling を使用してGraphQLDataSource をインスタンス化します。
GraphQLDataSource graphqlDataSource = new GraphQLDataSource();
graphqlDataSource.setURL("jdbc:graphql:UseConnectionPooling=true;AuthScheme=OAuth;OAuthVersion=2.0;CallbackURL=http://localhost:33333;OauthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;OAuthAccessTokenURL=https://mysite.com/login/oauth/access_token;");
JDBC コネクションプーリング
JDBC ConnectionPoolDataSource インターフェースを使用してプールされた接続を確立する場合は、UseConnectionPooling でGraphQLConnectionPoolDataSource をインスタンス化します。
GraphQLConnectionPoolDataSource graphqlPoolDataSource = new GraphQLConnectionPoolDataSource();
graphqlPoolDataSource.setURL("jdbc:graphql:UseConnectionPooling=true;AuthScheme=OAuth;OAuthVersion=2.0;CallbackURL=http://localhost:33333;OauthClientId=MyOAuthClientId;OAuthClientSecret=MyOAuthClientSecret;OAuthAccessTokenURL=https://mysite.com/login/oauth/access_token;");
コネクションプールを閉じる
JRE 1.3 もしくはそれ以上では、アプリケーションが止まると自動的にコネクションプールは閉じられます。DataSource オブジェクトのclose メソッドを呼び出して手動でコネクションプールを閉じることが可能です。