Использование пакета Oracle DBMS_APPLICATION_INFO с Spring JDBC - PullRequest
0 голосов
/ 07 января 2011

В настоящее время наши веб-приложения осуществляют прямые вызовы JDBC для нашей базы данных Oracle.Мы помечаем каждое соединение вызовами к пакету DBMS_APPLICATION_INFO в статическом методе getConnection (String client), например

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 открывает и закрывает соединение с каждым запросом.

В Spring JDBC есть способ совершать вызовы DBMS_APPLICATION_INFO изнутри, как мы делаем сейчас, передаваяСтрока, с помощью которой можно пометить соединение?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 18 августа 2014

Ответ на мой вопрос - нет. Если бы я занимался этой проблемой сегодня, я бы, вероятно, посмотрел на написание Interceptor для пула JDBC Tomcat или упаковку драйвера. В действительности, однако, скорее всего, я бы отказался от использования DBMS_APPLICATION_INFO. Хотя приятно, что он не был полезен с точки зрения эксплуатации, не стоит добавлять код и усложнять.

0 голосов
/ 07 января 2011

Вы смотрели на весенние аспекты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...