我们在Web应用程序中将Hibernate与Exasol结合使用。当我们将Hibernate的hibernate.connection.pool_size属性设置为大于1的值(或任何JDBC连接池的相应属性,例如HikariCP,c3p0,设置为大于1的值)时,我们得到:

java.sql.SQLException: syntax error, unexpected FOR_READ_ONLY_, expecting end_of_input or ';' [line 1, column 93] (Session: 1622929410050974585)
    at com.exasol.jdbc.ExceptionFactory.createSQLException(ExceptionFactory.java:164)
    at com.exasol.jdbc.ExceptionFactory.createSQLException(ExceptionFactory.java:21)
    at com.exasol.jdbc.AbstractEXAPreparedStatement.<init>(AbstractEXAPreparedStatement.java:62)
    at com.exasol.jdbc.AbstractEXAPreparedStatement_14.<init>(AbstractEXAPreparedStatement_14.java:14)
    at com.exasol.jdbc.EXAPreparedStatement.<init>(EXAPreparedStatement.java:12)
    at com.exasol.jdbc.DialectGeneric.createPreparedStatement(DialectGeneric.java:10)
    at com.exasol.jdbc.AbstractEXAConnection.prepareStatement(AbstractEXAConnection.java:608)
    at org.hibernate.id.enhanced.TableGenerator.prepareStatement(TableGenerator.java:618)
    at org.hibernate.id.enhanced.TableGenerator.access$200(TableGenerator.java:127)


Exasol's user manual中,


  通过以下方式禁用驱动程序管理器的连接池
  默认。您可以在配置工具中显式激活它
  “ ODBC数据源管理员”。但请注意在这种情况下
  重用的连接保留通过SQL设置的会话设置
  命令(请参阅ALTER SESSION)。


在这里,提到了ODBC,而我们使用JDBC。所以我的问题是,如何在Exasol上启用JDBC连接池?

是否应该在EXA_PARAMETERS视图/表中添加/更新行?

最佳答案

对于JDBC,EXASOL本身没有集成的连接池。
但是我们发现以下库非常有用:
http://commons.apache.org/proper/commons-dbcp/download_dbcp.cgi
例如,它也用在JMeter中,并且在那儿工作正常。
但是,我们没有将该库与hibernate结合使用的经验。
顺便说一句,您使用https://github.com/exasol/hibernate-exasol吗?

请让我们知道进度,我们很乐意为您提供帮助! (联系我们:www.exasol.com/contact)

最好的祝福,
团队Exasol

关于java - 如何在Exasol上启用JDBC连接池?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54241605/

10-10 07:37