我试图通过 JDBC API 连接到 voltdb,但总是得到 OutOfMemoryError。我知道,我可以通过增加堆大小来摆脱它,但我想知道,为什么它需要大堆大小?我已经将 1028M 设置为堆大小。
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)
部署.xml
<?xml version="1.0"?>
<deployment>
<cluster hostcount="1" sitesperhost="2" kfactor="0" />
<httpd enabled="true" port="65534">
<jsonapi enabled="true" />
</httpd>
</deployment>