DBAtlas · Veritabanı operasyon atlası

ORA-04061: existing state of package/procedure has been invalidated

Oracle

Ne demek?

Çağrılan bir PL/SQL nesnesinin (paket, prosedür, fonksiyon) mevcut durumu (state), bağımlı olduğu bir nesne değiştiği için geçersiz kılındı. ORA-04068'in eşlik ettiği durum bilgisi kaybının bir varyantıdır; oturumun tuttuğu paket durumu artık geçerli değildir.

Neden olur?

Bir oturum bir paketi kullanırken, o pakete ya da bağımlılıklarına (tablo yapısı değişimi, yeniden derleme, grant değişikliği) DDL uygulandı. Böylece oturumdaki mevcut paket durumu geçersizleşti. Sık deploy yapılan ortamlarda uygulama çalışırken şema değişikliği yapılınca görülür.

Nasıl çözülür?

Genellikle aynı çağrı ikinci kez yeniden denendiğinde (durum sıfırlandığı için) başarılı olur; uygulama tarafında bu hatayı yakalayıp güvenli biçimde yeniden deneyin. Şema değişikliklerini uygulama trafiği düşükken/bakım penceresinde yapın. Geçersiz nesneleri toplu derleyin: EXEC DBMS_UTILITY.COMPILE_SCHEMA('SEMA'); Paket durumunu (global değişkenler) minimize eden tasarımlar bu etkiyi azaltır.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar