현재 연결 풀링을 처리하기 위해 별도의 DBConnectionManager 클래스를 사용하고 있지만 서블릿이 doGet()을 호출 할 때마다 동일한 풀을 호출하지 않았기 때문에 이것이 잘못된 방법이라는 것을 깨달았습니다. 수행됩니다.서블릿 용 JDBC 연결 풀링
- 누가 위와 같은 현상이 발생했는지 설명 할 수 있습니까?
- JNDI는 적절한 연결 풀링을 위해 Tomcat이있는 java 서블릿으로 이동하는 방법입니까?
2 개의 기사에 대한 링크가 있는데, 이것이 서블릿과의 연결 풀링을 구현하는 올바른 방법입니까?
http://onjava.com/onjava/2006/04/19/database-connection-pooling-with-tomcat.html
http://www.javaranch.com/journal/200601/JDBCConnectionPooling.html
그래서 같은 맥락에서 DB 관리자 개체를 저장 할 수 있나요 :mtdb = (MTDbManager) context.getAttribute("MTDBMANAGER");
if (mtdb == null) {
System.out
.println("MTDbManager is null, reinitialize MTDbManager");
initMTDB(config);
context.setAttribute("MTDBMANAGER", mtdb);
}
을 그리고 나는 mtdb.getInstance()의 getConnection() 호출합니다. 항상이 객체를 참조합니다.
감사합니다.
그냥 다른 질문을, JNDI 적절한 연결 풀링을합니까? 최대 연결 수를 5로 설정하면 6 번째 요청이 들어오고 JNDI는 다시 연결을 시도하기 전에 대기 시간 초과를 수행합니다. – Maurice
JNDI 자체는 풀링을 수행하지 않으므로, ['javax.sql.DataSource'] (http://docs.oracle.com/javase/6/docs/api/javax/sql/DataSource.html) 개체를 찾습니다. 연결이 필요할 때 호출 할'getConnection()'메소드를 제공한다. 사용 가능한 연결이 없으면'getConnection() '에 대한 호출이 차단됩니다. N.B. 연결이 필요할 때마다 JNDI 데이터 소스를 조회 할 필요가 없으므로 데이터 소스에 대한 참조를 캐시하는 것이 일반적입니다. 희망이 도움이됩니다. – beny23