Не удается получить соединение из источника данных Sybase в WAS 6.1 с сообщением «Отсутствует свойство имени пользователя в DriverManager.getConnection» - PullRequest
0 голосов
/ 13 апреля 2010

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

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

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

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

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

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

Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 апреля 2010

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

0 голосов
/ 18 апреля 2010

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

new InitialContext().lookup("myDS");
...