Results 1 to 5 of 5
  1. #1
    Join Date
    Jun 2013
    Posts
    3

    Unanswered: Instant Client not (stopped) referencing TNS_ADMIN

    Hello,



    Hello,

    Back in November we started deploying W7 x64 PC's in to our production environment. This required installing Oracle Instant Client 11.2.0.3. Our TNSNAMES.ORA file is on a Novell mapped drive (supposedly for ease of keeping the file up to date). TNS_ADMIN user variable is pointing to the mapped drive (Q:\oradev6\net80\admin). We have been using this method since at least Oracle 8. Reports started coming in the past couple of weeks that ODBC connectivity was failing on client PC's. We double checked all environment variables;

    Variable name: ORACLE_HOME
    Variable value: c:\oracleic64\instantclient_11_2

    Variable name: TNS_ADMIN
    Variable value: Q:\oradev6\net80\admin

    APPEND to the existing path statement:
    c:\oracleic64\instantclient_11_2;c:\oracleic32\ins tantclient_11_2

    The novell drive was mapped and the local Windows user is a member of administrators.

    Going into System DSN tab of the ODBC Data Source Administrator we click on one of the data sources and select test connection, enter credentials and get, "Unable to connect. SQLState=08004. ORA-12154: TNS:could not resolve the connect identifier specified." (this use to work)

    Running a pcap in the background shows that the client PC is trying to us DNS and NBNS to resolve the TNS Service Name. Also, another clue that the TNSNAMES.ORA file is not being referenced is that when a connection is being created none of the Service Names are listed in the drop down list. (this use to work).

    With all that said- logging in to windows as Administrator (and creating the user variables defined above) everything works. (Yes the local user is a member of Administrators). We are not in a domain.

    The problem crept up when a new "version" of our desktop image was updated. There are a lot of chefs in this kitchen so it is hard to ascertain what changes were made, but I took the older image (where everything works) and patched the OS to the latest version, but couldn't get it to break. On the newer image I removed the Novell client and mapped Q: drive using a microsoft share that used the same directory structure, same problems (fails for user, works for administrator). We have even removed our antivirus program and the problem still persists.

    Drilling down further we tried process monitor on the working and failing configs.

    On the working config;

    Process Name PID Operation Path Result Detail
    odbcad32.exe 3416 CreateFile \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 3416 QueryDeviceInformationVolume \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS DeviceType: Disk, Characteristics: Mounted, Remote

    odbcad32.exe 3416 ReadFile \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS Offset: 0, Length: 4,096, Priority: Normal

    odbcad32.exe 3416 ReadFile \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS Offset: 4,096, Length: 2,955, Priority: Normal

    odbcad32.exe 3416 ReadFile \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS Offset: 7,051, Length: 4,096, Priority: Normal

    odbcad32.exe 3416 CloseFile \\ADRVNFS1\BANNER\oradev6\NET80\ADMIN\tnsnames.ora SUCCESS



    On the failed config;

    Process Name PID Operation Path Result Detail
    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2 SUCCESS Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 1036 QueryDirectory C:\oracleic64\instantclient_11_2\oracle.key NO SUCH FILE Filter: oracle.key

    odbcad32.exe 1036 CloseFile C:\oracleic64\instantclient_11_2 SUCCESS

    odbcad32.exe 1036 CreateFile C:\oracleic64 SUCCESS Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 1036 QueryDirectory C:\oracleic64\instantclient_11_2 BUFFER OVERFLOW Filter: instantclient_11_2, 1: inst̻

    odbcad32.exe 1036 CloseFile C:\oracleic64 SUCCESS

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\oracle.key NAME NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\bin NAME NOT FOUND Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2 SUCCESS Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 1036 QueryDirectory C:\oracleic64\instantclient_11_2\bin NO SUCH FILE Filter: bin

    odbcad32.exe 1036 CloseFile C:\oracleic64\instantclient_11_2 SUCCESS

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\bin\oracle.key PATH NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\network\admin PATH NOT FOUND Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\network NAME NOT FOUND Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\network\admin\tns names.ora PATH NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\net80\admin PATH NOT FOUND Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\net80 NAME NOT FOUND Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\oracleic64\instantclient_11_2\net80\admin\tnsna mes.ora PATH NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a

    odbcad32.exe 1036 CreateFile C:\Windows\System32 SUCCESS Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 1036 QueryDirectory C:\Windows\System32\tnsnames.ora NO SUCH FILE Filter: tnsnames.ora

    odbcad32.exe 1036 CloseFile C:\Windows\System32 SUCCESS

    odbcad32.exe 1036 CreateFile C:\Windows SUCCESS Desired Access: None, Disposition: Open, Options: Directory, Synchronous IO Non-Alert, Attributes: n/a, ShareMode: Read, Write, Delete, AllocationSize: n/a, OpenResult: Opened

    odbcad32.exe 1036 QueryDirectory C:\Windows\system32 BUFFER OVERFLOW Filter: system32, 1: Syst̻

    odbcad32.exe 1036 CloseFile C:\Windows SUCCESS

    odbcad32.exe 1036 CreateFile C:\Windows\System32\tnsnames.ora NAME NOT FOUND Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a


    To reiterate, this works when user is logged into novell and windows as user on an older "version" of our W7x64 image.
    User is member of administrators.

    This stopped working on our newer "version" of our W7 x64 image which I am told has OS and driver updates. But does work when logged in as administrator.

    When it doesn't work, process monitor shows attempts to locate TNSNAMES.ORA in the C:\oracleic64\instantclient_11_2\network\admin\ instead of referencing the Q: drive as defined by the user variable TNS_ADMIN = Q:\oradev6\net80\admin. Pcaps shows attempts to resolve service names using DNS and NBNS.


    Help?

    Thank you!
    Giles

  2. #2
    Join Date
    Aug 2003
    Location
    Where the Surf Meets the Turf @Del Mar, CA
    Posts
    7,776
    Provided Answers: 1
    Why do you post this in an Oracle forum when obviously the root cause & fix are at OS level?

    When incorrect action is done, you don't get the desired/expected results.

    Oracle is the victim; not the culprit.
    You can lead some folks to knowledge, but you can not make them think.
    The average person thinks he's above average!
    For most folks, they don't know, what they don't know.
    Good judgement comes from experience. Experience comes from bad judgement.

  3. #3
    Join Date
    Jun 2013
    Posts
    3
    Well thank you for taking the time to reply.
    As I said there are many chefs in this kitchen. Unfortunately that is the environment I work in. The swiss cheese model of causation suggests that there a usually more than just one cause of a failure hence why I posted here.

    Could you please enlighten me as to what the "incorrect action" was?

  4. #4
    Join Date
    Aug 2003
    Location
    Where the Surf Meets the Turf @Del Mar, CA
    Posts
    7,776
    Provided Answers: 1
    >Could you please enlighten me as to what the "incorrect action" was?
    process monitor shows attempts to locate TNSNAMES.ORA in the C:\oracleic64\instantclient_11_2\network\admin\ instead of referencing the Q: drive

    Embracing the remembrances that it used to work has NO impact on present realities.

    I don't do Windows, but I have seen numerous reports where "Z:\" failed but full UNC ("\\hostname\dirname") worked.
    You can lead some folks to knowledge, but you can not make them think.
    The average person thinks he's above average!
    For most folks, they don't know, what they don't know.
    Good judgement comes from experience. Experience comes from bad judgement.

  5. #5
    Join Date
    Jun 2013
    Posts
    3
    Thank you!

Posting Permissions

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