Внезапно: ORA-01017: неверно имя пользователя/пароль
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пт Авг 21, 2015 14:06  Внезапно: ORA-01017: неверно имя пользователя/пароль |
|
Полезность: Нет оценки
|
Периодически наблюдается ошибка....
Уже работающая сессия (успешно вызвавшая rtl.open() и выполнившая пару операций) - вылетает по ORA-01017
Ошибка - откуда-то из недр пакета RTL
Причем, если ЭТО началось, то наблюдается во всех сессиях.
Могу предположить, что слетают какие-то глобальные переменные пакета RTL.
Собственно.... кто-что скажет, куда копать?
Пример:
ORA-01017: неверно имя пользователя/пароль; вход в систему запрещается
ORA-06512: на "COMP.RTL", line 4367
ORA-06512: на "COMP.RTL", line 1103
ORA-06512: на "COMP.RTL", line 1138
.................................................
ORA-01017: неверно имя пользователя/пароль; вход в систему запрещается |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Авг 24, 2015 02:08   |
|
Полезность: Нет оценки
|
Может доступа не хватает ?
У меня как -то такая же вылетала на дебаг пайпе криво написанном... |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Пн Авг 24, 2015 07:37   |
|
Полезность: Нет оценки
|
Alkov пишет: | Может доступа не хватает ?
У меня как -то такая же вылетала на дебаг пайпе криво написанном... |
Извиняюсь, не понял что значит 'доступа не хватает' ?
ошибка возникает во время работы - посередь сессии.
Т.е. работало-работало, а потом бац - посыпалось.
Пока я склоняюсь к версии, что были изменения операций и компиляция пакетов....
При компиляции пакетов - может ли каким-то образом быть зацеплен пакет RTL? он завраплен и , думаю, это должно как-то его спасать от перекомпиляции.
Т.е. если бы мне сказали: 'RTL перекомпилировали и из-за этого глобальные переменные пакета RTL были скинуты в уже работающих сессиях' - я бы поверил, вполне похоже на правду.
но, RTL завраплен (следовательно, не перекомпилируется). |
|
 |
Alkov Профи
Вступление в Клуб: 23.09.2010
|
Пн Авг 24, 2015 09:48   |
|
Полезность: Нет оценки
|
Цитата: | При компиляции пакетов - может ли каким-то образом быть зацеплен пакет RTL? он завраплен и , думаю, это должно как-то его спасать от перекомпиляции.
|
RTLOBJ например влёгкую ломается , особенно если на схеме создаются новые типы, или начинают что-то заблокированное компилить, а там зависимые один за другой пакеты цепляются и ломаются...
p.s. Это Retail схема у вас ? На сколько старая версия? |
|
 |
yaffil Профи
Вступление в Клуб: 18.08.2011
|
Пн Авг 24, 2015 09:55   |
|
Полезность: Нет оценки
|
У мну так происходит если срок действия пароля истёк. У меня стоит смена каждый месяц на оракловом уровне. ЦФТ не видит эту хрень и заранее юзера не предупреждает о смене, а тупо вырубает ему сессию в процессе работы. Точнее даже не саму сессию, а всячиские попытки её обратиться куда либо (запустить операцию, отчет). |
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Пн Авг 24, 2015 12:25   |
|
Полезность: 1
|
По таймауту отваливаетесь.
RTL.GET_DEBUG_TEXT вызываете? Если да, то с какими параметрами? |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Авг 25, 2015 06:24   |
|
Полезность: Нет оценки
|
maestro пишет: | По таймауту отваливаетесь.
RTL.GET_DEBUG_TEXT вызываете? Если да, то с какими параметрами? |
Вот это похоже на правду!
Запрос 'тяжелый', выполняется долго.
И в процессе выполнения этого тяжелого запроса - пропадает ЦФТ-сессия.
Т.е. Оракловая сессия живая, а из rtl_users цфт-сессия пропадает.
Ну и потом, при первом обращении к rtl.read() - валится ошибка - 'не зарегистрирован'.
RTL.GET_DEBUG_TEXT - да, вызываем!
Но вызываем ДО запроса, в запросе присутствуют функции - они вполне могут что-то писать в pipe (и этот пайп НЕ вычитывается - допускаю)...
А после выполнения запроса (30-40 мин) вычитывать пайп уже поздно - ошибка 'не зарегистрирован'
Код: | lsTmp := COMP.EXECUTOR.GET_DEBUG_TEXT(rtl.DEBUG2PIPE);
lsTmp := COMP.EXECUTOR.GET_DEBUG_TEXT(rtl.DEBUG2BUF); |
|
|
 |
maestro Профи
Вступление в Клуб: 12.10.2010
|
Вт Авг 25, 2015 14:39   |
|
Полезность: Нет оценки
|
Есть такая штука - unwrap10. Погуглите. |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Вт Авг 25, 2015 15:02   |
|
Полезность: Нет оценки
|
Большое спасибо за дельные советы.
Проблема решена.
Глюк - сделали и устранили сами, потеряв кучу нервов при этом. |
|
 |
Ярыж Участник со стажем
Вступление в Клуб: 14.05.2008
|
Ср Дек 09, 2015 16:38   |
|
Полезность: Нет оценки
|
Damir пишет: |
Большое спасибо за дельные советы.
Проблема решена.
Глюк - сделали и устранили сами, потеряв кучу нервов при этом. |
А не расскажете поподробнее что был за глюк и как его устраняли? У нас нечто похожее наблюдается при тестовой миграции на Oracle 12c SE2 |
|
 |
Damir Участник - экстремал
Вступление в Клуб: 29.03.2013
|
Чт Дек 10, 2015 12:45   |
|
Полезность: 1
|
Ярыж пишет: |
А не расскажете поподробнее что был за глюк и как его устраняли? У нас нечто похожее наблюдается при тестовой миграции на Oracle 12c SE2 |
наш вариант специфичный - вряд ли где-то воспроизведется - одно на другое наслоилось...
А изначально - действительно, количество ЦФТ-лицензий было недостаточным. В результате, когда стартовали периодические джобы (и создавали сессии, а им уже лицензий не хватало) - вот они вылетали по такой ошибке...
сейчас пока дома сижу - ЦФТ нет под рукой - поэтому по-памяти, могу наврать...
Просто вызвать rtl.open() не достаточно. Т.е. когда лицензий нет-кончились, то rtl.open() отрабатывает без ошибки (без эксепшена).
После rtl.open() необходимо проанализировать, действительно ли выполнилось открытие ЦФТ-сессии. Щас не помню, кажется возвращаемое значение rtl.open() или executor.is_open()...
Вот такой проверки у нас в коде не было, далее вызывалась операция - иногда успевала отработать, а иногда нет - сессия 'прибивалась' цфт-шным блокировщиком (джоба-блокировщик он же количество лицензий отслеживает).
Ну вот...вставили проверку на результат открытия цфт-сессии - эта ошибка ушла.
количество активных сессий можно посчитать
select count(*) from rtl.users (кажется еще -1, т.к. блокировщик сам себя не считает - это LOCK_INFO)
а количество лицензий...где посмотреть не помню, но Вы сами должны знать. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|