【问题标题】:Send application name when connecting to an Oracle DB using HikariCP in Spring在 Spring 中使用 HikariCP 连接到 Oracle DB 时发送应用程序名称
【发布时间】: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=&lt;name&gt; 附加到 JDBC url。
  • this Stackoverflow 问题中提到的解决方案
  • 设置System.setProperty("oracle.jdbc.v$session.program", &lt;name&gt;)
  • 在application.yml中设置spring.datasource.hikari.data-source-properties.v$session.program: &lt;name&gt;

【问题讨论】:

  • 非常感谢!当我尝试设置 defaultRowPrefetch 这使 Oracle ojdbc8.jar 连接运行效率更高时,这对我有很大帮助!

标签: java oracle spring-boot jdbc hikaricp


【解决方案1】:

在 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

【讨论】:

  • 这样就可以了。这意味着 yaml 中的所有内容都被转义了。
  • 这似乎不起作用。您提到“转义”,但不要在您的答案中显示任何被转义的内容。
【解决方案2】:

使用 HikariCP 池属性(Spring Boot 2 中的默认池)

spring:
  datasource:
    hikari:
      data-source-properties:
        v$session.program: MyAppName

【讨论】:

  • 这似乎没有任何效果。
【解决方案3】:

如果你想引用spring.application.name,你必须像这样使用它:

spring:
  datasource:
    hikari:
      data-source-properties:
        "[v$session.program]": ${spring.application.name}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 1970-01-01
    • 2014-05-24
    • 2019-12-16
    • 2021-04-24
    • 1970-01-01
    相关资源
    最近更新 更多