CftClub.ru
Клуб специалистов ЦФТ-Банк

Внезапно: ORA-01017: неверно имя пользователя/пароль

 
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы
Предыдущая тема :: Следующая тема  
Автор Сообщение
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    Ответить с цитатой
Полезность: Нет оценки
maestro пишет:
...

Большое спасибо за дельные советы.
Проблема решена.
Глюк - сделали и устранили сами, потеряв кучу нервов при этом.
Ярыж
Участник со стажем


Вступление в Клуб: 14.05.2008
СообщениеСр Дек 09, 2015 16:38    Ответить с цитатой
Полезность: Нет оценки
Damir пишет:
maestro пишет:
...

Большое спасибо за дельные советы.
Проблема решена.
Глюк - сделали и устранили сами, потеряв кучу нервов при этом.


А не расскажете поподробнее что был за глюк и как его устраняли? У нас нечто похожее наблюдается при тестовой миграции на 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)
а количество лицензий...где посмотреть не помню, но Вы сами должны знать.
Показать сообщения:   
Ответить на тему    Клуб специалистов ЦФТ-Банк (IBSO) -> Справочник PL/PLUS: Функции, примеры, приёмы Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Рейтинг@Mail.ru