Получение соединения из источника данных Sybase в WAS 6.1 завершается ошибкой с сообщением, что свойство имени пользователя отсутствует в DriverManager.getConnection

У меня есть автономное приложение, которому необходимо подключиться к базе данных Sybase через источник данных, я пытаюсь подключиться с помощью getConnection() и получить соединение от этого источника данных Sybase, размещенного в WAS 6.1, к сожалению Я получаю сообщение об ошибке JZ004 -> Sybase(R) jConnect for JDBC(TM) Справочник программиста: Исключения SQL и предупреждающие сообщения

Сообщение об ошибке JZ004:
Отсутствует свойство имени пользователя в DriverManager.getConnection(..., Properties) Действие: Укажите требуемое свойство пользователя.

Как видите, это не проблема подключения (поэтому мы можем отбросить JNDI или проблемы с поиском), а скорее проблема конфигурации. Для моего источника данных Sybase в WAS 6.1 я настроил правильный псевдоним аутентификации (псевдоним аутентификации, управляемый компонентом), и я знаю, что учетные данные в порядке, "Проверка подключения" для этого источника данных прошла успешно. Кто-то уже сделал это. аналогичная проблема и была из-за псевдонима аутентификации-> http://forum.springsource.org/showthread.php?t=39915

Затем я попытался вызвать getConnection(), но теперь я предоставил учетные данные, такие как getConnection(user, password)... и на этот раз это сработало!!! Поэтому я подозреваю, что WAS 6.1 каким-то образом не выбирает или взяв информацию об аутентификации, которую я установил в источнике данных, как упоминалось ранее.

Если вы считаете, что, возможно, getConnection(user, password) подходит для моего случая, то это не так, поскольку у меня есть требование хранить учетные данные на сервере, автономное приложение должно знать только информацию JNDI для поиска источника данных.

Подскажите пожалуйста, сталкивались ли вы с подобной проблемой, или что посоветуете сделать.

Спасибо.


person Abel Morelos    schedule 13.04.2010    source источник


Ответы (2)


Чтобы использовать настроенный ресурс, вам нужно найти его, а не напрямую использовать DriverManager:

new InitialContext().lookup("myDS");
person Brett Kail    schedule 18.04.2010
comment
Это то, что я делаю, но я получаю проблему, упомянутую ранее. Исключение DriverManager появляется в фактической трассировке стека. Я добавил новый вопрос для этого случая: stackoverflow.com/questions/2677079/ - person Abel Morelos; 20.04.2010

В другом потоке -> Вызов DataSource.getConnection не возвращает ожидаемый соединение, я получил ответ, который также решил эту проблему, в основном ответ заключается в том, что псевдоним аутентификации не будет работать для внешних клиентов в соответствии с документация J2C. Обходной путь заключается в предоставлении пользователя и пароля в качестве настраиваемых свойств, а не в качестве псевдонима проверки подлинности.

person Abel Morelos    schedule 23.04.2010