[英]Send application name when connecting to an Oracle DB using HikariCP in Spring
我有一個 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 作為默認連接池。 我將如何以允許我將v$session.program
的自定義屬性發送到數據庫的方式將此配置遷移到 Hikari?
我嘗試過的:
?ApplicationName=<name>
附加到 JDBC url。System.setProperty("oracle.jdbc.v$session.program", <name>)
spring.datasource.hikari.data-source-properties.v$session.program: <name>
設置spring.datasource.hikari.data-source-properties.v$session.program: <name>
在 yaml 中,美元符號被轉義。
spring.datasource.hikari.data-source-properties.v$session.program: <name>
com.zaxxer.hikari.HikariConfig : dataSourceProperties............{password=<masked>, vsession.program=<name>}
嘗試這個。
spring:
datasource:
hikari:
data-source-properties: v$session.program=name
使用 HikariCP 池屬性(Spring Boot 2 中的默認池)
spring:
datasource:
hikari:
data-source-properties:
v$session.program: MyAppName
如果你想引用spring.application.name
你必須像這樣使用它:
spring:
datasource:
hikari:
data-source-properties:
"[v$session.program]": ${spring.application.name}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.