@SuppressWarnings({"unchecked", "static-access"}) public static synchronized void initConnectionPool() throws SQLException, ClassNotFoundException { ConnectionPool.getConnectionPool().destoryConnectionPool(); @SuppressWarnings("rawtypes") Vector temp = ConnectionPool.getConnectionPool().getConnectionPoolBuffer(); ConnectionFactory connectionFactory = ConnectionFactory.getDefaultFactory(); for (int i = 0; i < MAX_CONNECTION; i++) { Connection connection = connectionFactory.createConnection("mysql"); temp.addElement(new ConnectionInfo(connection, System.currentTimeMillis())); System.out.println("New Connection Created.." + connection); } }
public synchronized Connection getConnection() { ConnectionInfo connectionInfo = null; if (wait_count > MAX_CONNECTION) { return null; } try { while (buffer.size() == 0) { wait_count++; this.wait(); wait_count--; } connectionInfo = (ConnectionInfo) this.buffer.elementAt(0); long interval = System.currentTimeMillis() - connectionInfo.time; if (interval > 1000 * 60 * 30) { try { System.out.println(interval / 1000 + "초를 경과 Connection Close"); connectionInfo.connection.close(); } catch (SQLException e1) { e1.printStackTrace(); System.out.println("Connection Closed error"); } ConnectionFactory connectionFactory = ConnectionFactory.getDefaultFactory(); connectionInfo.connection = connectionFactory.createConnection("mysql"); System.out.println(new java.util.Date().toString() + "Connection Opened"); } } catch (InterruptedException e2) { e2.printStackTrace(); } finally { connectionInfo = (ConnectionInfo) this.buffer.remove(0); } return connectionInfo.connection; }