Errror: OCICALL.DLL using Oracle8 client + Oracle 11 client

Errror: OCICALL.DLL using Oracle8 client + Oracle 11 client

Postby goethals.f » Fri 25 Feb 2011 13:04

Hello,


I have just logged a specific support-request with title "OCI.DLL Error: Using oracle 11 client + Oracle 8 client" (+ uploaded full test project) about OCICALL.DLL when using Oracle 8 client + Oracle 11 client in 1 application.

I will post in short some info about the error. Maybe some other forum people can give also some feedback.


We have an oracle 734 DB and Oracle 10.2 DB.
On the clients we have oracle 8 client installed as the default home, and oracle 10 client installed.

Our applications uses dotconnect 6.10.96.0 and uses 2 connections objects, one for oracle 734 using oracle8 client, and one for oracle 10 using oracle 10 client.

So far so good. This is working perfect (already for some years)


Currently we have setup a new Oracle 11.2 DB which would replace the full oracle 10.2 DB. The old oracle 734 is still needed.

So my plan was to have on the clients the oracle 8 client (for access to oracle734) and the new oracle 11.2 client for connecting to oracle 11.2
So no oracle 10 client anymore on the client.


But when I now test an application which has both a connection towards oracle 734 and oracle 11.2 --> I encounter ocicall.dll errors ("Procedure not found" errors (freely translated from the dutch error message)

But the strangest part is, that this error ONLY happens when I first create the oracle 11 connection followed by the oracle 734 connection.

When I first create oracle 734 connection followed by oracle 11 connection --> there is no error ???

Each connection has a specific connectionstring, pointing to the correcte oracle home. But it seems that when I first open the oracle 11 connection, and then the oracle 734 some DLL's errors happens.

Why is this specific sequence gives only in one scenario an error ?


*** Edited ***
I have just tested it also on a Windows server 2008 R2 , and got the following error

The procedure entry point orasql10.sqlxss could not be located in the dynamic link library orasql8.dll.



Maybe this gives us some more info which procedure calls are failing, and trying to execute towards oracle 734 DB....

*** End Edited ***

*** Edited 2 ***

I have the same error messages when I'm using OraDeveloper tools from VS.NET 2010.

When I use the database explorer and first open an oracle 11 connection, and then try an oracle 734 connection. It throws the OCI errors

But restarting vs.NET 2010 and first oracle 734 connection with oracle8 client followed by the oracle 11 connection, does work

This was all working fine with the oracle 10 client, and now not anymore with installing oracle 11

*** End Edited ***


In our apps it is not always so easy to force that specific sequence of opening connections. (like service apps, websites, ...)


So, hopefully you can reproduce this very specific situation !


Thx,
Fred


PS: As a backup plan we could stick to the oracle 10 client, but then I will have some other issues maybe on Windows 7 32/64 bit /Windows 2008 R2 64 bit....
On those new OS's I would like to use the oracle 11 client --> so we only have 2 clients in our infrastructure (oracle 8 and oracle 11 client, and not 3 client versions....)
goethals.f
 
Posts: 60
Joined: Mon 18 May 2009 13:17

Postby goethals.f » Fri 25 Feb 2011 14:24

Hi,


I did also find some more info on the forum

http://www.devart.com/forums/viewtopic. ... cle+client

It seems also a problem concerning multiple homes and multiple connections in the same application.... And in combination with the oracle 11 client...


The advice from devart was not to use multiple/different homes in the same application.

Is this advice still valid, because I did not have any issues combining oracle 8 client and oracle 10 client.

but now combining oracle 8 and oracle 11 gives errors.....


Not using multiple homes would leave us stuck to the oracle 8 client because of our old oracle 734 DB.
And in that way we can not benefit of any enhancements of the oracle 10/11 client.


So if anyone from devart can give some feedback, it could maybe clear up the sky a little bit :-)


Fred
goethals.f
 
Posts: 60
Joined: Mon 18 May 2009 13:17

Postby Shalex » Mon 28 Feb 2011 13:41

goethals.f wrote:Hi,
I did also find some more info on the forum
http://www.devart.com/forums/viewtopic. ... cle+client
It seems also a problem concerning multiple homes and multiple connections in the same application.... And in combination with the oracle 11 client...
The advice from devart was not to use multiple/different homes in the same application.
Is this advice still valid, because I did not have any issues combining oracle 8 client and oracle 10 client.

Yes, this piece of advice is valid. We strongly recommend not to use multiple homes in the same application. In addition to the thread you have mentioned, here is one more: http://www.devart.com/forums/viewtopic.php?t=16648. It is possible that oci.dll from the client, that is loaded last, doesn't use its own libraries, but uses the ones from the client, that is loaded first instead.
Shalex
Devart Team
 
Posts: 5763
Joined: Thu 14 Aug 2008 12:44

Postby goethals.f » Mon 28 Feb 2011 15:48

Shalex wrote:
goethals.f wrote:Hi,
I did also find some more info on the forum
http://www.devart.com/forums/viewtopic. ... cle+client
It seems also a problem concerning multiple homes and multiple connections in the same application.... And in combination with the oracle 11 client...
The advice from devart was not to use multiple/different homes in the same application.
Is this advice still valid, because I did not have any issues combining oracle 8 client and oracle 10 client.

Yes, this piece of advice is valid. We strongly recommend not to use multiple homes in the same application. In addition to the thread you have mentioned, here is one more: http://www.devart.com/forums/viewtopic.php?t=16648. It is possible that oci.dll from the client, that is loaded last, doesn't use its own libraries, but uses the ones from the client, that is loaded first instead.




Hmm, bad news to hear...


I first did my testproject again with the oracle8 and oracle 10 client --> and there I did'n received any error, independant of the sequence of opening the connections.

After that, I did some further testing with my testproject, and combined it now with my working oracle 10 client (so 3 clients now: 8 / 10 /11)

Now I have 6 possible sequences of opening my 3 connections, and only when I first open (use) my oracle 11 client, I can open also an 10-client and 8-client connection.

All other cases where I first open a oracle8 or orcacle10 connection, all fail when I try the oracle 11 client.


PS: it seems I have mixed up my first post where I mention that this error only happens when first the oracle 11 is used. It should be the other way around


It seems indeed that something is changed in the oracle 11 client dll's, regarding the oracle 10 client dll's


so we have to keep using the oracle 10 and oracle 8 combined, and move on to the oracle 11 client if we get rid off our old oracle 734 DB.



But nevertheless, thx for pointing out that this is indeed some sort of unsupported way of using mutiple homes in the same app....
goethals.f
 
Posts: 60
Joined: Mon 18 May 2009 13:17


Return to dotConnect for Oracle