powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Mybatis vs Ora-04068
25 сообщений из 270, страница 4 из 11
Mybatis vs Ora-04068
    #40069753
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Резюмируя тему:
- спасибо всем коллегам за беседу.
- отдельное спасибо коллегам Stanislav Bashkyrtsev и SpringMan за ответы по существу.
В настоящее время мне представляется, что interceptor вписывается в условия задачи наилучшим образом.

Андрей Панфилов
написать декораторы в PL/SQL - ошибка летит оттуда, ну вот пусть оно через execute immediate и делает вызовы с перехватом.

базисты и джависты никогда не поймут друг друга :)

PetroNotC Sharp
Разве это возможно?

Возможно. Цена вопроса - лишняя прослойка из динамического sql.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069754
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
>История про то что на все вызовы нужно лепить catch звучит довольно странно
= до спринга всегда так и писали)
Просто можно вверху в стеке в контроллере поставить try.
А внизу 1500 методов без try
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069755
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
>Возможно. Цена вопроса - лишняя прослойка из динамического sql.
= это изврат. Поэтому считаем невозможно)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069756
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
mayton
Умный драйвер нас перебалансировал на другие
инстансы.

Поручик, ну как можно в приличном обществе так выражаться?!!!
Какой кластер, какой TAF, Вы о чем?!
Может, предложите обсудить в этом контексте cache fusion, result cache с его багами и условностями?
Вы еще про FAN вспомните или, не приведи Господь, про GoldenGate на каскадном стендбае...
Оффтопик это, злой оффтопик.
Тут даже сугубо ламповая тема про корректное использование переменных пакета на ровном месте целый холивар подняла

Почему такая реакция?

Я просто расширил спектр возможных ошибок. И спросил как быть.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069758
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Андрей Панфилов,
>История про то что на все вызовы нужно лепить catch звучит довольно странно
= до спринга всегда так и писали)


Чего так "и писали"? паттерн декоратор существует из покон веков, jdk-прокси, которые по сути и есть декораторы появились в 1.3 (май 2000, если что)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069759
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
>В настоящее время мне представляется, что interceptor вписывается в условия задачи наилучшим образом.
== обязательно отпишитесь после реального запуска.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069761
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Паттерн я знаю.
Как его тут применить не понял.
Особенно не трогая клиентский код а в субд.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069762
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

ну приложение получает DS обычно через какую-то фабрику, вот нужно сделать декоратор к DS, который на getConnection() будет отдавать другой декоратор, который в свою очередь будет на prepareStatement отдавать еще один декоратор, который будет перехватывать executeQuery() - выглядит вроде как мудрено, но в интернетах готовых реализаций декораторов наверное под сотню.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069763
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я просто расширил спектр возможных ошибок. И спросил как быть.

Вы затронули весьма специфическую тему, банально незнакомую многим из присутствующих.
Еще меньшее количество могут похвастаться практическим опытом осмысленной работы с обозначенными технологиями.
Причем наиболее простое решение проблемы TAF - по возможности объединить логику транзакции в один statement, положившись на механизмы statement level rollback и автоматически решив вопросы с необходимой предварительной инициализацией if any - многим представляется то громоздким, то идеологически неверным, особенно если речь заходит о серверном коде.
Потому и реакция - не следует множить сущности без необходимости.
Прошу прощения если паче чаяния задел.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069766
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Возможно я тебя не так понял.
Мы же код ТС не видели.
Например у него вызов хранимки так
Код: java
1.
2.
Mapper mapper = sqlSession.getMapper(Mapper.class);
List<StoredProcOutput> results = mapper.callStoredProcedure(inParam);


Вот примеительно к этому вызову я не понял твой рецепт.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069767
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

Андрей Панфилов
написать декораторы в PL/SQL - ошибка летит оттуда, ну вот пусть оно через execute immediate и делает вызовы с перехватом.

базисты и джависты никогда не поймут друг друга :)


у меня у самого где-то сертификат OCP валяется по 11g, так что относительно поймут/не поймут - тут спорно, смотрите какая штука получается на самом деле: вот есть ваша ORA-04068, по ней рекомендация "выполнить" еще раз, эта рекомендация настолько тупая, насколько это возможно: раз компенсация ошибки заключается в том нужно просто повторить вызов, то возникают вполне естественные вопросы:
- если СУБД стоит кучу денег, то чего она сама эту компенсацию не выполняет-то?
- а почему драйвер JDBC ее не выполняет?
- если писать хранимые процедуры считается круто, то почему эти процедуры сами не справляются с компенсацией?

при этом в протокол взаимодействия с СУБД (в разработке которого принимала участие и Oracle) никакой информации о том какая ошибка является фатальной, а какая нет, и какие компенсации предусмотрены, не заложено, что наводит на мысли, что с рекомендацией "просто повторить вызов" на самом деле не все так просто и нужно думать что делать в каждом конкретном случае.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069768
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Андрей Панфилов,
Возможно я тебя не так понял.
Мы же код ТС не видели.
Например у него вызов хранимки так
Код: java
1.
2.
Mapper mapper = sqlSession.getMapper(Mapper.class);
List<StoredProcOutput> results = mapper.callStoredProcedure(inParam);


Вот примеительно к этому вызову я не понял твой рецепт.


ну в sqlSession же датасорс откуда-то попадает...
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069769
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов,
Особенно прикольно когда он повторять долбить вызов будет в триггере от ОРМ
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069770
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
PetroNotC Sharp
Андрей Панфилов,
Возможно я тебя не так понял.
Мы же код ТС не видели.
Например у него вызов хранимки так
Код: java
1.
2.
Mapper mapper = sqlSession.getMapper(Mapper.class);
List<StoredProcOutput> results = mapper.callStoredProcedure(inParam);



Вот примеительно к этому вызову я не понял твой рецепт.


ну в sqlSession же датасорс откуда-то попадает...
понял теперь. Мудрено))).
Я бы с админом лучше договорился.
)))
Или реконнект приложения с открытием "как было".
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069771
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пишут всем юзерам рассылку. Дескыть сёдня после 20.00 будет плановое техобслуживание.
И ребутают что надо.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069773
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
у меня у самого где-то сертификат OCP валяется по 11g, так что относительно поймут/не поймут - тут спорно, смотрите какая штука получается на самом деле: вот есть ваша ORA-04068 ...
...нужно думать что делать в каждом конкретном случае.

Коллега, а философского образования у Вас случайно нет в коллекции?
А то уж очень сферично как по мне. Без привязки к конкретному контексту.
Да и на бОльшую часть вопросов ответы в топике присутствуют, что лишает их элемента новизны.
Сидят два мужика, выпивают. Один другого спрашивает:
— Слушай, а что такое логика?
— Ну как тебе объяснить… Видишь — вон два мужика идут, один грязный, другой чистый. Какой из них в баню идет?
— Грязный…
— Правильно. Он грязный, поэтому идет мыться. Вот это называется логикой.
— А что такое диалектика?
— Ну… Видишь, два мужика идут. Один грязный, а другой чистый. Кто из них в баню идет?
— Грязный…
— А вот и неправильно! Чистый. Грязный — он потому и грязный, что в баню никогда не ходит. Вот это называется диалектикой…
— Ну а что же тогда философия?
— Видишь… Два мужика идут, грязный и чистый. Какой из них в баню идет?
— А хрен его знает…
— Вот! Это как раз и есть философия
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069777
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous

Да и на бОльшую часть вопросов ответы в топике присутствуют, что лишает их элемента новизны.
Чет не увидел никаких ответов, увидел только странное желание писать довольно сомнительный код, а проблемы в коде перекидывать на приложение. Разработанные процедуры в БД - это ровно такое же API как select или update, т.е. разработчик приложения смотрит на них как на некий черный ящик, а выдавать из этого ящика ошибки в духе "попробуйте еще раз" где-то в середине транзакции - это откровенно дурной тон. Вон у Кайта рекомендуют использовать dynamic sql: https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:26075943863705, но вы-то скорее всего со своей колокольни думаете, что dynamic sql - это плохо, но почему вы решили, что перехват ошибки и повтор вызова в приложении - это хорошо?
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069784
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Чет не увидел никаких ответов

Ну давайте разберем детально.
Андрей Панфилов
вот есть ваша 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
или нет, как полагаете?
Спасибо за внимание.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069789
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
>не раскидывая по коду ненужные catch.
= вот как может прогер писать что по коду раскиданы ненужные catch?
)))
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069791
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Развратила декларативность программистов.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069803
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

Интересная ссылка.

Кайт пробует сначала подавить в стиле "понимаете ли вы вообще, что такое скомпилированное приложение?",
но Кустовский не гнётся, и в весьма твёрдой манере формулирует технический запрос на то, что потом, по реализации,
стали называть Edition Based Redefinition.

Сдаётся мне, что товарищ Кустовский из разработчиков OEBS, или иного приклада от самого Oracle.
(Что-то не сильно слышно о широком применении этого творения за пределами собственно экосистемы Oracle)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069806
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Кустовский - Кутровский, сорри.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069829
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Пишут всем юзерам рассылку. Дескыть сёдня после 20.00 будет плановое техобслуживание.
И ребутают что надо.
Я вас умоляю. В который уже раз.
Допустим, что вы такую рассылку сделали ...
Как её прочитает какой-нибудь "интеграционный робот"? Люди? А вы знаете кто это? А людям из совершенной другой организационной структуры (другой организации) есть вообще дело до вашей рассылки? А есть у них информация, чтобы решить - когда им можно?
А вы точно уверены, что никто из "важного начальства" не ожидает выполнения в 20:01 "важной сделки на лярд баксов"?

P.S.
Нет, технологическое окно, конечно, отыскивают. Просто делается это несколько сложнее, чем "намылить оповещение".
Где-то на этих форумах была история про обновление ПО крупного оптового склада - несколько часов один раз в конкретный день года. Можно ли в другое время? Да без базару. Оплачиваете простой склада, убытки контрагентов и - любой каприз за ваши деньги.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069832
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Почему обычным балансировщиком не направить на другую базу?
Для автоматов просто завершают сессию.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40069833
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
Завершение сессии это рядовая операция при веб.
Все ее умеют.
ТС не умеет и не хочет)
...
Рейтинг: 0 / 0
25 сообщений из 270, страница 4 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / Mybatis vs Ora-04068
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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