복붙노트

[SPRING] PostgreSQL의 HikariCP : setQueryTimeout (int)가 아직 구현되지 않았습니다.

SPRING

PostgreSQL의 HikariCP : setQueryTimeout (int)가 아직 구현되지 않았습니다.

PostgreSQL과 함께 HikariCP를 사용하려고했지만 작동하지 않습니다. 예외를 throw합니다.

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>

해결법

  1. ==============================

    1.connectionTestQuery를 사용하지 마십시오. HikariCP가 Connection.isValid () 메소드를 사용하는 기본 동작을 따르도록 허용합니다. JDBC4 드라이버가 필요합니다.

    connectionTestQuery를 사용하지 마십시오. HikariCP가 Connection.isValid () 메소드를 사용하는 기본 동작을 따르도록 허용합니다. JDBC4 드라이버가 필요합니다.

  2. from https://stackoverflow.com/questions/26550316/hikaricp-with-postgresql-setquerytimeoutint-is-not-yet-implemented by cc-by-sa and MIT license