1

我试图通过 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>
4

1 回答 1

1

看起来您正在尝试连接到服务器上的错误端口。HTTP 端口用于 JSON 过程执行和一些监控和管理。您应该将客户端连接到 VoltDB 客户端端口,默认为端口 21212。

VoltDB 使用的端口以及如何覆盖它们记录在管理指南的附录 A.5 中。

于 2013-12-02T15:22:04.110 回答