Results 1 to 2 of 2
  1. #1
    Join Date
    Aug 2006
    Posts
    2

    Unanswered: ODBC-error 'ORA-12535: TNS:operation timed out' when trying to connect to Oracle 9.2.

    Hello,

    after 2 days of fruitless searching and trying, I'm nearly desperate now, so I'm posting my problem here with hope that someone can help...

    I'm trying to connect to an Oracle 9.2 database via TCP from Microsoft Access 2000 SP3.
    I'm using the ODBC-Drivers from Microsoft.

    I keep getting the following error:
    "[Microsoft][ODBC driver for Oracle]ORA-12535: TNSperation timed out (#12535) [Microsoft][ODBC Driver Manager] Fehler bei SQLSetConnectAttr für Treiber (#0)"


    Here are the details:

    CLIENT-machine:
    Operating system: Microsoft Windows 2000 SP4
    ODBC-Driver: Microsoft ODBC for Oracle V2.575.1062.00
    Client-Database: Microsoft Access 2000 SP3
    Oracle: Oracle 9.2.0.1.0

    SERVER-machine:
    Operating system: Microsoft Windows Server 2003 SP1
    Oracle: Oracle 9.2.0.1.0

    --------------------------------------------------------------
    tnsnames.ora (CLIENT)
    ---------------------
    ORACLE.EMBITBIZ =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 217.69.83.130)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = MBD)
    )
    )
    --------------------------------------------------------------
    listener.ora (SERVER)
    ---------------------
    LISTENER =
    (DESCRIPTION_LIST =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = embit)(PORT = 1521))
    )
    )
    )

    SID_LIST_LISTENER =
    (SID_LIST =
    (SID_DESC =
    (SID_NAME = PLSExtProc)
    (ORACLE_HOME = c:\oracle\ora92)
    (PROGRAM = extproc)
    )
    (SID_DESC =
    (GLOBAL_DBNAME = mbd)
    (ORACLE_HOME = c:\oracle\ora92)
    (SID_NAME = mbd)
    )
    )

    --------------------------------------------------------------
    sqlnet.ora (SERVER)
    ---------------------

    NAMES.DEFAULT_DOMAIN = biz

    SQLNET.AUTHENTICATION_SERVICES= (NTS)

    #NAMES.DIRECTORY_PATH= (TNSNAMES)
    NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
    --------------------------------------------------------------


    - I have installed Microsoft MDAC 2.8 SP1 on the client-PC

    - I have changed registry settings, as suggested by many websites to the following values:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
    "OracleXaLib"="oraclient9.dll"
    "OracleSqlLib"="ORASQL9.DLL"
    "OracleOciLib"="oci.dll"

    - "tnsping ORACLE.EMBITBIZ" on the client-machine reports success:

    Adapter TNSNAMES zur Auflösung des Alias benutzt
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = 217.69.83.130)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = MBD)))
    OK (40 ms)

    - The listener.log on the SERVER shows that the listener configuration should be OK, as the connection seems to be established correctly:
    18-AUG-2006 13:04:18 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MBD) (CID=(PROGRAM=C:\WINNT\system32\odbcad32.exe)(HOST =MBINTERN)(USER=Administrator ))) * (ADDRESS=(PROTOCOL=tcp)(HOST=212.202.134.67)(PORT= 58954)) * establish * MBD * 0

    - The user I'm using for Login is able to connect to the database (as tested with SQL+ Worksheet on the SERVER-machine)


    I suppose the problem to be connected with the ODBC-driver on the client machine.

    I don't know anything else to do or try to solve the problem.
    Can anybody help me ?!
    Any suggestions or tips?
    Last edited by ceschenbach; 08-25-06 at 07:16.

  2. #2
    Join Date
    Aug 2006
    Posts
    2
    In the meantime, I could solve the problem, so i post the solution here for all others...

    The problem wasn't connected with odbc as first supposed.
    The problem was that a firewall on the server blocked all ports except port 1521.
    But communication with the listener will only be initiated through port 1521. Afterwards communication is switched to other not-predictable ports, so all answer-attempts were blocked by the firewall and therefore there was never ever any reaction from the oracle server till the timeout occured.

    This can be solved by adding a registry entry on the server:
    Under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0, an entry USE_SHARED_SOCKET (Type Reg_SZ) has to be added and set to TRUE.
    Then all inside/outside connections will be made only via the predefined listener port (1521, if not changed otherwise).

    Afterwards communication operated flawlessly.
    Last edited by ceschenbach; 08-28-06 at 06:23.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •