Link to home
Start Free TrialLog in
Avatar of akmustafa
akmustafa

asked on

ORA-12537 while connecting ORACLE with an VISUAL BASIC exe file when the file name is too long.

Hi
I have two Oracle databases. 1st one is PROD, 2nd is CARD. Version of DBs are 8.1.7.4.0   .My Tnsnames.ora file is at bottom

I developed a Visual Basic project to acess this both DBs. I used ADODB 2.5 for connection. (Source code at bottom)

i'm trying to connect both databases in VB design screen. I'm connecting to CARD but i can't connect to PROD. I'm getting "Run time error -2147467259 (80004005) ORA-12537: TNS:connection closed" error

on the other hand when i compile this file and give a name like 'test.exe' this executable file is connecting both databases

if i rename the file name to 'test1234567890123456.exe' (filename length is 20 or longer) i can connect just to CARD but getting same error from PROD connection.
When I copy test.exe file to my desktop, rename it to test123456.exe (length 10 or longer) i'm getting same error.

I'm using Windows XP and Windows 2000

What is the problem with my PROD database or with my VB code??



MY VB CODE is
Private Sub Command1_Click()
    Dim sSQL As String
    Dim oRs As ADODB.Recordset
    Dim sProvider As String
    Dim oConn As ADODB.Connection
    Set oConn = CreateObject("ADODB.Connection")
    Set oRs = CreateObject("ADODB.Recordset")
    sProvider = "Provider=MSDAORA.1;Password=pass;User ID=myuserid;Data Source= PROD ;Persist Security Info=True"
    oConn.Open sProvider
    oRs.CursorLocation = adUseClient
    sSQL = "select * from DIVISIONS"
    oRs.Open sSQL, oConn, adOpenDynamic, adLockBatchOptimistic
    Set oRs = Nothing
    Set oConn = Nothing
 End Sub


My tnsnames.ora file is

PROD.world =
  (DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS =
          (PROTOCOL = TCP)
          (Host = 10.1.1.1)
          (Port = 1521)
        )       )
    (CONNECT_DATA = (SERVICE_NAME = PROD)
                    (SERVER=DEDICATED)          )  )

CARD.world =
  (DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS =
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = 10.1.1.2)
          (Port = 1521)
        )    )
    (CONNECT_DATA = (SERVICE_NAME = CARD)
    )  )

Avatar of syed555
syed555

Do you have firewall in PROD server?
Avatar of akmustafa

ASKER

Yes.
But both of DBs are behind same firewall.
Avatar of schwertner
Set USE_SHARED_SOCKET to FALSE in the registry.
Warning :
Setting this parameter will prevent to connect through a firewall which has no
SQL*Net proxy built-in.
Will I do this in my computer?

What is the full aaddress of this key?
ASKER CERTIFIED SOLUTION
Avatar of GhostMod
GhostMod
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial