Oracle - kompilacja pakietów

Kategoria: Wszystko o bazach danych.

Wersja archiwalna tematu "Oracle - kompilacja pakietów" z grupy pl.comp.bazy-danych



Michał Bieniak
22 Cze 2005, 04:32
Czy ktoś się spotkał z takim problemem i mógłby mi udzielić wskazówek.

Kompiluję pakiet - wszystko ok - następnego dnia rano Toad pokazuje
pakiet jako skompilowany. Ale np. niektóre procedury pakietu (generujące
stronę html) nie działają (tzn. gdy z przeglądarki próbuję je wywołać - to
dostaję komunikat, że strona nie znaleziona). Niektóre procedury działają
poprawnie. Rozwiązaniem na to jest rekompilacja pakietu z procedurami - wtedy
wszystko zaczyna działać poprawnie. Chciałbym się zabezpieczyć przed takimi
rozkompilowaniami. Dwie rzeczy, które podejrzewam to:
- inne pakiety na bazie były w tym czasie kompilowane - ale żadne bezpośrodnio
związane odwołaniami z moim pakietem.
- w nocy było zatrzymanie bazy związane z backupem.

Co myślicie - czy mieliście tego typu doświadczenia. Póki co ani w googlach
ani na metalinku nie znalazłem nic ciekawego.

pozdrawiam

Michał Bieniak

news
22 Cze 2005, 14:21

Nie bardzo wiem jak ściągnąć ten kod błędu. To jest tak skonfigurowane, że
Oracle 9iAS ma skonfigurowanego DAD'a dla tej bazy. Poprzez tego dada
(podawanego w URL-u) uruchamiam procedury z pakietu.
Procedura ma obsługę wyjątków, ale nie zrzuciła żadnego komunikatu do bazy.
Więc jedyne podejrzenie idzie na serwer aplikacji. Chwilowo nie mam do niego
dostępu, czekam na jego administratora - może on coś pomoże.

Gdzie jeszcze wg Ciebie mógłbym namierzyć kod błędu???

pozdrawiam

Michał

ps. Co do kompilacji pakietów to rozróżniam kompilację headera od body.
    Pakiet był przekompilowany w całości.


Ok, sorry wolem sie upewnic.

Popatrz moze jeszcze na czas gdy ten pakiet staje sie 'INVALID' moze to
da Ci jakas wskazowke. Normalnie w takim wypadku jak ten przeszukuje
asktom.oracle.com np. pod haslem 'Invalid package' i tam szukam
inspiracji jak to naprawic/debugowac/zrozumiec.
Jako workaround moze pomoze jakis job, ktory w razie wykrycia obiektu ze
statusem 'INVALID' kompiluje go ponownie. Moze sa robione jakies zmiany
na obiektach (table, view) do ktorych odwoluje sie ten pakiet, jakis
dynamiczny sql...

Nie znam 9iAS, ani nie wiem co to jest DAD wiec wiecej nie moge Ci pomoc.

dap

Michał Bieniak
22 Cze 2005, 09:30
news <newsewwywaltocotrzeba@gazeta.plnapisał(a):

Michał Bieniak wrote:
| Czy ktoś się spotkał z takim problemem i mógłby mi udzielić wskazówek.

| Kompiluję pakiet - wszystko ok - następnego dnia rano Toad pokazuje
| pakiet jako skompilowany. Ale np. niektóre procedury pakietu (generujące
| stronę html) nie działają (tzn. gdy z przeglądarki próbuję je wywołać - to
| dostaję komunikat, że strona nie znaleziona). Niektóre procedury działają
| poprawnie. Rozwiązaniem na to jest rekompilacja pakietu z procedurami - wtedy

| wszystko zaczyna działać poprawnie. Chciałbym się zabezpieczyć przed takimi
| rozkompilowaniami. Dwie rzeczy, które podejrzewam to:
| - inne pakiety na bazie były w tym czasie kompilowane - ale żadne bezpośrodni
o
| związane odwołaniami z moim pakietem.
| - w nocy było zatrzymanie bazy związane z backupem.

| Co myślicie - czy mieliście tego typu doświadczenia. Póki co ani w googlach
| ani na metalinku nie znalazłem nic ciekawego.

Jesli pod pojeciem pakietu masz na mysli package, a pod pojeciem pakietu
z procedurami to package body, to zawsze musisz kompilowac oba pakiety.
Pierwszy pakiet zawsze sie skompiluje, package body nie. Jak zmienisz
cos w definicji package body, ale bez zmiany parametrow procedur to
mozesz skomplilowac tylko package body. Troche inaczej jest przy
funkcjach i fbi, ale pewnie tego nie uzywasz. Nie polegaj na Toad,
mozesz sprawdzic status obiektu tez z view bodaj dba_objects...

Blad generacji to zaden blad, moglbys podac jaki byl dokladnie kod bledu?


Nie bardzo wiem jak ściągnąć ten kod błędu. To jest tak skonfigurowane, że
Oracle 9iAS ma skonfigurowanego DAD'a dla tej bazy. Poprzez tego dada
(podawanego w URL-u) uruchamiam procedury z pakietu.
Procedura ma obsługę wyjątków, ale nie zrzuciła żadnego komunikatu do bazy.
Więc jedyne podejrzenie idzie na serwer aplikacji. Chwilowo nie mam do niego
dostępu, czekam na jego administratora - może on coś pomoże.

Gdzie jeszcze wg Ciebie mógłbym namierzyć kod błędu???

pozdrawiam

Michał

ps. Co do kompilacji pakietów to rozróżniam kompilację headera od body.
    Pakiet był przekompilowany w całości.

dap


--
Wysłano z serwisu Usenet w portalu Gazeta.pl -http://www.gazeta.pl/usenet/

news
22 Cze 2005, 07:08

Michał Bieniak wrote:
Czy ktoś się spotkał z takim problemem i mógłby mi udzielić wskazówek.

Kompiluję pakiet - wszystko ok - następnego dnia rano Toad pokazuje
pakiet jako skompilowany. Ale np. niektóre procedury pakietu (generujące
stronę html) nie działają (tzn. gdy z przeglądarki próbuję je wywołać - to
dostaję komunikat, że strona nie znaleziona). Niektóre procedury działają
poprawnie. Rozwiązaniem na to jest rekompilacja pakietu z procedurami - wtedy
wszystko zaczyna działać poprawnie. Chciałbym się zabezpieczyć przed takimi
rozkompilowaniami. Dwie rzeczy, które podejrzewam to:
- inne pakiety na bazie były w tym czasie kompilowane - ale żadne bezpośrodnio
związane odwołaniami z moim pakietem.
- w nocy było zatrzymanie bazy związane z backupem.

Co myślicie - czy mieliście tego typu doświadczenia. Póki co ani w googlach
ani na metalinku nie znalazłem nic ciekawego.


Jesli pod pojeciem pakietu masz na mysli package, a pod pojeciem pakietu
z procedurami to package body, to zawsze musisz kompilowac oba pakiety.
Pierwszy pakiet zawsze sie skompiluje, package body nie. Jak zmienisz
cos w definicji package body, ale bez zmiany parametrow procedur to
mozesz skomplilowac tylko package body. Troche inaczej jest przy
funkcjach i fbi, ale pewnie tego nie uzywasz. Nie polegaj na Toad,
mozesz sprawdzic status obiektu tez z view bodaj dba_objects...

Blad generacji to zaden blad, moglbys podac jaki byl dokladnie kod bledu?

dap

Michał Bieniak
27 Cze 2005, 10:13
news <newsewwywaltocotrzeba@gazeta.plnapisał(a):

Ok, sorry wolem sie upewnic.

Popatrz moze jeszcze na czas gdy ten pakiet staje sie 'INVALID' moze to
da Ci jakas wskazowke. Normalnie w takim wypadku jak ten przeszukuje
asktom.oracle.com np. pod haslem 'Invalid package' i tam szukam
inspiracji jak to naprawic/debugowac/zrozumiec.
Jako workaround moze pomoze jakis job, ktory w razie wykrycia obiektu ze
statusem 'INVALID' kompiluje go ponownie. Moze sa robione jakies zmiany
na obiektach (table, view) do ktorych odwoluje sie ten pakiet, jakis
dynamiczny sql...

Nie znam 9iAS, ani nie wiem co to jest DAD wiec wiecej nie moge Ci pomoc.

dap


Dzięki za wszelką pomoc.
Na chwilę obecną problem wydaje się namierzony - testy w następnych dniach
pokażą czy była to faktyczna przyczyna.
Już mówię co ustaliliśmy. Do poprzednich objawów dodam następujące fakty.
Pakiet się nie rozkompilowywał, ale po pewnym czasie przestawał działać -
pomagała rekompilacja, ale tylko czasowo.
Po tym jak się pakiet przestawał działać - przestawała działać zawsze ta sama
funkcja.
W logach na 9ias-sie było
****************
HTTP-404 ORA-06502: PL/SQL: bM-3M-1d liczby lub wartoM-6ci
ORA-06512: przy linia 10
****************
Pakiet jak przestawał działać to działo się to stopniowo. Ostatnim parameterm
przekazywanym do funkcji była kwota. Jak przestawał działać to działał dla
kwot do pewnej granicy. Powyżej tej granicy - przestawał działać.
Ale jak się z powrotem przekazało linka z mniejszą kwotą to dalej działał.

Ostatecznie myślimy, że to błąd mod_plsql. Na metalinku jest kilka słów na ten
temat. W nocy ma być położony patch i jutro dalsze testy. Mam nadzieję, że to
będzie ten problem.

pozdrawiam

Michał