Наши веб-клиенты в настоящее время напрямую обращаются к JDBC-вызовам в нашу базу данных Oracle. Мы связываем каждое соединение с вызовами пакета DBMS_APPLICATION_INFO в статическом методе getConnection (String client), например.Использование пакета Oracle DBMS_APPLICATION_INFO с Spring JDBC
CallableStatement pstmt = conx.prepareCall("{call DMBS_APPLICATION_INFO.SET_CLIENT_INFO(?)}");
pstmt.setString(1, "my client");
pstmt.executeUpdate();
Это оказалось полезным время от времени, и мы хотели бы продолжить это, когда мы переходим к Spring JDBC.
Я думаю, что если бы мы сделали каждый запрос транзакцией, а затем совершили вызовы в DBMS_APPLICATION_INFO перед выполнением запроса (или запросов), это сработало бы, но для этого потребовалось бы добавить вышеуказанный код в каждое место, где мы получаем соединение сейчас. Вне транзакции это не представляется возможным, потому что Spring JDBC открывает и закрывает соединение с каждым запросом.
Весной JDBC есть способ совершать вызовы в DBMS_APPLICATION_INFO под капотом, как сейчас, передавая строку, с которой следует пометить соединение?
Спасибо!