WebSphere to Oracle - не принимает правильный пароль
В WebSphere 6.1 я создал источник данных для экземпляра Oracle 11g с помощью тонкого клиента JDBC.
В Oracle у меня есть два пользователя, один из которых существует, а другой недавно создан.
Мой источник данных websphere в порядке, если я использую псевдоним аутентификации, управляемый компонентами, существующего пользователя, но происходит сбой с сообщением "неверный пользователь / пароль", если я использую псевдоним нового пользователя. Сообщение об ошибке:
The test connection operation failed for data source MyDB (Non-XA) on
server nodeagent at node MY_node with the following exception:
java.sql.SQLException: ORA-01017: invalid username/password;
logon denied DSRA0010E: SQL State = 72000, Error Code = 1,017.
View JVM logs for further details.
В логах JVM ничего нет. Я просмотрел все журналы веб-сферы, и они вообще не упоминают мое соединение.
Я могу подтвердить, что имя пользователя и пароль верны, войдя в систему через SQLPlus или (чтобы доказать, что соединение JDBC в порядке) через SQuirreL.
Я проверил в Oracle, что у нового пользователя есть все системные привилегии, которые есть у существующего пользователя.
Любые мысли о том, что происходит или как я могу отладить это дальше?
6 ответов
Просто к вашему сведению. Я предполагаю, что вы работаете с WebSphere в режиме сетевого развертывания. Такое поведение вы испытываете на самом деле дизайн.
Причина этого в том, что кнопка "Проверить соединение", которую вы видите на консоли администратора, вызывает проверку соединения JDBC изнутри процесса агента узла. Информация о псевдониме J2C не может распространяться на агент узла без перезапуска; некоторые объекты конфигурации вступают в силу в WebSphere, как только вы сохраняете конфигурацию в главном репозитории, а некоторые вступают в силу только при перезапуске. Псевдонимы J2C вступают в силу при перезапуске.
В топологии сетевого развертывания у вас может быть любое количество экземпляров сервера, управляемых одним и тем же агентом узла. Вы можете перезапустить свои экземпляры сервера так, как вам хочется, но если вы не перезапустите сам Node Agent, кнопка "тестовое соединение" никогда не будет работать.
Это известное ограничение WebSphere... которое также существует в версии 7.0, поэтому не удивляйтесь, когда будете тестировать его во время следующей миграции.:-)
Если это случится с кем-то еще, я перезапустил WebSphere, и все мои проблемы исчезли. Это настоящий признак качества программного обеспечения.
Часто, когда люди говорят мне, что они не могут войти в Oracle 11g с правильным паролем, я знаю, что они были обнаружены паролями, чувствительными к регистру между 10g и 11g.
Попробуйте это: безопасность определения источника данных использует псевдоним j2c и аутентификацию, управляемую компонентом, и аутентификацию, управляемую контейнером
Центр знаний IBM WAS 8.5.5 -
Управление записями данных аутентификации Java 2 Connector Architecture для JAAS
Если вы создаете или обновляете источник данных, который указывает на вновь созданный псевдоним данных аутентификации J2C, тестовое соединение не сможет установить соединение, пока вы не перезапустите диспетчер развертывания.
После перезапуска диспетчера развертывания данные аутентификации J2C отражаются в конфигурации времени выполнения. Любые изменения в полях данных аутентификации J2C требуют перезапуска диспетчера развертывания, чтобы изменения вступили в силу.
Агент узла также должен быть перезапущен.
Я указал мой источник данных на аутентификацию, управляемую компонентами, а также на аутентификацию, управляемую контейнером. Теперь она работает нормально........