13. september 2001 - 13:48Der er
17 kommentarer og 1 løsning
Adgang til Oracle DB
Jeg har problemer med at få adgang til en Oracle database fra en webserver.
Jeg benytter en System DSN på webserveren, som igen bruger en forbindelse opsat i Net8 assistant. I firewallen er der så åbnet for adgang til webserveren på den port som benyttes af net8 forbindelsen.
Er der andre porte der skal åbnes for så jeg kan få adgang til webserveren??? Lige nu får jeg en timeout, og firewallen ser ud til at lukke af...
Samspillet mellem on-premise og skyen, ja i det hele taget samspillet mellem alle en virksomheds kommunikationsplatforme bliver stadig mere komplekst.
26. august 2024
Slettet bruger
13. september 2001 - 13:50#1
Jeg tror kun man bruger standard porten til at kontakte databasen. Derefter kører forbindelsen over på en anden port. Vi har ihvertfald haft tilsvarende problemer, der endte med at netværks- administratoren lukkede op for flere porte.
i teorien skal du åbne alle porte(1-65000), da du ikke kan styrer hvilken port listeneren spawner din nye process på. Ellers skal du have en sqlnet plugin til din firewall!
Løsningen vil være at installere en connection manager uden for firewallen.
Hvis du kører din database på NT, kan du også vælge at sætte use_shared_sockets op. Så vil listeneren altid svarer på samme port!
Men det lyder til at det så er løsningen for jer her!
checkliste: -Hvis du på din webserver har 1522 stående i din tnsnames.ora, skal din listener se\'fø\'li også lytte på den! tnsping skulle her kunne bruges som test, fordi listeneren altid svarer tilbage på samme port ved ping. Når det virker, kan du på din database server gå i registry.. HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE her laves en ny streng værdi USE_SHARED_SOCKET=TRUE Jeg mener at man på Oracle8 og nyere skal sætte den under det aktuelle home, f.eks.: HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\home0 hvor home0 er dit database home!
Når det er klaret, skulle det faktisk være muligt at connecte gennem firewallen....
pnielsen> Din checkliste lyder godt, men ingen af os er desværre inde i noget med Oracle så vi håbede lidt på at du ville uddybbe din checkliste lidt mere... f.eks hvad er en listener? Og hvordan får vi testet det med sqlplus (hvorfra og hvordan)???
Wauv... det er da noget af en opgave så.... Jeg syntes egentligt jeg har beskrevet det i detaljer ?? ;-)
Desværre har jeg ikke meget tid lige nu, men måske nogle af de andre kan støde til...
Start med at tilføje Used_shared_Sockets parameteren på din database server..... Så er der ikke lang vej. Indsæt den for en sikkerheds skyld både i HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\home0
Check så din tnsnames.ora på webserveren. Hvilken port forsøger den at fange ? Se svar fra teepee ovenfor.
Listeneren er lytteprocessen på din databaseserver, som sørger for at give dig en connection ind i basen.
ok splatter, jeg vil gøre et lille forsøg på at hjælpe pnielsen.
Listneren er en process der kører på Oracle serveren, som sørger for at din \"request\" om data bliver behandlet af Datahandleren.
Listneren kan genkendes på NT 4.0 under services ved at den hedder et eller andet med TNSLISTNER.
Når man har problemer af denne karakterer er det nemmest at teste ved at gå til en shell og skrive : TNSPING <servicename eller ip adress på serveren>
Denne kommando bør udmunde i et svar der ligner : Attempting to contect (address=(protocol=tcp)(Host=xxxxxxxxxx)(post=yyyy) OK (zzz msec)
hvis det ikke sker er der ikke hul igennem til listeneren.
Hvis ikke der er hul igennem er der flere ting som du bør checke... - normalt er det 1521 og ikke 1522 som du skriver .. der er Oracle\'s std. port. - kan du Ping ip adressen på serveren overhovedet = er der netværkshul igennem ? - på Oracle servern kan du kalde flg. program : lsnrctl det er listner control programmet.
giv den her kommando\'en STATUS LISTENER
herefter skulle du få informationer om listeneren og hvilke service names den servicere... = hvilke tnsnames poster (i grove træk) den servicere.
Takker for svarene... men det virker desværre stadig ikke... Det er helt sikkert at der lyttes på port 1522 (jeg kan nemlig godt connect\'e fra en testwebserver som står på indersiden (samme side som DB\'en))
Jeg har også sat den string ind som pnielsen foreslog i registreringsdatabasen..
Men desværre virker det stadig ikke...
Jeg har forsøgt at køre en test fra Net8 assistant på webserveren.. og dette fejler på port 1522 selvom der er åbent for denne port i firewallen...
det er ikke faktisk ikke nødvendigt at have en sql*net compatibel proxy server, men lad mig kort forklare..... Hvis i slår det til/kan slå det til, vil du stadig skulle have en port åben udaf til. Når du så forsøger at connecte fra din client, vil proxyen opdage din request og åbne for sql*net connections indefra og ud. På den måde får listeneren lov til at komme igennem til din client. Hvis man sætter used_shared_sockets parameteren, er denne løsning ikke nødvendig!
Jeg må ikke komme forbi pga. mit arbejde, men ring evt til Oracle og spørg efter support for at få fat i en der kan hjælpe dig onsite!
Min erfaring er at man ikke kan bruge NET8 Asst. til opsætninng, hvis man skal igennem en firewall. Man bliver manuelt nødt til at rette i tnsnames.ora. Her skal du lave en \"address list\" med to adresser. Den første skal være din firewall og den næste skal være Oracle server.
Jeg takker mange gange for alle de gode svar. pnielsen\'s USE_SHARED_SOCKET (fandt ud af at det skulle staves sådan... derfor det ikke virkede til at starte med) var løsningen på problemet.
nosjns -> Det du snakker om er connection manager... altså ikke firewallen. Ved brug af connection manager, som man installere bag firewallen(!!), sørger cman for at modtage alle forbindelser udefra. Den beder så listeneren om at få en process. Når processen er startet router cman alt kommunikation ud via 1 port i firewallen.
splatter -> Jeg har selv prøvet at rode med den parameter i lang tid..... Nu ved jeg at der Ikke er \"s\" på den :-)
pnielsen: Jeg er godt klar over dette også er tilfældet ved cman. Vi har ingen cman kørende, men en firewall med en SQL*net proxy installeret. Men tnsnames opsætningen er den samme, som ved cman.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.