I have a system running an Oracle database (12c, 64bit) and I need to have ArcMap running on this same system connect to the database. ArcMap is 32bit so I also have the 32bit Oracle 12c instant client on the system. The user I was connected as when I set all of this up works fine having the 64bit oracle server path first in the environment variables. But any other user on this system gets the "Failed to connect to database ... database client software failed to load..." error. All of the discussions on this topic seem to focus on the environment path which I did in order to get the first user to work. But everything is setup the same for the other users yet it doesn't work for them. Is there anything else that could cause the Oracle client to fail to load? Is there any other logs or checks you can perform to see where the problem is coming from?
Besides the PATH environmental variable pointing to your Oracle Client install, do you also have an environmental variable pointing to your tnsnames file where your Oracle database(s) would be defined?
Do you have other applications being used on the other computers where the endusers might be hitting a different Oracle database version (e.g. 10g, 11g) where the order of the Oracle Client versions in the PATH variable might be important with respect to the Oracle 12c version?
I tried adding the TNS_ADMIN variable pointing at the tnsnames.ora file but that doesn't appear to have changed anything. And that sounds like it would be a different issue. It would have to load the oracle client before doing anything with the tnsnames so I would expect a different error if it just wasn't able to resolve the database naming.
This is a self contained system right now. Only local users. So no other versions or systems are being accessed and only the one version of ArcMap and Oracle are being used.
Do you have the tnsnames.ora file saved onto each machine (This is what I am guessing since you say it's a self contained system that is not on a network)? Are you sure each tnsnames.ora file on every computer is the same?
Yes, single system so only one tnsnames.ora file. At least with the way I've been doing things for years, I never touch the tnsnames.ora file. I let oracle manage that on the server and all clients use tns-less connections.
Remove the 64-bit client from the PATH variable and make sure that the PATH variable is set as a "System variable" and not a "User variable". Put the Oracle 32-bit client at the beginning and restart the ArcGIS client.
I have some active sessions on the system right now that I will have to wait for before I can try this again. But I'm pretty sure I tried this already with the same result. It almost seems like something is stopping the specific user from accessing the oracle client software. But I checked permissions and made sure everyone has access to the folder with the oracle client and nothing has changed.
Yeah, I confirmed that removing the 64bit oracle and only including the 32bit oracle in the path doesn't change anything for the user that doesn't work. The user that does work stops working if I remove the 32bit oracle path as would be expected.
You may need to open a case with the Geodata team https://community.esri.com/groups/technical-support?sr=search&searchId=ec3e969a-ef78-4b2a-905e-756cb... to have them review the issue in more detail.