【发布时间】:2019-03-17 16:14:31
【问题描述】:
我有一个 Spring Boot 1.4.7 应用程序,我目前正在更新到版本 2.0.5。应用程序使用 JDBC 使用以下配置连接到 Oracle DB:
spring:
jpa:
database-platform: org.hibernate.dialect.Oracle12cDialect
datasource:
url: jdbc:oracle:thin:@<db_server>
username: ${credentials.database.username}
password: ${credentials.database.password}
driver-class: oracle.jdbc.OracleDriver.class
platform: oracle
tomcat:
connection-properties: v$session.program=${spring.application.name}
将应用程序更新到 Spring Boot 2.0.5 后,发送到服务器的应用程序名称是 JDBC Thin Client 而不是 ${spring.application.name}。原因似乎是在 Spring 2.x 中切换到 HikariCP 作为默认连接池。我如何将此配置迁移到 Hikari,以允许我将 v$session.program 的自定义属性发送到数据库?
我尝试过的:
- 将
?ApplicationName=<name>附加到 JDBC url。 - this Stackoverflow 问题中提到的解决方案
- 设置
System.setProperty("oracle.jdbc.v$session.program", <name>) - 在application.yml中设置
spring.datasource.hikari.data-source-properties.v$session.program: <name>
【问题讨论】:
-
非常感谢!当我尝试设置
defaultRowPrefetch这使 Oracle ojdbc8.jar 连接运行效率更高时,这对我有很大帮助!
标签: java oracle spring-boot jdbc hikaricp