|
|
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
Есть пакет на БД А. Там есть пакет, который использует БД Б. В пакете в основном открываются курсовы. Код: plsql 1. №OWNERNAMETYPEREFERENCED_OWNERREFERENCED_NAMEREFERENCED_TYPEREFERENCED_LINK_NAMEDEPENDENCY_TYPE1LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1STATUS_DESCTABLELNK_01HARD2LOAD_USRLOAD_PACKAGEPACKAGEUSR1STATUS_DESCTABLELNK_01HARD3LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1APPLICATION_CLIENT_INFOTABLELNK_01HARD4LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1REGISTER_CLIENTSTABLELNK_01HARD5LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1TASKTABLELNK_01HARD6LOAD_USRLOAD_PACKAGEPACKAGEUSR1TASKTABLELNK_01HARD7LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1TASK_PARAMS_TYPESTABLELNK_01HARD8LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1PARAMETERSTABLELNK_01HARD9LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1PARAMETERS_DESCTABLELNK_01HARD10LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1PHASE_DESCTABLELNK_01HARD11LOAD_USRLOAD_PACKAGEPACKAGEUSR1PHASE_DESCTABLELNK_01HARD12LOAD_USRLOAD_PACKAGEPACKAGE BODYUSR1PRIORITY_DESCTABLELNK_01HARD13LOAD_USRLOAD_PACKAGEPACKAGEUSR1PRIORITY_DESCTABLELNK_01HARD Ставил аудит на базе БД Б на ддл. там пусто, т.е. никаких изменений на таблицах никто не делает. Собственно вопрос как поймать причину инвалидации пакета? База А Код: plsql 1. 2. 3. 4. 5. ОС Solaris 11 SPARC База Б Код: plsql 1. 2. 3. 4. 5. ОС Solaris SPARC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 02:47:06 |
|
||
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
Что в параметре REMOTE_DEPENDENCIES_MODE? Что по-поводу DBA_OBJECTS.LAST_DDL_TIME на зависимых таблицах? Как сделан линк? Используются ли EDITIONS? Лагутин АлександрСтавил аудит на базе БД Б на ддл. Как именно? Лагутин АлександрБаза А Код: plsql 1. ОС Solaris 11 SPARC База Б Код: plsql 1. ОС Solaris SPARC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 04:40:30 |
|
||
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
Вячеслав ЛюбомудровЧто в параметре REMOTE_DEPENDENCIES_MODE? Что по-поводу DBA_OBJECTS.LAST_DDL_TIME на зависимых таблицах? Как сделан линк? Используются ли EDITIONS? Лагутин АлександрСтавил аудит на базе БД Б на ддл. Как именно? AUDIT TABLE,ALTER TABLE BY ACCESS; Вячеслав ЛюбомудровЛагутин АлександрБаза А Код: plsql 1. ОС Solaris 11 SPARC База Б Код: plsql 1. ОС Solaris SPARC ну а почему нет? Вячеслав Любомудров, Выяснил еще кое что. В базе А есть еще пользователь(LOAD_USR_2) у которого почти такой же по содержанию пакет и одинаковый по имени, и от этого пользователя каждые 3 секунды он выполняется. Видно из v$db_cache_objects. Смысл в том что если компилить пакет LOAD_USR.LOAD_PACKAGE то инвалидится LOAD_USR_2.LOAD_PACKAGE, потом соответсвенно идет вызов LOAD_USR_2.LOAD_PACKAGE, он автоматом компилиться инвалидируя LOAD_USR.LOAD_PACKAGE. Как можно добраться до места откуда идет вызов? v$db_cache_objects c v$sql по hash_value не вяжется, c v$latch, v$latch_children тоже. Какие операции над таблицей в данном случае могут инвалидировать зависимости? Вячеслав ЛюбомудровЧто в параметре REMOTE_DEPENDENCIES_MODE? TIMESTAMP Вячеслав ЛюбомудровЧто по-поводу DBA_OBJECTS.LAST_DDL_TIME на зависимых таблицах? Очень давно Вячеслав ЛюбомудровКак сделан линк? CREATE DATABASE LINK LNK_01 CONNECT TO USR1 IDENTIFIED BY /*Зашифрованный пароль*/ USING 'XXXX/XXX'; Вячеслав ЛюбомудровИспользуются ли EDITIONS? Нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 07:50:20 |
|
||
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
Лагутин АлександрВ базе А есть еще пользователь(LOAD_USR_2) у которого почти такой же по содержанию пакет и одинаковый по имени, и от этого от какого то пользователя каждые 3 секунды он выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 07:54:01 |
|
||
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
а если создать вью с дблинком и в процедуре пользоваться этой вьюхой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 10:55:52 |
|
||
|
Пакет инвалидируется сразу после компиляции
|
|||
|---|---|---|---|
|
#18+
В общем все очень интересно. Открыли SR и получили совет пройти по Bug 4991675 : EVENT TO TRACE INVALIDATION OF OBJECTS IN THE DATA DICTIONARY По описанию патч просто позволяет трассировать изменения в словарь при инвалидации. Сделал все как надо, пошел проверять... в алерте абсолютно ничего интересного. Просто пишет мол спид такой то вызвал инвалидацию, в трейсе соответсвенно команда альтер. заодно обнаружил что есть джоб который выполняется каждые 5 сек и фэйлится. у хозяина этого джоба(LOAD_USR_3) пакет LOAD_PACKAGE инвалидный(нет необходимых дб линков). Отключил джоб. Скомпилил пакет у пользователя LOAD_USR, все скомпилилилось и проблема ушла. Вывод: не понятно что решило проблему, то ли патч, то ли джоб. потому что удалив патч воспроизвести проблему не получается. Все отрабатывает как положено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2016, 04:06:13 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=202&tid=1887512]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
330ms |
get topic data: |
13ms |
get forum data: |
4ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 668ms |

| 0 / 0 |
