2012-03-16 19 views
0

Javaアプリケーションに接続プールを実装する予定です。 Googleでは、BoneCp、DbPool、Apache、c3p0、DbCpなどの数を見つけました。現在問題となっているのは、適用対象が古くなるために適用する決定をするのが難しいということです。どの方法が最適な解決策になりますか?Java接続プールオプション

public class cServer 
{ 
    class ConnectionHandler implements Runnable { 
     ConnectionHandler(Socket receivedSocketConn1) { 
      this.receivedSocketConn1=receivedSocketConn1; 
     } 


     public void run(){ 
      createConnection(); 
      while (read the socket values){ 
       //number of queries to run in terms of select,insert and updates. 
      } 
      closeConnection(); 
     } 
     void createConnection(){ 

     try{ 
     dbconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1?"+"user=user1&password=*******"); 
     dbconn.setAutoCommit(false); 
     } 
     catch(Throwable ex){ 
      ex.printStackTrace(System.out); 
     } 
    } 
    } 


    public void main() 
    { 
    try 
    { 
     final ServerSocket serverSocketConn = new ServerSocket(8000);    
     while (true){ 
     try{ 
      Socket socketConn1 = serverSocketConn.accept(); 
      new Thread(new ConnectionHandler(socketConn1)).start();      
     } 
     catch(Exception e){ 
     e.printStackTrace(System.out); 
     } 
     } 
    } 
    catch (Exception e){ 
     e.printStackTrace(System.out); 
    } 

    } 

} 
+0

XAプーリングが必要ですか?これはかなりのオプションを制限します。 –

+1

2011年の[Java JDBC接続プールライブラリの選択]の可能な複製?(http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in-2011) –

+0

@clement XAプーリングの意味ですか?だから私は自分のコードの一部を入れました。どちらの方法をお勧めしますか? – user837306

答えて

1

まず、接続プールから必要なものを特定し、その機能を提供するライブラリを探します。

すでにネットで見つかった一般的な意見を使用して、またはここで特定の質問をして、現在は1つを選択してください。

次に、プールから必要なものに基づいて、接続プーリング機能用の抽象レイヤーを作成し、選択したライブラリーを使用して実装します。

このようにして、開発中であっても、それが満足できない場合は、基礎となるライブラリを変更することができます。

+0

自分のコードのスニペットを追加しました。それは、各ソケット接続のソケット接続に基づいています私は接続を開き、データが処理して、最後に接続を閉じている間に。私はcreateConnectionは接続プールを右に呼び出す必要があると思いますか? – user837306