Jeg vil gerne have fat i vore Oracle server udefra, men kan ikke få det til at virke. Jeg gør følgende:
Vores Oracle (9.2.0.4) køret på Unix med TNS lisner på port 1521. Jeg er ikke Oracle ekspert, men vores Oracle skulle have en standart opsætning. Der kan fint laves en "tnsping" lokalt fra min egen maskine via vores LAN.
Vores firewall er en Sonicwall (TZ 170), her har jeg lavet en regel der åbner port 1521 til IP adressen (LAN) på vores Oracle. Jeg har under "Advanced" aktiveret SQLNet (support for Oracle). Alle porte er åben fra LAN til WAN.
Jeg har fra Oracle Net Manager oprettet en "service naming" til adressen på vores firewall, men kan ikke komme igennem. Jeg har også prøver at lave en rute med WAN adressen på firewallen og LAN adressen på Oracle serveren, men også uden resultat.
Jeg har prøvet at forbinde fra vores server ude i byen og fra en WinXP direkte på nettet uden firewall, begge med samme resultat :o(
Når jeg tester får en "TNS-12535: operation timed out" både med tnsping og fra "Oracle Net Manager".
+ The TNS-12535 or ORA-12535 error is normally a timeout error associated with Firewalls or slow Networks. + It can also be an incorrect listener.ora parameter setting for the CONNECT_TIMEOUT_<listener_name> value specified. + In essence, the ORA-12535/TNS-12535 is a timing issue between the client and server. - Ensure that your Client and Server platforms and versions are supported and within Oracle's recommended guidelines. - Make sure that any non-supported issues, such as Soft links, shared config files, etc., are removed before looking into this document. - If you are running Oracle Names Server, then setup a temporary tnsnames.ora file and edit the sqlnet.ora file to reflect (TNSNAMES) for the names.directory_path. - If you are running MTS (Multi Threaded Server), then try the same connection with (SERVER=DEDICATED) in the tnsnames.ora alias.
Error: ORA-12535 / TNS-12535 Text: TNS:operation timed out --------------------------------------------------------------------------- Cause: The requested connection could not be completed within the timeout period specified by the CONNECT_TIMEOUT parameter in listener.ora. This error arises from the tnslsnr. Action: Either reconfigure CONNECT_TIMEOUT to be 0, which means wait indefinitely, or reconfigure CONNECT_TIMEOUT to be some higher value. Or, if the timeout is unacceptably long, turn on tracing for further information.
1. Find out if you are going through any Firewalls or Routers. If you are, then see Note A below.
2. Try to "ping" the ip address or hostname from the client. Check the timing response and see if it is acceptable. If it is not, then you may need to increase the CONNECT_TIMEOUT_<listener_name> value in the listener.ora file on the Server. Doing this will correct the connectivity problem, but may be masking the real problem of the physical network.
(See the Sqlnet / Net8 Administrators guide for details on how to make these changes)
Note A ------ 1a. If you are going through a Firewall, and your server platforms are UNIX, then you must ensure that the port being listened on is open, unless you are running the Firewall vendor's Proxy Server, in which case this will allow connectivity.
1b. If you are not running the Firewall vendor's Proxy, and the port is not open, then you will have a refusal from the outside into the Firewall zone.
Jeg har åbnet for port 1521 udefra og ind. Det jeg ikke rigtig ved er om listener svarer alt der spøger. Kunne der på vores Oracle server skulle gives adgang til forespørelser der kommer via. vores firewall ?
Jeg syntes at jeg har prøvet alt hvad du skriver. Jeg kan ikke pinge vorres firewall men det er fordi vi ikke tillader det. Timeout tror jeg skyldes, at jeg slet ikke kommer igennem eller Oracle ikke vil svare.
Jeg er ikke Oracle Ekspert, men kunne det ikke tænkes at jeg skal gøre et eller andet før den vil snakke gennem vores firewall ?
Det skal lige nævnes at jeg fint har adgang til vores SQL-server via firewall'en. Reglen til Oracle er lavet på samme måde (selvfølgelig ikke på samme port), eneste forskal er at jeg har enable SQLNet.
Der er flere steps vi skal checke for at finde ud af hvor problemet ligger:
1. Du siger selv at 1521 er åben udefra og ind. Men lad os checke at du når ind til serveren. Spørgmålet er om du kommer helt ind til listeneren. Prøv at connecte udefra og se om du får et entry i din listener.log
2. Kører du med mts på din database? (smid et output af din init.ora)
hvis serveren er sat op med MTS skal du prøve at slå det fra - er set før i firewall sammenhæng - det kræver en applikations firewall hvis oracle er beskyttet bag en firewall med NTS
Jeg har tænkt på, om man kunne sætte mere end en TNS lisener op på Oracle. Hvis man kan, kunne jeg så lave en der både lytter og svarer på f.eks. port 1526. På den måde kan jeg vel bare åbne denne port ind og ud.
P.S. jeg vil ikke lave om på den TNS lisener der kører på vores Oracle nu, da den bruges til intern produktion.
Husk også at 1521 kun er "forhandlingsporten", men selve porten ud er en helt anden, så hvis du kun tillader trafik på 1521 ud, så er det dit problem.
Timeout kan også forhindres, hvis det er noget der opstår efter længere brug, ved at tilføje SQLNET.EXPIRE_TIME=<int> i ORACLE_HOME/network/admin/sqlnet.ora til et interval mindre end firewall'ens timeout.
og genstarter serveren, så burde du få svar på samme port.
Problemet er at listeren ryster porte posen, når den svare tilbage. Det vil du kunne se hvis du laver en trace.
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.