|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Резюмируя тему: - спасибо всем коллегам за беседу. - отдельное спасибо коллегам Stanislav Bashkyrtsev и SpringMan за ответы по существу. В настоящее время мне представляется, что interceptor вписывается в условия задачи наилучшим образом. Андрей Панфилов написать декораторы в PL/SQL - ошибка летит оттуда, ну вот пусть оно через execute immediate и делает вызовы с перехватом. базисты и джависты никогда не поймут друг друга :) PetroNotC Sharp Разве это возможно? Возможно. Цена вопроса - лишняя прослойка из динамического sql. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:26 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов, >История про то что на все вызовы нужно лепить catch звучит довольно странно = до спринга всегда так и писали) Просто можно вверху в стеке в контроллере поставить try. А внизу 1500 методов без try ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:29 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous, >Возможно. Цена вопроса - лишняя прослойка из динамического sql. = это изврат. Поэтому считаем невозможно) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:30 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous mayton Умный драйвер нас перебалансировал на другие инстансы. Поручик, ну как можно в приличном обществе так выражаться?!!! Какой кластер, какой TAF, Вы о чем?! Может, предложите обсудить в этом контексте cache fusion, result cache с его багами и условностями? Вы еще про FAN вспомните или, не приведи Господь, про GoldenGate на каскадном стендбае... Оффтопик это, злой оффтопик. Тут даже сугубо ламповая тема про корректное использование переменных пакета на ровном месте целый холивар подняла Почему такая реакция? Я просто расширил спектр возможных ошибок. И спросил как быть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:39 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Андрей Панфилов, >История про то что на все вызовы нужно лепить catch звучит довольно странно = до спринга всегда так и писали) Чего так "и писали"? паттерн декоратор существует из покон веков, jdk-прокси, которые по сути и есть декораторы появились в 1.3 (май 2000, если что) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:44 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous, >В настоящее время мне представляется, что interceptor вписывается в условия задачи наилучшим образом. == обязательно отпишитесь после реального запуска. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:46 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Паттерн я знаю. Как его тут применить не понял. Особенно не трогая клиентский код а в субд. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:48 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, ну приложение получает DS обычно через какую-то фабрику, вот нужно сделать декоратор к DS, который на getConnection() будет отдавать другой декоратор, который в свою очередь будет на prepareStatement отдавать еще один декоратор, который будет перехватывать executeQuery() - выглядит вроде как мудрено, но в интернетах готовых реализаций декораторов наверное под сотню. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 19:54 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
mayton Я просто расширил спектр возможных ошибок. И спросил как быть. Вы затронули весьма специфическую тему, банально незнакомую многим из присутствующих. Еще меньшее количество могут похвастаться практическим опытом осмысленной работы с обозначенными технологиями. Причем наиболее простое решение проблемы TAF - по возможности объединить логику транзакции в один statement, положившись на механизмы statement level rollback и автоматически решив вопросы с необходимой предварительной инициализацией if any - многим представляется то громоздким, то идеологически неверным, особенно если речь заходит о серверном коде. Потому и реакция - не следует множить сущности без необходимости. Прошу прощения если паче чаяния задел. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:01 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Возможно я тебя не так понял. Мы же код ТС не видели. Например у него вызов хранимки так Код: java 1. 2.
Вот примеительно к этому вызову я не понял твой рецепт. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:16 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous Андрей Панфилов написать декораторы в PL/SQL - ошибка летит оттуда, ну вот пусть оно через execute immediate и делает вызовы с перехватом. базисты и джависты никогда не поймут друг друга :) у меня у самого где-то сертификат OCP валяется по 11g, так что относительно поймут/не поймут - тут спорно, смотрите какая штука получается на самом деле: вот есть ваша ORA-04068, по ней рекомендация "выполнить" еще раз, эта рекомендация настолько тупая, насколько это возможно: раз компенсация ошибки заключается в том нужно просто повторить вызов, то возникают вполне естественные вопросы: - если СУБД стоит кучу денег, то чего она сама эту компенсацию не выполняет-то? - а почему драйвер JDBC ее не выполняет? - если писать хранимые процедуры считается круто, то почему эти процедуры сами не справляются с компенсацией? при этом в протокол взаимодействия с СУБД (в разработке которого принимала участие и Oracle) никакой информации о том какая ошибка является фатальной, а какая нет, и какие компенсации предусмотрены, не заложено, что наводит на мысли, что с рекомендацией "просто повторить вызов" на самом деле не все так просто и нужно думать что делать в каждом конкретном случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:18 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Андрей Панфилов, Возможно я тебя не так понял. Мы же код ТС не видели. Например у него вызов хранимки так Код: java 1. 2.
Вот примеительно к этому вызову я не понял твой рецепт. ну в sqlSession же датасорс откуда-то попадает... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:19 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Особенно прикольно когда он повторять долбить вызов будет в триггере от ОРМ ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:21 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов PetroNotC Sharp Андрей Панфилов, Возможно я тебя не так понял. Мы же код ТС не видели. Например у него вызов хранимки так Код: java 1. 2.
Вот примеительно к этому вызову я не понял твой рецепт. ну в sqlSession же датасорс откуда-то попадает... Я бы с админом лучше договорился. ))) Или реконнект приложения с открытием "как было". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:25 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Пишут всем юзерам рассылку. Дескыть сёдня после 20.00 будет плановое техобслуживание. И ребутают что надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:38 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов у меня у самого где-то сертификат OCP валяется по 11g, так что относительно поймут/не поймут - тут спорно, смотрите какая штука получается на самом деле: вот есть ваша ORA-04068 ... ...нужно думать что делать в каждом конкретном случае. Коллега, а философского образования у Вас случайно нет в коллекции? А то уж очень сферично как по мне. Без привязки к конкретному контексту. Да и на бОльшую часть вопросов ответы в топике присутствуют, что лишает их элемента новизны. Сидят два мужика, выпивают. Один другого спрашивает: — Слушай, а что такое логика? — Ну как тебе объяснить… Видишь — вон два мужика идут, один грязный, другой чистый. Какой из них в баню идет? — Грязный… — Правильно. Он грязный, поэтому идет мыться. Вот это называется логикой. — А что такое диалектика? — Ну… Видишь, два мужика идут. Один грязный, а другой чистый. Кто из них в баню идет? — Грязный… — А вот и неправильно! Чистый. Грязный — он потому и грязный, что в баню никогда не ходит. Вот это называется диалектикой… — Ну а что же тогда философия? — Видишь… Два мужика идут, грязный и чистый. Какой из них в баню идет? — А хрен его знает… — Вот! Это как раз и есть философия ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 20:48 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous Да и на бОльшую часть вопросов ответы в топике присутствуют, что лишает их элемента новизны. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 21:17 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов Чет не увидел никаких ответов Ну давайте разберем детально. Андрей Панфилов вот есть ваша ORA-04068, Не моя, но ладно. Есть 4068. Это конкретика. Андрей Панфилов "выполнить" еще раз, эта рекомендация настолько тупая, насколько это возможно: Это Ваше оценочное суждение. Причем, по всей видимости, без привязки к факту, поскольку: oerr ora -4068ORA-04068: existing state of packages string has been discarded ... Action: Try again after proper re-initialization of any application's state. re-initialization не требуется, но тупо же просто выполнить рекомендацию, верно? Надо обязательно... что? Сидеть и думать. Ага. Это было остро... остро? На самом деле нет. Далее сферические рассуждения: Андрей Панфилов раз компенсация ошибки заключается в том нужно просто повторить вызов, то возникают вполне естественные вопросы: - если СУБД стоит кучу денег, то чего она сама эту компенсацию не выполняет-то? - а почему драйвер JDBC ее не выполняет? - если писать хранимые процедуры считается круто, то почему эти процедуры сами не справляются с компенсацией? на которые даже был даден ответ: andrey_anonymous Leonid Kudryavtsev В данном случае, это вполне нормальная ошибка. Состояние пакетов поменялось, результат работы (в общем случае) непредсказуем. С точки зрения вендора случай действительно "общий", и логика генерации исключительной ситуации в данном случае понятна. Но приложение - это всегда частность, и данную исключительную ситуацию надо просто корректно отработать. В данном конкретном случае никакой неопределенности нет и хочется сделать это, не раскидывая по коду ненужные catch. Потом была отвлечённая философия, никак с темой топика не связанная... Андрей Панфилов при этом в протокол взаимодействия с СУБД (в разработке которого принимала участие и Oracle) никакой информации о том какая ошибка является фатальной, а какая нет, и какие компенсации предусмотрены, не заложено, что наводит на мысли, что с рекомендацией "просто повторить вызов" и завершившаяся конгениальной рекомендацией Андрей Панфилов на самом деле не все так просто и нужно думать что делать в каждом конкретном случае. на которую я, будучи, несомненно, преисполнен благодарности, все-таки отмечу: я уже подумал прежде, чем задать вопрос. Андрей Панфилов , увидел только странное желание писать довольно сомнительный код, а проблемы в коде перекидывать на приложение. Разработанные процедуры в БД - это ровно такое же API как select или update, т.е. разработчик приложения смотрит на них как на некий черный ящик, а выдавать из этого ящика ошибки в духе "попробуйте еще раз" где-то в середине транзакции - это откровенно дурной тон. Ваше мнение очень ценно для меня. Жаль, что оно, опять-таки, совершенно не в контексте топика и потому не очень интересно, даже несмотря на не относящиеся к делу ссылки: Андрей Панфилов Вон у Кайта рекомендуют использовать dynamic sql Далее последовал сеанс чтения мыслей Андрей Панфилов но вы-то скорее всего со своей колокольни думаете, что dynamic sql - это плохо, с разоблачением Андрей Панфилов но почему вы решили, что перехват ошибки и повтор вызова в приложении - это хорошо? И вот теперь скажите мне, Андрей Панфилов, если бы я в ответ на Ваше " странное желание писать сомнительный код " отвечал Вам так же, как Вы мне - удостоился бы я 12082346 или нет, как полагаете? Спасибо за внимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 21:49 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
andrey_anonymous, >не раскидывая по коду ненужные catch. = вот как может прогер писать что по коду раскиданы ненужные catch? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 22:14 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Развратила декларативность программистов. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 22:16 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Андрей Панфилов ... Вон у Кайта ...: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:26075943863705 ... Интересная ссылка. Кайт пробует сначала подавить в стиле "понимаете ли вы вообще, что такое скомпилированное приложение?", но Кустовский не гнётся, и в весьма твёрдой манере формулирует технический запрос на то, что потом, по реализации, стали называть Edition Based Redefinition. Сдаётся мне, что товарищ Кустовский из разработчиков OEBS, или иного приклада от самого Oracle. (Что-то не сильно слышно о широком применении этого творения за пределами собственно экосистемы Oracle) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.05.2021, 23:42 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
booby, Кустовский - Кутровский, сорри. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 00:13 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
mayton Пишут всем юзерам рассылку. Дескыть сёдня после 20.00 будет плановое техобслуживание. И ребутают что надо. Допустим, что вы такую рассылку сделали ... Как её прочитает какой-нибудь "интеграционный робот"? Люди? А вы знаете кто это? А людям из совершенной другой организационной структуры (другой организации) есть вообще дело до вашей рассылки? А есть у них информация, чтобы решить - когда им можно? А вы точно уверены, что никто из "важного начальства" не ожидает выполнения в 20:01 "важной сделки на лярд баксов"? P.S. Нет, технологическое окно, конечно, отыскивают. Просто делается это несколько сложнее, чем "намылить оповещение". Где-то на этих форумах была история про обновление ПО крупного оптового склада - несколько часов один раз в конкретный день года. Можно ли в другое время? Да без базару. Оплачиваете простой склада, убытки контрагентов и - любой каприз за ваши деньги. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 05:58 |
|
Mybatis vs Ora-04068
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, Почему обычным балансировщиком не направить на другую базу? Для автоматов просто завершают сессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2021, 06:32 |
|
|
start [/forum/topic.php?fid=59&msg=40069769&tid=2120449]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 234ms |
total: | 515ms |
0 / 0 |