Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Привет! Натолкните на мысль, пожалуйста, как навести порядок со всеми сообщениями пользователю, при нарушении им целостности БД. Дело в том, что не всегда есть время на правильную обработку ожидаемых исключений. Иногда откладываешь эту работу на потом. А когда наступает "потом" уже не так просто выявить все эти исключения. Вот у меня и возникла идея: всё журналировать, а потом исправлять дефекты в ПО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 11:06 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Курдль, Валидацию использовать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 11:52 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
А что вы называете правильной обработкой ожидаемых исключений? Вот пользователь нажал "сохранить", апеск выполнил insert или update, оракл выдал ORA-00001 в ответ и ничего не сохранил. И? Что именно вы хотите отложить на потом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:21 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Курдль, см. apex error handler function, в документации даже есть пример, как ловить констраты . Начиная с 5.0 ловит в том числе и ошибки при отрисовке компонент типа регионов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:43 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
SvDev, *констранты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 12:44 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
SvDevсм. apex error handler function, в документации даже есть пример, как ловить констраты. Начиная с 5.0 ловит в том числе и ошибки при отрисовке компонент типа регионов. Да, спасибо! Я это имел в виду! Никанор КузьмичА что вы называете правильной обработкой ожидаемых исключений? Вот пользователь нажал "сохранить", апеск выполнил insert или update, оракл выдал ORA-00001 в ответ и ничего не сохранил. И? Что именно вы хотите отложить на потом? Да, такой ситуации, как Вы описываете не должно быть. Но иногда рук. проекта задает вопрос: "Что можно сделать, чтобы сократить сроки вывода в эксплуатацию?.." Тогда, например, предлагаешь забить на обработку ожидаемых исключений. РП говорит "Ок! Принимаю риски на себя". А через какое-то время у проекта доходят руки до наведения порядка. Сталкивались с такой ситуацией? блкангелКурдль, Валидацию использовать :) Какую именно валидацию? Например, каждый раз дёргать сложный рекурсивный запрос для выявления недопустимых комбинаций данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:04 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльблкангелКурдль, Валидацию использовать :) Какую именно валидацию? Например, каждый раз дёргать сложный рекурсивный запрос для выявления недопустимых комбинаций данных? Вообще апекс автоматически сам создает процессы валидации, на основе существующих ограничений в БД. Вам остается только сделать сообщения на русском. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 13:21 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльНиканор КузьмичА что вы называете правильной обработкой ожидаемых исключений? Вот пользователь нажал "сохранить", апеск выполнил insert или update, оракл выдал ORA-00001 в ответ и ничего не сохранил. И? Что именно вы хотите отложить на потом?Да, такой ситуации, как Вы описываете не должно быть. Но иногда рук. проекта задает вопрос: "Что можно сделать, чтобы сократить сроки вывода в эксплуатацию?.." Тогда, например, предлагаешь забить на обработку ожидаемых исключений. РП говорит "Ок! Принимаю риски на себя".Я имел в виду технические подробности, а не организационные. Возможно, error_logging_clause спасет отца русской демократии? Если коротко передать суть, то "неправильная" запись, которая не лезет в таблицу, валится в другую таблицу (для логгинга) с пометкой, где и что пошло не так. А юзеру можно сказать "ты фигню какую-то ввел, в базу не лезет, потом разберемся". КурдльА через какое-то время у проекта доходят руки до наведения порядка. Сталкивались с такой ситуацией?С какой такой? Когда руководитель говорит "ну и что что решето, баг на баге, выкладывай, а там разберемся"? Не, не сталкивался. Я даже не сталкивался с руководителями, которые за такие предложения не бьют сразу же по морде. Вы в госсекторе что ли работаете? Это единственное место, где всем плевать на качество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:02 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Никанор КузьмичВы в госсекторе что ли работаете? Это единственное место, где всем плевать на качество. А Вы в России вообще работаете, или о какой-то другой стране говорите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:35 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльНиканор КузьмичВы в госсекторе что ли работаете? Это единственное место, где всем плевать на качество. А Вы в России вообще работаете, или о какой-то другой стране говорите? В российском госсекторе не работал, врать не буду. Но приходится иногда пользоваться результатами поделок чиновников (типа госуслуг) или читать о том, как работают специализированные системы (ЕГАИС, Платон, раздача земли на ДВ), и мое мнение как пользователя - это кристально чистое, эталонное г-но. Однажды на одном из моих мест работы (частный банк) мой начальник слегка испортил отношения с начальством повыше и начал саботировать некоторые указания. Я по его просьбе сделал кое-что не очень качественно, но даже когда специально делал плохо, у меня не было такого треша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 14:47 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Никанор Кузьмич, Для государства часто пишут те же самые коммерческие компании, что и не для государства: бухгалтерия, документооборот, отдел кадров и т.д., включая разработку специфических для заведения задач. А требования к качеству зависят как и везде: от местного руководства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.04.2017, 15:43 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Никанор Кузьмич, +1 вы дело говорите. Странная ситуация описывается. Нужно привести более конкретный пример. Если вставляли ФИО и в базе уже есть это ФИО, то что и "куда на потом" сохранять? ) Никанор Кузьмичто "неправильная" запись, которая не лезет в таблицу, валится в другую таблицу (для логгинга) с пометкой, где и что пошло не так. А юзеру можно сказать "ты фигню какую-то ввел, в базу не лезет, потом разберемся". да. Как вариант. Но только в качестве логов. Т.к. решение по БЛ нужно принимать сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2017, 11:57 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
_Мимоходом_Для государства часто пишут те же самые коммерческие компании это уже OFFTOP какой то пошёл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2017, 11:58 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Курдль, ещё один вариант приведения сообщений и исключений в порядок: - это решение для Оракле при БЛ в СУБД. (перехват) ====================== Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. потом в БЛ в БД или апексе вызываем: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2017, 14:13 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
SvDevКурдль, см. apex error handler function, в документации даже есть пример, как ловить констраинты . Начиная с 5.0 ловит в том числе и ошибки при отрисовке компонент типа регионов. Огромное спасибо, коллега! Это то, что дохтур прописал! P.S. Для всех, кто тыкает меня носом в лужу за производство некачественного ПО, сообщаю: существует такая методология производства "Agile", при которой Product Owner, в том числе, расставляет приоритеты, устанавливает критерии качества спринта и мн.др. Таким образом, если он говорит: "Гоним без остановки - плачу 2 счётчика!" - никто с ним не спорит ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 19:42 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Petro123Курдль, ещё один вариант приведения сообщений и исключений в порядок: - это решение для Оракле при БЛ в СУБД. (перехват) Это решение для тех, кто решил забить на преимущества АРЕХ в автоматическом создании DML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 19:45 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльЭто решение для тех, кто решил забить на преимущества АРЕХ в автоматическом создании DML? т.е. наличие такого кода в триггере у тебя даже мысли не возникает? Наверно ты забил на триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 19:58 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльТаким образом, если он говорит: "Гоним без остановки - плачу 2 счётчика!" - никто с ним не спорит ;) Если таксист нарушает правила ПДД, ты с ним споришь? )) Шутка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:01 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Petro123т.е. наличие такого кода в триггере у тебя даже мысли не возникает? Наверно ты забил на триггеры. Я использую триггеры для поддержки целостности данных и реакции на ожидаемые исключения. Проблема была в "автоматических" DML. Еще вопрос: возможно ли протоколировать, что за DML привёл к ошибке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2017, 12:44 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльПроблема была в "автоматических" DML. Привёл бы пример конкретный. Если полностью "полный автомат" то в 4-ке я такую проблему не решил. Поставил костыль вот такой Сообщения пользователю. Дружественные)) Но там ошибка былоа от апекса а не от СУБД. От субд можно любую ошибку перехватить и заменить на строку по русски с человеческим сообщением. Как выше привёл пример. Ещё раз - приведи конкретный пример и конкретную ошибку для перехвата. В первом посте ты написал что надо "на потом". Я на потом редко когда откладываю. Решаю сразу. Поэтому тебя не понимаю. КурдльЕще вопрос: возможно ли протоколировать, что за DML привёл к ошибке? там же где идёт замена на текст человеческий, там же и пишется в протокол. Если нужно в автономной транзакции, но мне это не требовалось (писать протокол отменённого). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2017, 13:09 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
Petro123Привёл бы пример конкретный. Пример очевидный. В тривиальных случаях с модификацией данных справляются типовые процессы APEX типа Automatic Row Processing (DML), MRU, MRD и т.п. В моём приложении они оставляют "след", благодаря триггерам After IUD (когда DML завершаются успешно). Когда происходит ошибка, я могу реагировать на них, благодаря handler function. Т.е. я вижу сами ошибки, но для понимания, что за DML её вызвало, мне надо логгировать еще и Before IUD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2017, 12:46 |
|
||
|
Журналирование всех нарушений целостности
|
|||
|---|---|---|---|
|
#18+
КурдльПример очевидный. пример, это номер сообщения ORA - ????? Перечитал ещё раз тему и нет конкретики. Увы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2017, 14:48 |
|
||
|
|

start [/forum/topic.php?fid=50&msg=39435157&tid=1874389]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
183ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 323ms |

| 0 / 0 |
