우리는 Tomcat6/Hibernate 3.x/Postgres 응용 프로그램을 갖고 있으며 적어도 내 깊이에서 나는 입니다. 응용 프로그램 서버와 DB 사이의 "연결"을 구성하는 것에 대해 약간 명확하지 않습니다. 적어도 JDBC까지 간다.JDBC 연결이 netstat 네트워크 연결과 일치합니까?
우리는 시작시 10 개의 연결을 여는 연결 풀 (Tomcat JDBC)을 사용하고 있습니다. Netstat이이를 확인한 것 같습니다 :
netstat -nato | grep 5432
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
::ffff:192.168.42.11:5432 ESTABLISHED off (0.00/0/0)
그러나 이러한 연결은 항상 '꺼짐'상태로 유지됩니다. Hibernate 로그를 JDBC 용 DEBUG로 설정하면, openConnection()
과 closeConnection()
콜 (간단한 웹 페이지의 경우 100 개 이상)이 표시되지만 netstat의 출력은 변경되지 않습니다.
JDBC와 네트워크 연결이 1 : 1 비율로 생성되지 않았습니까? 이것은 연결 풀링이 실제로 작동하는 증거일까요?
예 수영장이 작동하는 증거입니다. – EJP
EJP 답장을 보내 주셔서 감사합니다. 조금 혼란 스럽지만, jconsole을 원격으로 실행하면 풀 청소기가 표시되지만 풀과 관련된 다른 스레드는 표시되지 않습니다. 이게 우리의 앱과 jconsole의 설정 일 뿐이라고 생각 하나? – 8bitartist
풀과 관련된 다른 스레드가있는 이유는 무엇입니까? – EJP