2011-08-04 7 views
7

私はBoneCPの使用を開始しました。これは初めての接続プールです。私はそれをどのように使うべきかに関していくらか混乱している。現在、私はBoneCPオブジェクトを静的変数として保存しているので、別の接続間で使用することができます。BoneCPの使用:プールからの接続の処理

接続が完了したら、私はconnection.close()で終了します。
これを行う必要がありますか、プールで再利用できるようにするために閉じてはいけませんか?

これは、接続を取得するために私の現在の実装である:

private static BoneCP connectionPool; 

public Connection getConnection() throws SQLException { 
    if (connectionPool == null) { 
     initPool(); 
    } 
    return connectionPool.getConnection(); 
} 

private void initPool() throws SQLException { 
    BoneCPConfig config = new BoneCPConfig(); 
    config.setJdbcUrl(DB_URL); 
    config.setUsername(DB_USERNAME); 
    config.setPassword(DB_PASSWORD); 
    config.setMinConnectionsPerPartition(5); 
    config.setMaxConnectionsPerPartition(10); 
    config.setPartitionCount(1); 
    connectionPool = new BoneCP(config); 
} 

これは正しいように見えるか、私は私がBoneCPを使用することが出来るのですか誤解がありますか?

答えて

9

プライベートスタティックファイナルを作成し、initを静的ブロックに変更する(または、代わりにgetConnectionを同期させる)以外に、あなたは大丈夫です。

あなたは正しくプールに戻るにはconnection.close()を実行する必要があります。あなたのアプリケーションがシャットダウンすると、接続プールをシャットダウンします

関連する問題