2012-03-16 6 views
0

Java 애플리케이션에 연결 풀링을 구현할 계획입니다. 우리는 Google과 같은 BoneCp, DbPool, 아파치, 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

가능한 복제본 [Java JDBC 연결 풀 라이브러리 선택은 2011 년?] (http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in-2011) –

+0

@clement 당신은 무엇을합니까? XA 풀링을 의미합니까? 그래서 나는 내 코드의 일부를 넣었다. 어떤 방법으로 제안 하시겠습니까? – user837306

답변

1

먼저 연결 풀에서 필요한 것을 식별하고 해당 기능을 제공하는 라이브러리를 찾으십시오.

인터넷에서 이미 알려진 인기있는 의견을 사용하거나 여기에서 특정 질문을 통해 하나를 선택하십시오.

다음으로 풀에서 필요한 것을 기준으로 연결 풀링 기능을위한 추상화 계층을 만들고 선택된 라이브러리를 사용하여 구현합니다.

이렇게하면 기본 라이브러리를 변경할 수 있습니다. 개발 과정에서도 만족스럽지 않을 수 있습니다.

+0

내 코드 스 니펫을 추가했습니다. 그것은 각 소켓 연결에 대한 소켓 연결을 기반으로 연결을 열 것이며 거기에 데이터를 처리하고 마지막으로 connection.So createConnection 바로 연결 풀링을 호출해야한다고 생각하는 동안 계속됩니까? – user837306