2013-08-29 3 views
1

내 java/scala 작업자로부터 내 mysql 서버에 연결하는 데 문제가 있습니다.tomcat6에서 mysql 서버에 연결하려고 시도합니다. java.net.UnknownHostException

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 
    at sun.reflect.GeneratedConstructorAccessor25.newInstance(Unknown Source) ~[na:na] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.6.0_27] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532) ~[na:1.6.0_27] 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1121) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:355) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2479) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2516) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2301) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:834) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at sun.reflect.GeneratedConstructorAccessor10.newInstance(Unknown Source) ~[na:na] 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.6.0_27] 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532) ~[na:1.6.0_27] 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:416) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at java.sql.DriverManager.getConnection(DriverManager.java:620) ~[na:1.6.0_27] 
    at java.sql.DriverManager.getConnection(DriverManager.java:200) ~[na:1.6.0_27] 
    at listen$IndexTransactionWorkerImpl.run(listen.scala:38) [indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at net.greghaines.jesque.worker.WorkerImpl.execute(WorkerImpl.java:630) [indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at net.greghaines.jesque.worker.WorkerImpl.process(WorkerImpl.java:600) [indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at net.greghaines.jesque.worker.WorkerImpl.poll(WorkerImpl.java:491) [indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at net.greghaines.jesque.worker.WorkerImpl.run(WorkerImpl.java:230) [indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at java.lang.Thread.run(Thread.java:679) [na:1.6.0_27] 
Caused by: java.net.UnknownHostException: mysql-vip 
    at java.net.InetAddress.getAllByName0(InetAddress.java:1229) ~[na:1.6.0_27] 
    at java.net.InetAddress.getAllByName(InetAddress.java:1156) ~[na:1.6.0_27] 
    at java.net.InetAddress.getAllByName(InetAddress.java:1092) ~[na:1.6.0_27] 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:249) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:305) ~[indexer-worker-1.0-SNAPSHOT-jar-with-dependencies.jar:na] 
    ... 29 common frames omitted 

그것은 특정 지점까지 잘 작동, 작업자가 호스트를 확인할 수 없습니다 : 여기

는 내가 가진 스택 추적입니다. 작업자를 다시 시작하면 다시 작동합니다.

중요한 사항 : 컴퓨터에서 호스트로 핑 (ping) 할 수 있습니다!

내가 대신 Djava.net.preferIPv4Stack=true와의 IPv4를 사용하려하지만 IPv4의 스택과 같은 오류가 발생했습니다.

지금까지 단서가 없습니다. 도와 줘서 고마워!

+0

이미 IP 주소 대신 호스트 이름으로 시도 했습니까? IP 주소가 동적 @Ankit – Ankit

+0

, 난 단지 – dbaq

+0

당신이 대신 "MySQL의-VIP"의 완전한 호스트 이름으로 시도 해 봤나 (기계에서 ping이) MySQL의-VIP 인 호스트 이름을 사용할 수 있습니까? 도메인 검색 경로에 문제가있을 수 있습니다. – chrylis

답변

0

제대로 연결 풀을 관리하지 않는 경우에 잘 일어날 수있는이 여러 가지 이유가있을 수 있습니다. 당신이 연결 풀을 스스로 유지하고 있다면 (또는 아파치 DHCP 등을 사용하여) 연결 풀을 너무 많이 열어 모든 것이 막히거나 리소스를 잘 관리하지 못한다는 의미에서 그렇습니다.

또 다른 이유는이 될 수 있습니다 (이것은 다시 한 달 동안 우리와 함께 일어). 한 번에 너무 많은 긴 쿼리가 실행될 때. 우리는 프로 시저 측면에서 몇 가지 최적화 작업을 수행했으며 (읽기 잠금을 비활성화하여) 작업을 시작했습니다.

관련 문제