Отправить имя приложения при подключении к БД Oracle с помощью HikariCP весной - PullRequest
0 голосов
/ 12 октября 2018

У меня есть приложение Spring Boot 1.4.7, которое я сейчас обновляю до версии 2.0.5.Приложение подключается к базе данных Oracle с использованием JDBC, используя следующую конфигурацию:

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}.Кажется, причиной этого является переключение на HikariCP в качестве пула соединений по умолчанию в Spring 2.x.Как мне перенести эту конфигурацию в Hikari таким образом, чтобы я мог отправить пользовательское свойство для v$session.program в базу данных?

Что я пробовал:

  • Добавление ?ApplicationName=<name> к URL JDBC.
  • Решения, упомянутые в this Вопрос Stackoverflow
  • Настройка System.setProperty("oracle.jdbc.v$session.program", <name>)
  • Настройка spring.datasource.hikari.data-source-properties.v$session.program: <name> в application.yml

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

В 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
0 голосов
/ 15 октября 2018

Использование свойств пула HikariCP (пул по умолчанию в Spring Boot 2)

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