2010-05-20 2 views
5

У меня есть приложение Java, которое необходимо проверить (так что, очевидно, мне нужно, чтобы приложение можно было идентифицировать с именем приложения). Я гугл и нашел, что ojdbc14 имеет метод .setClientInfo, который позволяет регистрировать приложение с настраиваемым именем, так что я пытаюсь заставить его работать, но я получаю следующее сообщение об ошибке:Настройка информации о клиенте в JDBC для Oracle

Exception in thread "main" java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.setClientInfo(Ljava/lang/String;Ljava/lang/String;)V

Я использую ojdbc14 с Oracle 10G экспрессом , Если я не установить линию:

connection.setClientInfo("ApplicationName","Customers"); 

это работает довольно хорошо .... и проверив данные аудита, я могу видеть, что оракул получает имя приложения: OS_program_name = JDBC Thin Client, но мне нужен способ изменить его для настроенного имени.

Раскомментируя эту строку, которая должна установить имя приложения, она возвращает ошибку выше.

В документации по оракулу этот метод доступен для объекта Connection. У вас есть идеи, как решить эту проблему?

ответ

9

Для AbstractMethodError, пожалуйста, проверьте Why do I get java.lang.AbstractMethodError when trying to load a blob in the db?

Для того, чтобы отличать ваши соединения в Oracle вы можете использовать этот пример код ниже:

Properties jdbcProperties = new Properties(); 

this.jdbcProperties.put("user", userName); 
this.jdbcProperties.put("password", password); 
this.jdbcProperties.put("v$session.program", "YourApplicationName"); 
DriverManager.getConnection(url, jdbcProperties); 

затем проверить V $ SESSION, группируя по колонку программы для соединений ..

+0

Я очень ценю вашу помощь, это было очень полезно для меня ... Я применил линии, которые вы мне дали, и это отлично работает. Большое спасибо, искренне. –

+0

Рад слышать, что это сработало. Еще одна вещь, однако, этот код не будет работать, если вы используете ссылки oci для подключения к Oracle db. Он работает только для тонких URL-адресов, я не понимаю Oracle об этом. На этом этапе вы можете использовать пакет DBMS_APPLICATION_INFO для установки имени и действия модуля для отслеживания ваших приложений. – gokhant

Смежные вопросы