ORA-02019: connection description for remote database not found

February 27, 2008 – Dejan

Aaaaaargh… $§&%/*#

Koliko jedna “sitnica” može koÅ¡tati vremena i živaca…

Kolega je instalirao jednu Oracle bazu za testiranje, u koju smo kasnije importovali naÅ¡u production bazu. MeÄ‘utim, ne lezi vraže… Nakon nekoliko sati rada, odreÄ‘ene aplikacije su poÄele da javljaju greÅ¡ku, a pojedini PL/SQL paketi se nisu mogli kompilirati.

Problem je pojavio prilikom koriÅ¡tenja objekata (tabele i views) iz druge baze preko database linka. Ukoliko u svom kôdu imate neÅ¡to sliÄno kao npr.:

SELECT id, value
INTO lvID, lvValue
FROM remote_table@mssqlDB;

onda taj upit može javiti grešku:
ORA-00942 Table or View does not exist

ali pravi uzrok greške leži u nedostupnosti database linka, odnosno u grešci:
ORA-02019: connection description for remote database not found

E sad je trebalo pronaći uzrok te greÅ¡ke - kolega je odustao nakon nekoliko sati, pa sam ja preuzeo i takoÄ‘e izgubio skoro 3 sata dok nisam pronaÅ¡ao u Äemu je bio problem.

Provjerio sam 10-ak puta tnsnames.ora, dotiÄne PL/SQL pakete nekoliko puta liniju po liniju, ali bez uspjeha…
Googleao sam, tražio na MetaLinku, ali bez uspjeha…
RjeÅ¡enje sam otkrio sasvim sluÄajno - usporedio sam init-parametre u toj novoj testnoj bazi i u production bazi, pa mi je za oko zapao parametar “open_links“. U testnoj bazi je vrijednost iznosila 4, a u production bazi 8.

U dokumentaciji piše:
OPEN_LINKS specifies the maximum number of concurrent open connections to remote databases in one session.”

Standardno je vrijednost podešena na 4, a mi smo u nekoliko PL/SQL paketa koristili i po 7-8 database linkova, pa sam ja samo povećao tu vrijednost na 8, restartovao bazu i sve je funkcionisalo kako treba.

alter system set open_links=8 scope=spfile sid='*';

Nadam se da će ovo nekom pomoći i uÅ¡tediti vrijeme i živce…

Post a Comment