当前位置: 首页 > 面试题库 >

PostgreSQL的HikariCP:尚未实现setQueryTimeout(int)

夏侯承恩
2023-03-14
问题内容

我试图将HikariCP与PostgreSQL一起使用,但是它不起作用。它引发异常:

WARN  [2014-10-24 14:38:54,195] com.zaxxer.hikari.pool.HikariPool: Exception during keep alive check, that means the connection must be dead.
    ! org.postgresql.util.PSQLException: Method org.postgresql.jdbc4.Jdbc4Statement.setQueryTimeout(int) is not yet implemented.
    ! at org.postgresql.Driver.notImplemented(Driver.java:753) ~[postgresql-9.0-801.jdbc4.jar:na]
    ! at org.postgresql.jdbc2.AbstractJdbc2Statement.setQueryTimeout(AbstractJdbc2Statement.java:656) ~[postgresql-9.0-801.jdbc4.jar:na]
    ! at com.zaxxer.hikari.pool.HikariPool.isConnectionAlive(HikariPool.java:473) [HikariCP-java6-2.1.0.jar:na]
    ! at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:178) [HikariCP-java6-2.1.0.jar:na]
    ! at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:94) [HikariCP-java6-2.1.0.jar:na]

我尝试了所有可能的驱动程序版本(包括org.postgresql:postgresql:9.3-1102-jdbc41)-没有任何帮助。有人在PostgreSQL中使用它吗?

这是我的配置文件:

<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
    <property name="connectionTestQuery" value="SELECT 1" />
    <property name="dataSourceClassName" value="org.postgresql.ds.PGSimpleDataSource" />
    <property name="maximumPoolSize" value="${jdbc.maximumPoolSize:20}" />
    <property name="idleTimeout" value="${jdbc.idleTimeout:600000}" />

    <property name="dataSourceProperties">
        <props>
            <prop key="databaseName">vidsearch_test</prop>
            <prop key="user">${hibernate.connection.username}</prop>
            <prop key="password">${hibernate.connection.password}</prop>
        </props>
    </property>
</bean>

<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
    <constructor-arg ref="hikariConfig"/>
</bean>

问题答案:

不要使用connectionTestQuery。允许HikariCP遵循其使用Connection.isValid()方法的默认行为。这需要JDBC4驱动程序。



 类似资料:
  • 问题内容: 在我的项目中,我开始将c3p0与hibernate一起用于重新连接到数据库,因为在数据库故障时hibernate无法恢复连接。 我正在使用hibernate版本: postgresql驱动程序是: c3p0的配置是: 但我不断收到此错误: 我必须注意,我不是在自称自己! 那么,为了在Tomcat 7启动期间摆脱此错误,我该改变谁呢?我还从tomcat的lib目录中删除了postgres

  • 我使用的是Appium版本1.4.16.1、Selenium 2.53.0和java客户端2.1.0 我得到以下错误:- “org.openqa.selenium.WebDriverException:尚未实施。请帮助我们:http://appium.io/get-involved.html (警告:服务器未提供任何stacktrace信息)命令持续时间或超时:7毫秒生成信息:版本:“2.53.0

  • 问题内容: 在我的项目中,我开始将c3p0与hibernate一起用于重新连接到数据库,因为在数据库故障时hibernate不会恢复连接。 我正在使用休眠版本: postgresql驱动程序是: c3p0的配置是: 但我不断收到此错误: 我必须注意,我不是在自称自己! 那么,为了在Tomcat 7启动期间摆脱此错误,我该改变谁呢?我还从tomcat的lib目录中删除了PostgreSQL驱动程序。

  • 我试图在postgresql中使用HikariCP,但我在任何地方都找不到postgresql的配置。 请给我指出任何示例postgresql与HikariCP或任何配置教程相同。 我试着像下面那样使用它,但它不起作用,然后我意识到它是为MySQL设计的

  • 问题内容: 我收到错误消息: 致命错误:尚未实现init(coder :) 按照我的习惯。该单元未注册,在情节提要中和使用dequeasreusablecell时具有标识符 单元 。在自定义单元格中,我的初始化为: 码: 但是我仍然有错误。谢谢。 问题答案: 将您的init替换为coder方法: 实际上,如果您在Storyboard中创建了单元格- 我认为应该将其附加到尝试在其上创建它的table

  • 行中出现错误(JAXBContext.newInstance): 当它作为测试用例执行时,它运行良好,使用: 或mvn:Spring:引导运行 但在使用以下方法运行jar时会导致问题: 运行java-jar并使用postman命中时出错。 版本信息 同一个jar在开发服务器上运行良好,但不在临时服务器上运行。开发和登台服务器都有相同的环境(java版本、mvn,一切都一样)。我将这些依赖项添加到p