Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post found bugs and possible workarounds.
cstasey

Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by cstasey » 28 Jun 2012, 21:55

In the process of converting a system from ctd3.1 to td6.0.

I'm getting this error when trying to connect to an Oracle 10g database in Sqltalk from a Windows 7 machine:

Error: 09293 GCI NDL Cannot load any communication DLLs, network may not be installed

The application that I'm converting connects just fine in the td6.0 environment on the same machine.

The 3.1 version of the system is running against the same database and from a Windows XP machine. The 6.0 version of the system is running on separate Windows 7 machine. I have no issues with the 3.1 system and XP.

Any ideas what might be causing this error? It strikes me strange that the applcation will connect, but not sqltalk.

Thanks,
Chris

Jeff Luther

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by Jeff Luther » 29 Jun 2012, 21:22

Trying to follow the logic in your msg. sounds like this is the problem: SQLTalk (which TD folder version?) cannot connect to Oracle.

Generally, TD and SQLTalk use the SQL.INI in their install folder to know what/how to connect, which comdll= entries are uncommented, etc.

So... if that folder is not first in PATH, or you are running from another folder, etc. then either no or the wrong INI might be picked up. If you have multiple INIs, if your TD v6 appl. has its own INI file local to it and is correct, then you have a config/setup issue sounds like.

If my summary isn't correct, kindly detail your summary. Bottom line is that the SQL.INI that SQLTalk (where is it?) is not finding the correct SQL.INI file.

A good test to find out what *is* the default INI file is Win Start/Run..., type in SQL.INI and Notepad should find one and open it.
Now in Notepad, just click menu File/Save As... and dlg. will show you path where INI came from. With > TD installed, one has to be 'official' install that PATH contains, etc. Any other TD versions then become basically 'run locally only'.

cstasey

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by cstasey » 02 Jul 2012, 21:02

Correct, SQLTalk cannot connect to Oracle (TD version 6.0).

We copy the sql.ini into the c:\windows\system32 folder (first folder in the system path) for whichever environment we are running. I've also tried copying the sql.ini into the same folder as the sqltalk.exe and I still get the same error.

Here is what is in the sql.ini: Is there something maybe wrong here? The dbname is AHISTEST.

[win32client]
clientname=CSTASEY
;clientruntimedir="j:\apps\td310.p1"
setzerolengthstringstonull=1

[win32client.dll]
comdll=sqlora32
comdll=sqlodb32
;comdll=sqlws32

[win32client.ora32]
;log=c:\orartr.log /Fa /Ld /Tx

[win32client.odb32]
;log=c:\odbcrtr.log /Fa /Ld /Tx

[oragtwy]
remotedbname=AHISTEST,@AHISTEST
substitute=SYSSQL.,
substitute=",
fetchrow=20
nodefparse=no
maperror=0

[odbcrtr]
odbctrace=off
odbctracefile=c:\sql.log
[win32client.ws32]

Jeff Luther

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by Jeff Luther » 02 Jul 2012, 23:09

I see something: that third comdll= (for SQLBase) must not be commented, even if you do not use SB (TD/router needs it internally):
[win32client.dll]
comdll=sqlora32
comdll=sqlodb32
;comdll=sqlws32

Should be:
[win32client.dll]
comdll=sqlora32
comdll=sqlodb32
comdll=sqlws32
We copy the sql.ini into the c:\windows\system32 folder (first folder in the system path) for whichever environment we are running.
And what do you do about the PATH?

cstasey

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by cstasey » 03 Jul 2012, 19:53

I uncommented that line, still get the same error.

The path is left unchanged when the environment is configured. The path already contains the location of the TD6.0 runtime. The first 5 entries in the path are: c:\windows\system32;c:\program files\unify\team developer 6.0\axis2c;c:\program files\unify\team developer 6.0\axis2c\lib;c:\programdata\unify\team developer 6.0;c:\program files\unify\team developer 6.0\;

The sql.ini that I am trying to use is the same one that has worked for years with the ctd3.1 runtime. I don't see anything in it particular to 3.1 (except the commented clientruntimedir, which has always been commented).

Jeff Luther

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by Jeff Luther » 03 Jul 2012, 22:56

The sql.ini that I am trying to use is the same one that has worked for years with the ctd3.1 runtime.
Well, I'm 3.1 has worked for you for a long time (and would likely continue to do so if you weren't upgrading to a new TD), but I have seen a couple reports like yours where the user with an old INI was still using it and 'assumed' to still be OK in later TDs, like v6.0.

It seems that can be a mistaken assumption, Chris. A far better plan is to take the default TD v6.0 SQL.INI that's installed in that folder, make a copy of it (!), then modify that INI NOT by removing what you think it doesn't need, but instead ADDING the serverpath/remotedbname names entries -- plus updating other settings like fetchrow, longbuffer, etc.-- so that the base TD 6.0 SQL.INI works with your DBs. Essentially, you copy the essentials of the 3.1 entries --> v6.0 INI.

What you are doing is taking an old INI and trying to bring it up to working in v6.1. Notice this commented-out entry, for example:
;clientruntimedir="j:\apps\td310.p1"

My INI has:
[win32client]
clientname=jl830
clientruntimedir="C:\Program Files\Unify\Team Developer 6.0`"


There's no v6.0 replacement I see in your INI. This is what I mean. Like debugging, start with the known/working, and modify it, not take an old INI and comment out what isn't correct any longer. Too easy to miss what is needed that way.

cstasey

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by cstasey » 05 Jul 2012, 21:45

I didn't comment anything out of the sql.ini that we are using for the 3.1 runtime version. Those entries are already commented and it is working in the 3.1 system.

Ok, so I did as you suggested and took the default sql.ini from the c:\program files\unify\team developer 6.0 folder and changed just the entries that pertained to our database:

[dbntsrv]
dbname=ISLAND
servername=server1
cache=2000
sortcache=2000
readonly=0
oracleouterjoin=0
logfileprealloc=0
partitions=0
optimizerlevel=2
ansijoinsyntax=0
dbdir=C:\Program Files\Unify\Team Developer 6.0
tempdir=C:\Program Files\Unify\Team Developer 6.0

[dbntsrv.dll]
comdll=sqlws32

[win32client]
clientname=hfs-mjcyxh7
clientruntimedir="C:\Program Files\Unify\Team Developer 6.0"

[win32client.dll]
; order of win32client dll's is important when connecting to multiple databases.
; sqlws32 should always be the last and sqlodb32 be 2nd last.
comdll=sqlora32
; comdll=sqlsyb32
comdll=sqlodb32
comdll=sqlws32

[win32client.ws32]
serverpath=server1,localhost/*

;[win32client.ws32]
; Resource Manager (sqlmpipe uses port 2156 explicitly declared instead of
; default port 2155
;serverpath=server1,localhost,2156/*

[oragtwy]
remotedbname=AHISTEST,@AHISTEST
longbuffer=32767
fetchrow=20
substitute=SYSSQL.,

[sybgtwy]
remotedbname=test, hostname, master, 0

[odbcrtr]
odbctrace=off
odbctracefile=sql.log
longbuffer=250000


In other words, the only thing I changed was the remotedbname under [oragtwy] and uncommented: comdll=sqlora32 and comdll=sqlodb32

Then, when I tried to connect, I got the error: Error: 09268 GCI CCN Cannot connect

Well, at least it's a different error. Maybe 6.0 requires those entries (clientruntimedir & comdll=sqlws32).


It appears that [dbntsrv], [dbntsrv.dll], and [sybgtwy] are related to sqlbase or sybase, so I removed those entries.

Tried to connect with sqltalk and get the error: Error: 09268 GCI CCN Cannot connect


I think maybe something in our original ini file might be needed, so I change the [oragtwy] and [odbcrtr] to match what we had originally:
[oragtwy]
remotedbname=AHISTEST,@AHISTEST
substitute=SYSSQL.,
substitute=",
fetchrow=20
nodefparse=no
maperror=0

[odbcrtr]
odbctrace=off
odbctracefile=sql.log

Tried to connect with sqltalk and get the error: Error: 09268 GCI CCN Cannot connect


Ok, so I'm thinking this [win32client.ws32] entry pertains to sqlbase and I remove it.

Tried to connect with sqltalk and get the error: Error: 03703 CFF MCE Missing configuration file entry


So, obviously, it's looking for that entry. I think, well, maybe it's because of the comdll=sqlws32 being uncommented. So, I comment that line and try again:

Error: 09293 GCI NDL Cannot load any communication DLLs, network may not be installed

Back to where I started. So, I put comdll=sqlws32 back in the file as well as the [win32client.ws32], but comment the entry under [win32client.ws32] and I'm back to:

Error: 09282 GCI GEN General error


I'm about ready to punt. I can't help but think there is nothing wrong with our original sql.ini as the application still connects just fine. The only thing that doesn't work is sqltalk. I have other database tools that I can use, but I do like using sqltalk. It loads fast and is user friendly. It doesn't support all the oracle return codes, but it's handy and user friendly.

But, what could be the issue???

The sql.ini now looks like:

[win32client]
clientname=hfs-mjcyxh7
clientruntimedir="C:\Program Files\Unify\Team Developer 6.0"

[win32client.dll]
; order of win32client dll's is important when connecting to multiple databases.
; sqlws32 should always be the last and sqlodb32 be 2nd last.
comdll=sqlora32
; comdll=sqlsyb32
comdll=sqlodb32
comdll=sqlws32


[win32client.ws32]

[win32client.ora32]
log=c:\orartr.log /Fa /Ld /Tx

[win32client.odb32]
log=c:\odbcrtr.log /Fa /Ld /Tx

[oragtwy]
remotedbname=AHISTEST,@AHISTEST
substitute=SYSSQL.,
substitute=",
fetchrow=20
nodefparse=no
maperror=0

[odbcrtr]
odbctrace=off
odbctracefile=sql.log

Jeff Luther

Re: Error: 09293 GCI NDL Cannot load any communication DLLs, net

Post by Jeff Luther » 06 Jul 2012, 18:37

There are only about 3 things/topics that can go wrong:
* incorrect or wrong SQL.INI being loaded for given TD version

* incorrect PATH so wrong router DLLs are trying to get called. 'Wrong' being wrong DLL versions for given TD you are running

* don't have the DB client installed or wrong client version installed. Better check the DBs and clients that are supported for v6:

Other DBs (and perhaps clients) may work; that list on the matrix page is what is certified by QA that run with given TD.

Return to “Bug Reports”

Who is online

Users browsing this forum: [Ccbot] and 0 guests