2013-11-25 1 views
1

JDBC API를 통해 voltdb에 연결하려했지만 항상 OutOfMemoryError를 얻습니다. 알아요. 힙 크기를 늘려서 제거 할 수는 있지만, 왜 힙 크기가 큰지 알고 싶습니다. 이미 1028M이 힙 크기로 설정되어 있습니다.VoltDB JDBC 드라이버가 OutOfMemory 오류로 인해 항상 충돌합니다.

Exception in thread "http-bio-8080-exec-206" java.lang.OutOfMemoryError: Java heap space 
     at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:39) 
     at java.nio.ByteBuffer.allocate(ByteBuffer.java:312) 
     at org.voltdb.client.ConnectionUtil.getAuthenticatedConnection(ConnectionUtil.java:213) 
     at org.voltdb.client.ConnectionUtil.getAuthenticatedConnection(ConnectionUtil.java:143) 
     at org.voltdb.client.ConnectionUtil.getAuthenticatedConnection(ConnectionUtil.java:118) 
     at org.voltdb.client.Distributer.createConnectionWithHashedCredentials(Distributer.java:614) 
     at org.voltdb.client.ClientImpl.createConnectionWithHashedCredentials(ClientImpl.java:171) 
     at org.voltdb.client.ClientImpl.createConnection(ClientImpl.java:542) 
     at org.voltdb.jdbc.JDBC4ClientConnection.<init>(JDBC4ClientConnection.java:141) 
     at org.voltdb.jdbc.JDBC4ClientConnectionPool.get(JDBC4ClientConnectionPool.java:83) 
     at org.voltdb.jdbc.Driver.connect(Driver.java:91) 
     at java.sql.DriverManager.getConnection(DriverManager.java:582) 
     at java.sql.DriverManager.getConnection(DriverManager.java:207) 

은 deployment.xml

<?xml version="1.0"?> 
<deployment> 
    <cluster hostcount="1" sitesperhost="2" kfactor="0" /> 
    <httpd enabled="true" port="65534"> 
     <jsonapi enabled="true" /> 
    </httpd> 
</deployment> 
+0

안녕, 관리 안내서에 설명되어 있습니다, 나는 VoltDB을 위해 작동합니다. 우리는 JDBC 드라이버를 사용하는 힙 공간에 문제가 있음을 알지 못하므로, 얻고있는 문제점을 진단하기위한 몇 가지 추가 배경에 대한 도움을 원합니다. 1) 호출 코드는 얼마나 많은 힙을 사용합니까? 2) 얼마나 많은 노드 (서버)에 연결하고 있습니까? 3) 얼마나 많은 JDBC 드라이버 인스턴스를 사용하고 있습니까? – BenjaminBallard

+0

4) 어떤 포트에 연결하고 있습니까? http 포트에 연결 한 결과 일 수 있다는 이론이 있습니다. – BenjaminBallard

+0

감사합니다. Ben, 저는 귀하의 문서에 따라 간단한 클라이언트를 작성했습니다. 나는 voltdb 포트로 구성된 8083 포트를 사용하고 있습니다. 하나의 서버에만 연결하고 있습니다. 그게 문제 야? 나는 당신에게 다른 세부 사항을 곧 줄 것이다. – RickDavis

답변

1

서버에 잘못된 포트에 연결하려는 것 같습니다. HTTP 포트는 JSON 프로 시저 실행 및 일부 모니터링 및 관리에 사용됩니다. 클라이언트를 기본적으로 포트 21212 인 VoltDB 클라이언트 포트에 연결해야합니다. 그들을 대체 할 VoltDB 방법에 의해 사용

포트가 Appendix A.5.

관련 문제