Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to fix "Driver does not support get/set network timeout for connections" while connecting to oracle database from spring boot app?

I was trying to connect to my table and insert some data.We are using oracle database. In the code I have used oracle thin driver ojdbc14.I am getting

2018-12-27 11:08:58.810  INFO 16548 --- [           main] com.zaxxer.hikari.pool.PoolBase          : HikariPool-1 - Driver does not support get/set network timeout for connections. (oracle.jdbc.driver.T4CConnection.getNetworkTimeout()I)
2018-12-27 11:08:58.810 ERROR 16548 --- [           main] com.zaxxer.hikari.pool.PoolBase          : HikariPool-1 - Failed to execute isValid() for connection, configure connection test query (oracle.jdbc.driver.T4CConnection.isValid(I)Z).

I am fairly new to spring boot and was actually trying to

do this demo - https://www.devglan.com/spring-jdbc/working-with-springboot-jdbctemplate

only changes I have done is in my pom.xml and application.properties.

Is there any thing else needed for oracle? How i should solve this?All the example I see for oracle in net is with hibernate.Is is necessary to include hibernate approach? Thank you in advance.


pom.xml

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
         <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.4.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency> -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- HikariCP connection pool -->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.2.0</version>
        </dependency>

    </dependencies>

application.properties

spring.datasource.url=jdbc:oracle:thin:@//url/service
spring.datasource.username=user
spring.datasource.password=password
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
like image 574
juneSakura Avatar asked Dec 27 '18 05:12

juneSakura


1 Answers

That is because you are using a very old version of ojdbc. You should be using the latest versions of the Oracle JDBC driver to connect to your Oracle database.

From a quick test here:

  • the warning is still present with version 11.2.0.1
  • there is no warning with version 12.1.0.2
  • oracle.jdbc.driver.T4CConnection.getNetworkTimeout API is in Oracle JDBC 12.1.0.2(https://docs.oracle.com/database/121/JAJDB/toc.htm).
  • but oracle.jdbc.driver.T4CConnection.getNetworkTimeout API is not in Oracle JDBC 11.2.0.1(https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnectionWrapper.html)
like image 184
Arnaud Jeansen Avatar answered Nov 02 '22 12:11

Arnaud Jeansen