How do I run 1 windows service a with 32 bit Oracle client library and another application with a 64 bit Oracle client library?

Hi guys,

I have the task of finding out on Windows if you can have a 64 bit installation and 32 bit installation of the Oracle client libraries installed at the same time (I am using Oracle 11g client libraries). The 32 bit application runs as a service, and I don't know about the 64 bit application yet. Is this possible as they both need a different ORACLE_HOME variable?  If the 32 bit application ran in the foreground I would just use a batch file to set the variable, but I don't know how to set the environment for a service.

Is there an Oracle solution for this?  Or is this a windows thing?

Thanks
Grant
Grant RogersMonitoring ConsultantAsked:
Who is Participating?
 
Franck PachotConnect With a Mentor Commented:
Hi,
I don't know an easy way to do that. You may try to launch the service with another user that has his own ORACLE_HOME environment variable.
But remember that Oracle recommendation on windows is that ORACLE_HOME is not set so that all environment relies on the registry key entries.
Regards,
Franck.
0
 
Franck PachotCommented:
Hi,
You need to know how your service is calling oracle.
The ORACLE_HOME that will be used is the one from the oracle executable (.exe ou .dll) that is called.
Regards,
Franck.
0
 
Grant RogersMonitoring ConsultantAuthor Commented:
Hi Frank,

The service is using the native Oracle client libraries and relies on the ORACLE_HOME environment to be set correctly.

The problem is when you set ORACLE_HOME in the enivronment in Windows it is global for all applications.  How do you set this individually for a service?

Thanks
0
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
Grant RogersMonitoring ConsultantAuthor Commented:
Hi Frank,

Can you tell me which registry keys are being used instead?  Can you set these keys per user / application?

Thanks
0
 
Franck PachotCommented:
Here is how it works on windows:
- you call Oracle by calling a binary (oracle.exe, or a dll,...)
- oracle look into the directory where that binary comes from
- it reads the file oracle.key that has the nme of the registry key
- then it looks into the registry for that key under Oracle software branch
- and gets all values from here

So you need to know how you application service calls oracle dll...
0
 
Grant RogersMonitoring ConsultantAuthor Commented:
The application uses a wrapper library called sqlapi and this then calls the oracle dlls.

How do I set either oracle.key or the registry setting per application then?

Thanks
0
 
Franck PachotCommented:
<b>per application</b>, it is only dependent of the application. The application calls the dll. Only the application can choose another Oracle home.
0
 
Grant RogersMonitoring ConsultantAuthor Commented:
Hi Franc,

I am going to give the second user solution a go,

Thanks for you help
Grant
0
 
Grant RogersMonitoring ConsultantAuthor Commented:
Hi Franc,

I have chosen B as the grade for your answer as it a solution, but not really the answer to my original question.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.