SQLORA32.DLL Problem with Oracle 12c

General discussion forum about all databases other than SqlBase.
Vladimir Belitski

SQLORA32.DLL Problem with Oracle 12c

Post by Vladimir Belitski » 04 May 2014, 11:10

Hallo,

I am very sorry to post a problem for very old version of Team Developer (CTD151 PTF6).
However, the software works just fine with Oracle 9, 10, 11 and we didn't have any problem
of that kind in many years. I hope that somebody can tell us what is wrong and what can be
done to correct the situation.
Setup: on the clean machine we just install Oracle 12c Client 32 and copy the full working directory
with our CTD151 application including SQL.INI. We also set path variable accordingly. We try to coonect to
Oracle 11g Server.
This configuration does not work. The error message:

Code: Select all

5/4/14 11:30:13 1> [connect] dbname = MYDATADB username = someuser
5/4/14 11:30:13 1> [oracon] login string someuser@v2_alias
5/4/14 11:30:18 0> [ERROR] 32560 ORA-12560: TNS: Error by Protocol Adapte
5/4/14 11:30:18 0> r
No problem with SQLPLUS or other software, that also use OCI. This is CTD151 problem.

In Oracle Trace we get:

Code: Select all

2014-05-02 07:36:55.805249 : nlstdipi:entry
2014-05-02 07:36:55.805456 : nlstdipi:exit
2014-05-02 07:36:55.805479 : nigini:entry
2014-05-02 07:36:55.805498 : nigini:Count in the NL global area is now 1
2014-05-02 07:36:55.805514 : nigini:Count in NI gbl area now: 1
2014-05-02 07:36:55.805529 : nrigbi:entry
2014-05-02 07:36:55.805545 : nrigbni:entry
2014-05-02 07:36:55.805825 : nrigbni:Unable to get data from navigation file tnsnav.ora
2014-05-02 07:36:55.805850 : nrigbni:exit
2014-05-02 07:36:55.805865 : nrigbi:exit
2014-05-02 07:36:55.805899 : nigini:exit
2014-05-02 07:36:55.813911 : nigini:entry
2014-05-02 07:36:55.813942 : nigini:Count in the NL global area is now 2
2014-05-02 07:36:55.813953 : nigini:Count in NI gbl area now: 2
2014-05-02 07:36:55.813962 : nigini:exit
2014-05-02 07:36:55.813983 : niqname:Hst is already an NVstring.
2014-05-02 07:36:55.813994 : niqname:Inserting CID.
2014-05-02 07:36:55.814121 : niotns:entry
2014-05-02 07:36:55.814144 : niotns:niotns: setting up interrupt handler...
2014-05-02 07:36:55.814288 : niotns:Not trying to enable dead connection detection.
2014-05-02 07:36:55.814302 : niotns:Calling address: (DESCRIPTION=(ADDRESS=(PROTOCOL=BEQ)(PROGRAM=oracle)(ARGV0=oracleORCL)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))'))(CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=C:\Projects\Centura\Application\Login\Login.exe)(HOST=LENOVOVBE)(USER=vbe))))
2014-05-02 07:36:55.814320 : nsgettrans_bystring:entry
2014-05-02 07:36:55.814801 : nlpcaini:entry
2014-05-02 07:36:55.814860 : nlpcaini:prg = oracle
2014-05-02 07:36:55.814873 : nlpcaini:arg[0] = oracleORCL
2014-05-02 07:36:55.814883 : nlpcaini:arg[1] = (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
2014-05-02 07:36:55.814892 : nlpcaini:env[0] = =::=::\
2014-05-02 07:36:55.814900 : nlpcaini:exit
2014-05-02 07:36:55.814945 : ntgettrans:entry
2014-05-02 07:36:55.814957 : ntgettrans:exit
2014-05-02 07:36:55.814972 : nsgettrans_bystring:exit
Similar configuration with Oracle 11g Client 32 works without any problems.

In Oracle Trace we get:

Code: Select all

2014-05-02 07:15:38.617402 : nlstdipi:entry
2014-05-02 07:15:38.617623 : nlstdipi:exit
2014-05-02 07:15:38.617647 : nigini:entry
2014-05-02 07:15:38.617664 : nigini:Count in the NL global area is now 1
2014-05-02 07:15:38.617679 : nigini:Count in NI gbl area now: 1
2014-05-02 07:15:38.617692 : nrigbi:entry
2014-05-02 07:15:38.617705 : nrigbni:entry
2014-05-02 07:15:38.617993 : nrigbni:Unable to get data from navigation file tnsnav.ora
2014-05-02 07:15:38.618017 : nrigbni:exit
2014-05-02 07:15:38.618032 : nrigbi:exit
2014-05-02 07:15:38.618045 : nigini:exit
2014-05-02 07:15:38.625950 : nigini:entry
2014-05-02 07:15:38.625986 : nigini:Count in the NL global area is now 2
2014-05-02 07:15:38.626003 : nigini:Count in NI gbl area now: 2
2014-05-02 07:15:38.626015 : nigini:exit
2014-05-02 07:15:38.626030 : niqname:Using nnfsn2a() to build connect descriptor for (possibly remote) database.
2014-05-02 07:15:38.626045 : nnfgiinit:entry
2014-05-02 07:15:38.626064 : nncpcin_maybe_init:default name server domain is [root]
2014-05-02 07:15:38.626078 : nnfgiinit:Installing read path
2014-05-02 07:15:38.626091 : nnfgsrsp:entry
2014-05-02 07:15:38.626128 : nnfgsrsp:Obtaining path parameter from names.directory_path or native_names.directory_path
2014-05-02 07:15:38.626141 : nnfgsrdp:entry
2014-05-02 07:15:38.626149 : nnfgsrdp:Setting path:
2014-05-02 07:15:38.626157 : nnfgsrdp:checking element TNSNAMES
2014-05-02 07:15:38.626164 : nnfgsrdp:checking element EZCONNECT
2014-05-02 07:15:38.626172 : nnfgsrdp:Path set
2014-05-02 07:15:38.626179 : nnfun2a:entry
2014-05-02 07:15:38.626188 : nlolgobj:entry
2014-05-02 07:15:38.626196 : nnfgrne:entry
2014-05-02 07:15:38.626204 : nnfgrne:Going though read path adapters
2014-05-02 07:15:38.626211 : nnfgrne:Switching to TNSNAMES adapter
2014-05-02 07:15:38.626219 : nnftboot:entry
2014-05-02 07:15:38.626227 : nlpaxini:entry
2014-05-02 07:15:38.626260 : nlpaxini:exit
The differences in Trace begin at the line
2014-05-02 07:36:55.813983 : niqname:Hst is already an NVstring.
It seemes to me, that OCI in Oracle 12c got from SQLORA32 something which it did not expected, although we
see in debug that all necessary variables were set correctly: SqlDatabase, SqlUser, SqlPassword.
Therefore Oracle tries to connect to defualt database ORCL using default protocol BEQ. The real problem is probably
not Protocol Adapter Error, but something else. My suspision is, that connect string sent by SQLORA32 somehow does not meet
requirements of Oracle 12c OCI.
The relevant part of SQL.INI is:
[oragtwy]
remotedbname=MYDATADB,@v2_alias

In ora32.log file we get then
5/4/14 11:30:13 1> [connect] dbname = MYDATADB username = someuser
5/4/14 11:30:13 1> [oracon] login string someuser@v2_alias

Some more information:
Although according to examples in CTD151 documentation the string "remotedbname" should be as above,
we tryed to modify it so that login string in ora32.log will look like a real connect string that can be sent directely to Oracle.
And we have got some interesting behaviour.
If we use
remotedbname=MYDATADB,/somepassword@v2_alias
than we get
5/4/14 11:37:22 1> [connect] dbname = MYDATADB username = someuser
5/4/14 11:37:22 1> [oracon] login string someuser/somepassword@v2_alias
5/4/14 11:37:25 0> [ERROR] 21017 ORA-01017: Username/Password invalid;
5/4/14 11:37:25 0> Login denied
In this case there is a real attempt to connect to Oracle. Oracle Trace also looks the same as when we use this "remotedbname"
in a working configuration with Oracle 11g Client. We cannot get connect in both configurations and both traces are the same.
I suspect that connect failed because it is not allowed to send password as plain string.
One more test
remotedbname=MYDATADB,/@v2_alias
lead to
5/4/14 11:44:18 1> [connect] dbname = MYDATADB username = someuser
5/4/14 11:44:18 1> [oracon] login string someuser/@v2_alias
5/4/14 11:44:22 0> [ERROR] 21005 ORA-01005: No password provided; Login
5/4/14 11:44:22 0> denied
Again, the same message in both working and not working configurations, the same Oracle Traces and we see the real connection
attempt on the Server side.

We suspect that Oracle has changed something in the OCI, so that calls from SQLORA32 to OCI do not contain necessary information
or this information is not properly formated.

Could you tell us what could be the reason for this problem from your point of view? We would think the problem could be the same
with newer versions of TD?

Thank you very much,
Vladimir

User avatar
Charlie
Canada
Posts: 638
Joined: 07 Mar 2017, 18:52
Location: Fredericton, New Brunswick, Canada

Re: SQLORA32.DLL Problem with Oracle 12c

Post by Charlie » 07 May 2014, 12:09

CTD151 isn't compatible with Oracle 12c client.

I think, as per the compatibility matrix (http://www.guptatechnologies.com/Produc ... atrix.aspx), you should be usng an Oracle 7 or Oracle 8 client.

Whether or not those Oracle clients can get you connected to and Oracle 12c database, I don't know.

Historically (for us), older Oracle clients have worked well with any version of Oracle.

Cheers and best regards.

belitski

Re: SQLORA32.DLL Problem with Oracle 12c

Post by belitski » 08 May 2014, 08:12

Hello,

thank you for answering. Yes, it is clearly not supported. However, it works with Oracle 11 just fine.
It is interesting, what was changed by Oracle? Backwards compatibility is usually preserved ...
It could well be that we just need some parameter like
TNSNAMES.ALLOWED_LOGIN_VERSION(_CLIENT,_SERVER)
to be properly set.

Regards,
Vladimir

belitski

Re: SQLORA32.DLL Problem with Oracle 12c

Post by belitski » 08 May 2014, 15:53

Hello,
yes, it is clearly not supported. But nevertheless everything works fine with Oracle Client and Oracle Server 8,9,10,11 and combinations of both.
In the version 12c Oracle has changed something so that calls to OCI from sqlora32 do not provide the expected input.
However, it could be that setting some additional parameter like TNSNAMES.ALLOWED_LOGON_VERSION(_CLIENT,_SERVER) to a proper value will
solve the problem.

Regards,
Vladimir

skyrioca

Re: SQLORA32.DLL Problem with Oracle 12c

Post by skyrioca » 08 May 2015, 03:10

Dear Vladimir,

Please could you share a tutorial to configure the CTD 1.5.1 to work with oracle 10 ,11 and 12 as you do?

I am not have sucess to CTS 1.5.1 connect to oracle 11g!

thank you so much

Luc

wardies
Great Britain
Posts: 86
Joined: 21 Mar 2017, 10:44
Location: UK

Re: SQLORA32.DLL Problem with Oracle 12c

Post by wardies » 11 May 2015, 17:48

We encountered similar trouble, I think with TD4.2 on Win7 and an Oracle 11g client not being able to connect to 11g server. It was resolved by trying out various Oracle Instant Client versions, some of which worked successfully.

Perhaps something similar might be the answer with CTD1.5.1, i.e. ignore the installed client and have your batch script set the path to the Instant Client. We also serve the product from the network, so the extra Instant Client DLL load impacts somewhat on load time but it does guarantee that we have an identical client that just works across the board.

belitski

Re: SQLORA32.DLL Problem with Oracle 12c

Post by belitski » 11 May 2015, 18:56

I just repeat here what i already sent to skyrioca as answer to a private mail. Our experiance is as follows:

If you are moving from Oracle 9 or 10 to Oracle 11 then you should have problems only with version 11.2.0.4 or newer.
As far as i understand it, Oracle have made some changes in connect in this version that are similar to Oracle 12c.
If this is the case, you have three following options:
1. Move generally one step back from 11.2.0.4 (like 11.2.0.1)
or
2. Take Oracle Client with version smaller than 11.2.0.4
or
3. Use Oracle Instant Client for your applications. In this case you can use only Instant Client 10.1.0.5. The newer versions did not work in my case.
You will also need to configure environment variables for your applications like
set ORACLE_HOME=C:\instantclient
set PATH=C:\instantclient
rem set NLS_LANG=...
This third option should work with 11.2.0.4 and with 12c.

User avatar
Charlie
Canada
Posts: 638
Joined: 07 Mar 2017, 18:52
Location: Fredericton, New Brunswick, Canada

Re: SQLORA32.DLL Problem with Oracle 12c

Post by Charlie » 14 May 2015, 18:52

I am very confused.

Team Developer and Report Builder Compatibility Matrix

How can TD1.5 work with an Oracle Client newer than version 7 ???

msahu123

Re: SQLORA32.DLL Problem with Oracle 12c

Post by msahu123 » 05 Apr 2016, 20:06

Hi All Members,
I currently I supporting a applications built using Centura 2.1 . Application is working on WIN7 with oracle 11g client.

When checking the compatibility with Windows 10 machine with Oracle 12c client, application is not running on WIN 10 system.

Please suggest what changes it would require for oracle connectivity as it seems oracle procedures are not executing.

My sql.ini file:

[oragtwy]
substitute=SYSSQL,
substitute=.,
longbuffer=32767
fetchrow=20
buffrow=32767
maperror=OFF
remotedbname=tso,@db403_gcsp1

[dbnt1sv]
servername=Server1,sqlapipe
dbname=ISLAND,sqlapipe
centurydefaultmode=1
dbdir=C:\PROGRA~1\CENTURA

[dbnt1sv.dll]
comdll=sqlapipe

[dbnt1sv.apipe]
;debug=15,dbntsrv.dbg

[win32client]
clientname=Win32Client

[win32client.dll]
comdll= sqlora32

[win32client.apipe]
;debug=15,client.dbg

[win32client.ntnbi]
;
[win32client.ws32]
serverpath=server1,localhost/island

[win32client.spx32]

[win32client.wsspx]
;

Return to “General Discussion”

Who is online

Users browsing this forum: [Ccbot] and 2 guests