ORA-02019: connection description for remote database not found

Wednesday, 27.02.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