powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Отловить отстрел процедуры от базы!?
16 сообщений из 16, страница 1 из 1
Отловить отстрел процедуры от базы!?
    #33494531
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый времени суток Вам! Хотел бы задать такой смешной вопросик! У нас существует несколько комплексов отчётности, котрые берут данные от общих ресурсов! Так как расчёт идёт на общих ресурсах, то некий злой администратор отстреливает процедуру расчёта к примеру из некоего программного комплекса! При отстреле конечно пишется ошибка ct_connected() - error. Пользователь не знает этой ошибки и идёт материться к нам (бедным программистам)! Как отловить данную ошибку (типа dw.error() ... ) и вывести юзерам типа messagebox ("Внимание", 'Вас отстрелили от сервера обращайтесь к админу!'). Pb -7, Pb-9, Sybase -12.5. Зараннее всем спасибо!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495186
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А показать примерчик как вызывается эта процедура расчета можно?
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495198
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а перед ретрайвом делать маленький селект и проверку на ошибку?
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495203
Фотография ЗоринАндрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если это не ретрайв, а RPC и ошибка происходит после того как его запустили уже?
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495213
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда смотреть что эта ошибка - ct_connect
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495313
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Процедура вызывается по разному, в 9 -ке процедура вызывается при ретриве datawindow. Просто для формирования отчётности (например 402 форма) отчёт делается минут 10, если в это время серверу плохо (перегружен расчётами или tempdb - засрал..-сь), то начинается отстрел процедур (kill process). Процедура может вызываться просто через exec proc_253 using sql_tran - к примеру на 7 -ке; Неужели с этим никто не сталкивался! Ошибки типа - Aplication aplay и тому подобное! Спасибо!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495316
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ошибка происходитв основном во время долгого retrive() - когда убивается процесс!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495543
SergeyGor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверно должна быть функция обработки ошибок,
а в ней для Oracle примерно такой текст

CHOOSE CASE p_sqldbcode
.........
.......
CASE 60
MessageBox(txt,'Операция прервана. ПЕРЕГРУЗКА СИСТЕМЫ')
goto m_txt
CASE 257,1034,1033,1035,1089,1090,12500
exit_programm = NOT error.start_post
error.start_post=false
error.error_oracle=true
error.last_errtext=p_sqlerrtext
MessageBox('','БД УКЭР Остановлена~nт.хх-хх-хх Петров Михаил')
IF exit_programm THEN
HALT CLOSE
ELSE
OpenWithParm(w_error_oracle,p_sqldbcode)
RETURN true
END IF
CASE 942
MessageBox(txt,'У Вас нет прав до этой информации')
goto m_txt
CASE 1012
error.start_post=false
error.error_oracle=true
error.last_errtext=p_sqlerrtext
MessageBox(txt,'Ваш ПРОЦЕСС убили!')
OpenWithParm(w_error_oracle,p_sqldbcode)
RETURN true
CASE 1013
MessageBox(txt,'Операция прервана')
RETURN true
CASE 1031
MessageBox(txt,'У Вас нет прав на выполнение такой операции.')
RETURN true
CASE 1400
MessageBox(txt,'Не все ОБЯЗАТЕЛЬНЫЕ ПОЛЯ заполнены')
goto m_txt
CASE 1401
MessageBox(txt,'Текст превысил размеры поля')
goto m_txt
CASE 1653
err_txt='Нет места в БАЗЕ'
CASE 1756
MessageBox(txt,'Из строки УБРАТЬ КАВЫЧКИ')
goto m_txt
CASE 2019
MessageBox(txt,'Времено отсутствует соединение с удаленной базой данных.~nПовторите попытку.')
RETURN true
CASE 980,2068
MessageBox(txt,'Ошибка УДАЛЕННОГО СЕРВЕРА.~nОшибка зафиксирована. Будем разбираться.')
goto m_txt
CASE 3113,3114,12203 // обрыв с Базой
error.start_post=false
error.error_oracle=true
error.last_errtext=p_sqlerrtext
OpenWithParm(w_error_oracle,p_sqldbcode)
RETURN true
CASE 12569,12571
err_txt='Ошибка в линии связи'
CASE 20500
err_txt=p_sqlerrtext
CASE ELSE
err_txt='Ошибка '+'~013~010SQLCode='+string(p_sqlcode)+&
'~013~010SQLDBCode='+String(p_sqldbcode)+ "~013~010~013~010"+p_sqlerrtext
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33495982
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>To SergeyGor!
Oracle он более универсален, достаточно выводить sqlerrortext!А вот Sybase похуже, ладно буду копаться в событии dberror. Спасибо!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33496713
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по идее должно быть это сообщение
в dberror есть все параметры транзакции
так что проблем не вижу

Connection was terminated
SQLCODE -308 (должно быть в параметре SQLDBCode транзакции или dberror)
Constant SQLE_CONNECTION_TERMINATED
SQLSTATE 40W07
Sybase error code 4224
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33497046
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это понятно! Что необходимо использовать CHOOSE CASE sqldbcode... - это понятно, вот только где бы посмотреть, коды ошибок! Например
1. База зависла и не отвечает.
2. Отстрел процедуры расчёта (kiled proces).
3. Отвалилась сеть (физические неполадки во время ретрива) - поверьте и такое бывает!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33497215
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boogimanЭто понятно! Что необходимо использовать CHOOSE CASE sqldbcode... - это понятно, вот только где бы посмотреть, коды ошибок! Например
1. База зависла и не отвечает.
2. Отстрел процедуры расчёта (kiled proces).
3. Отвалилась сеть (физические неполадки во время ретрива) - поверьте и такое бывает!
Я думаю в руководстве к соответствующей БД. Но можно обойтись и без этого. Отстрелили процедуру - смотрите код возврата. Вытащили кабель из сети - смотрите код возврата, нажали reset на сервере (ну если сервер тестовый) и смотрите код возврата.
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33497877
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>To Локшин Марк!
Марк, не ожидал от Вас такое услышать, я конечно верю в эмпирический метод исследований (его помнится Томас Эдисон тоже уважал), но я думал - вы их и так знаете! Типа разбуди Вас ночью, а вы сразу sqldbcode = 176 - это отстрел от базы понимаешь! Ну ладно попробуем о результатах как нибудь отспешу! Всё равно спасибo!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33498074
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boogimanМарк, не ожидал от Вас такое услышать, я конечно верю в эмпирический метод исследований (его помнится Томас Эдисон тоже уважал), но я думал - вы их и так знаете! Типа разбуди Вас ночью, а вы сразу sqldbcode = 176 - это отстрел от базы понимаешь!
Код: plaintext
SQLDBCode	Long	The database vendor's error code.
Я же не могу за Вас открыть руководство по вашей СУБД и прочитать. Этот код понимаете-ли для каждой СУБД разный.
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33498232
boogiman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> T0 Локшин Марк! Сорри я почему то думал,что вы с субд Sybase тоже работаете! Ещё раз сорри!
...
Рейтинг: 0 / 0
Отловить отстрел процедуры от базы!?
    #33498302
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У сайбеса тоже есть хелп :)
ASA
ASE
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Отловить отстрел процедуры от базы!?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]