powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Mybatis vs Ora-04068
25 сообщений из 270, страница 6 из 11
Mybatis vs Ora-04068
    #40070049
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А что 11-тка уже автоматом восстанавливает зависимые интерфейсы пакетов?

В 11.2 так:
https://docs.oracle.com/cd/E18283_01/server.112/e17120/general007.htm
About Object Dependencies and Object InvalidationOracle Database provides an automatic mechanism to ensure that a dependent object is always up to date with respect to its referenced objects. When a dependent object is created, the database tracks dependencies between the dependent object and its referenced objects. When a referenced object is changed in a way that might affect a dependent object, the dependent object is marked invalid. An invalid dependent object must be recompiled against the new definition of a referenced object before the dependent object can be used. Recompilation occurs automatically when the invalid dependent object is referenced .

но еще раз спрошу:
- какое это имеет отношение к теме топика и обсуждаемым решениям?
- какое это имеет отношение к ветке java?
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070050
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ты смешал два вопроса.
1. При смене хранимки админ должен перекомпилить сам невалидные пакеты что затронулись.
2. Но это не поможет и не исключит если кто торчал в сессии.
По п. 1 я писал цикл на PL и компилил невалидные.
По п. 2 писал выше. Вечером обновлял
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070062
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
mayton
А что 11-тка уже автоматом восстанавливает зависимые интерфейсы пакетов?

В 11.2 так:
https://docs.oracle.com/cd/E18283_01/server.112/e17120/general007.htm
About Object Dependencies and Object InvalidationOracle Database provides an automatic mechanism to ensure that a dependent object is always up to date with respect to its referenced objects. When a dependent object is created, the database tracks dependencies between the dependent object and its referenced objects. When a referenced object is changed in a way that might affect a dependent object, the dependent object is marked invalid. An invalid dependent object must be recompiled against the new definition of a referenced object before the dependent object can be used. Recompilation occurs automatically when the invalid dependent object is referenced .


но еще раз спрошу:
- какое это имеет отношение к теме топика и обсуждаемым решениям?
- какое это имеет отношение к ветке java?

Ну сорян. Тогда по зависимостям интерфейса я снимаю вопрос. Но ты всё таки пришел в форум
Java из форума Oracle. Значит тебе нужен совет Java-разработчиков о том как подобный класс ошибок
решается на их стороне.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070066
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Значит тебе нужен совет Java-разработчиков о том как подобный класс ошибок
решается на их стороне.

Именно.
Но, как выяснилось, Java-разработчики (впрочем, как и оракловые) за редким исключением предпочитают обсуждать интеллектуальные способности и квалификацию ТС :)
Особо доставляет читать рассуждения о правилах игры на чужом поле :)
Впрочем, два ответа о трех вариантах на исходный вопрос я таки получил, коллеги прорабатывают.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070070
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
>Но, как выяснилось,
= вот все знают, а ты нет). Внезапно))))
"ТС на любой ветке форума работает больше отвечающих и не артачится.. обычно" (с)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070071
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
по зависимостям интерфейса я снимаю вопрос.

Могу подкинуть развитие примера на поиграться самостоятельно в интересующей версии oracle.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
create or replace package dropme_p_dep
is
  type t_c is table of dropme_p.c%rowtype;
  function f(p int) return t_c pipelined;
end;
/

create or replace package body dropme_p_dep
is
  function f(p int) return t_c pipelined is
  begin
    for i in (select * from dropme_p.f(p)) loop
      pipe row (i);
    end loop;
  end;
end;
/

--Тестовый вызов, соответственно, меняется на 
select * from dropme_p_dep.f(3);

--Провокации прежние - alter compile, alter compile body, пересоздание некорректной спеки/некорректной тушки

--Проверять текущий статус объектов разработки (не состояния пакетов, а именно статус) можно посредством 
select object_name, object_type, status from user_objects where object_name like 'DROPME_P%';
-- это в комбинации со стеком ошибок позволяет "видеть", как работает/не работает автоматическая компиляция зависимых объектов


Задача прежняя - показать, как зациклится обработчик ORA-04068 :)
...как его зациклить искусственно я тоже могу показать, но это не из реального мира сценарий.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070077
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
andrey_anonymous,
>Но, как выяснилось,
= вот все знают, а ты нет). Внезапно))))

Мир Ваших иллюзий столь трогателен, что я чту в немом восхищении.
Пожалуйста, не останавливайтесь - я даже начал собирать коллекцию Ваших перлов... и выперлов.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070083
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Жду коллекцию)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070085
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Финализируя тему: механизм штатных интерцепторов в итоге устроил.
Проблема подавления ora-4068 в батике без модификации кода нашего проекта решена.
Еще раз спасибо коллегам SpringMan и Stanislav Bashkyrtsev за полезные ответы, позволившие сильно облегчить жизнь на проекте.
Коллеге PetroNotC Sharp - отдельная благодарность за доставленные лулзы.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070089
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Без кода интерцептора незачет.
Так индусы тему закрывают.
Заходи еще))))
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070094
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код?
Зачем код, ежели оно изначально не то, не там, не так, не тем и не по тому месту?
А впрочем... Наши джависты нарисовали так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
@Slf4j
@Intercepts({
        @Signature(type = Executor.class, method = "queryCursor",
                args = { MappedStatement.class, Object.class, RowBounds.class}),
        @Signature(type= Executor.class, method = "query",
                args = { MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})
})
public class RetryInterceptor implements Interceptor {
    @Override
    public Object intercept(Invocation invocation) throws Throwable {
        Object returnObject;
        try {
            returnObject = invocation.proceed();
        } catch (Exception e) {
            if (e.getCause() instanceof SQLException) {
                if (e.getCause().getMessage().contains("ORA-04068")) {
                    log.debug("Exception ORA-04068, повтор");
                    return invocation.proceed();
                }
            }
            throw e;
        }
        return returnObject;
    }
    @Override
    public Object plugin(Object o) {
        return Plugin.wrap(o, this);
    }
    @Override
    public void setProperties(Properties properties) {
    }
}

...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070107
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Другое дело.
Вопрос к тебе как спецу в бд.
Есть ненулевая вероятность обратно получить дважды данный текст ошибки. Входим в цикл и сервер ляжет.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070110
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

Есть ненулевая вероятность обратно получить дважды данный текст ошибки. Входим в цикл и сервер ляжет.

"Твори, выдумывай, пробуй" (с)
22321623
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070112
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Угу. Ты твори а я в продакшен повтор засунул))))
Люблю юмор.
Ладно, там вопросительный знак у меня потерялся.
Удачи)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070115
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
andrey_anonymous,
Угу. Ты твори а я в продакшен повтор засунул))))

Там, где Вы размышляете в терминах "ненулевых вероятностей", я точно знаю что делаю .
Да и java-код Вы, по всей видимости, тоже прочитать не смогли.
Ну или не поняли.
Что, впрочем, не очень удивляет.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070118
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Я тоже понял, что вместо ответа на вопрос, вы напустили туману.
Вот и познакомились)
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070119
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
andrey_anonymous,
Я тоже понял, что вместо ответа на вопрос, вы напустили туману.

Еще один перл в коллекцию.
Вам привели как натурные эксперименты, наглядно демонстрирующие особенности обсуждаемого exception, так и конкретную реализацию интерцептора, которая не впадет в бесконечную рекурсию в случае "ненулевой вероятности".
Это, конечно, туман и ни в коем случае не ответ.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070122
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Нет милый мой. Я спрашивал именно про твой личный опыт.
Либо пруф.
Отвлеченный кусок кода не является натурным экспериментом. Юморист.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070124
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Отвлеченный кусок кода не является натурным экспериментом. Юморист.

Я уже понял, что Вы не понимаете пусть примитивного, но очень конкретного java-кода, который можно просто добавить в проект и получить ожидаемый эффект.
Осознал, что практические демо с приложенными ради независимой проверки тестовыми примерами - не пруф.
Пруф - это, видимо, "ненулевая вероятность" и общее околосферическое словоблудие.
Если у Вас нет конкретных соображений, как именно "зациклить" приведенный код - то продолжение разговора мне не интересно.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070127
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
Хммм...
Вот смотрите.
Есть две парадигмы решения ошибки по сабжу
- обнулить сессию либо на клиенте, либо админские меры DBA при деплое
- погасить ошибку (повтор вызова/триггер/пустышка хранимка)
Вам как DBA почему то нравится озадачить java прогеров по второму варианту.
Меня как прикладного программиста привлекает первый вариант.
Вы на уровне архитектуры разве задумывались над этим?
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070129
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Вам как DBA почему то нравится озадачить java прогеров по второму варианту.
Меня как прикладного программиста привлекает первый вариант.
Вы на уровне архитектуры разве задумывались над этим?

Вот смотрите.
Конкретных возражений против решения у Вас нет.
Потому что оно:
- работает
- не циклится (согласно общей логике и нашим тестам)
- эффективно решает конкретную проблему проекта, связанную с накатом обновлений без перерыва сервиса
- не создает лишней нагрузки ни на программистов, ни на администраторов, ни на техподдержку
- не требует развертывания второго сервера за еще один мегадоллар (тут еще рисуется ряд нетривиальных работ по обеспечению целостности при переключении, но кто считает...)
- стоило разово 2.5 часа времени разработчика + доставило мне несколько минут искреннего смеха в процессе чтения Ваших комментариев
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070131
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,
У как много написали. Не торопитесь, отвечу.
https://www.sql.ru/forum/900575-a/avtomaticheskaya-perekompilyaciya-pri-obrashhenii-k-paketu-tknite-nosom-v-doku?hl=04068
авторУ нас всё в итоге решилось прокидыванием эксепшена ORA-04068 наружу "до клиента".

До этого как оказалось, он в некоторых местах гасился в обработчиках WHEN OTHERS, что приводило к такой вот хрени как перманентный ORA-06508. Теперь всё работает как часы.

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

Да.
Выкидываем на клиента и там гасим.
Потому что это правильно и не создает ненужных проблем.
Согласно приведенной Вами же цитате этот же поход позволил ТС решить свои проблемы с "перманентной 06508".
6508, Карл, а не 4068. Тему 6508 в этом топике поднимал Leonid Kudryavtsev и она на самом деле лежит в стороне от 4068, не являясь, таким образом, предметом обсуждения.
...
Рейтинг: 0 / 0
Mybatis vs Ora-04068
    #40070138
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
В архитектуре сравнивают минимум два подхода.

Так я и сравнил.
- с технической точки зрения
- с точки зрения эксплуатационных расходов
- с точки зрения затрат на разработку/внедрение/сопровождение
- с точки зрения удовлетворения требованиям непрерывности сервиса
- с точки зрения расходов на необходимую инфраструктуру (это когда Вы предлагали вторую БД поставить)

В вот что именно сравнивали Вы - осталось загадочной загадкой.
...
Рейтинг: 0 / 0
25 сообщений из 270, страница 6 из 11
Форумы / Java [игнор отключен] [закрыт для гостей] / Mybatis vs Ora-04068
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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