DarkStar MySQL Connection 거부문제..

2009. 12. 26. 15:33오픈소스관련/다크스타(DarkStar)

728x90
반응형
DarkStar와 MySQL연동시 Connection을 열고 받아주지 않아서 다량의 쿼리를 요청할때 계속적으로 Connection이 오픈되면서 MySQL이 연결을 거부하는 문제가 발생됩니다. 이래서 다른 Plug-in드들이 사용되고 있기도 합니다. 하지만 개인적으로 구굴에서 배포한 damalocus를 이용해보기로 했습니다. 내부 소스를 약간만 손보면 간단하게 해결할 수 있을 것 같아서 입니다. 그리고 Connection문제만 빼면 딱히 사용하는데 문제가 없어 보였기 때문입니다.

MySQLService.java에서 아래와 같이 Connetion을 요청하는 부분에서 매번 새로운 Connection을 만들어서 넘겨주는 부분이 문제인듯 합니다. 이곳에서 기존에 만들었던 Connection을 넘겨주면 간단하게 해결됩니다.


MySQLConnectionImpl con = null;

MySQLConnectionImpl getConnection()
{
  try
  {
   if(con == null)
   {
    Connection connection = DriverManager.getConnection("jdbc:mysql://" + dbhost + "/" + dbname + "?user=" + dbuser + "&password=" + dbpass);  
    con = new MySQLConnectionImpl((com.mysql.jdbc.Connection) connection);
    return con;
   }
   else
   {
    return con;
   }
  }
  catch (Exception e)
  {
   logger.log(Level.WARNING, "Could not establish connection with "+toString(), e);
  }
  return null;
 }

그리고 DBPool을 이용할 경우 Vecter등을 이용해서 DB Connection Pool을 만들어 사용하시면 좀더 좋을 것 같습니다.

728x90
반응형