In ArcMap 10.8.1 we are faced with a "Cannot connect to database because the database client software failed to load. Be sure the database client software is installed and configured correctly." message when trying to register a 19c Oracle database with a 10.8.1 federated ArcGIS Server.
The Oracle database, ArcGIS Desktop, and ArcGIS Server are on separate VMs. The ArcGIS Desktop VM has the 32-bit database client installed. While the ArcGIS Server VM has the 64-bit client installed. We restarted each VM after the database client installs, but are still faced with the same error.
The environment variable PATHs are also configured on each VM. What could be causing this error? Everything seems to be configured and installed.
Any help is appreciated!
Hello @BillShoop
Do you have the sqlnet.ora and tnsnames.ora files configured and in the corresponding folder?
Also check the communication between the servers and the instance, and verify the port it uses (you could use a telnet <server name> port). It depends on the client you installed, but you could also use in cmd > tnsping <instance name> (configured in the tnsnames file).
Regards.
@lvargas , Thanks for the reply. I have not touched the .ora files. We are using a Easy Connect string to connect to the database in ArcCatalog.
Use SQLPlus to test the connection to the Oracle Database, do this on the ArcMap machine and on the ArcGIS Server machine, that is the first step to test if the Oracle Client is working fine, if you are using Oracle Instant Client then make sure to download SQLPlus for Oracle Instant Client and unzip that on the same location of the Oracle Instant Client software, also double check if you set the correct PATH variable, there is one for the system and one for the user. I hope this helps.
------------------------------------------------------------------------------
My YouTube video about How to Install the Oracle Client Software might help as well; video has no audio.
https://youtu.be/ni_j8Rfp0J0 - Oracle 19c Instant Client
https://youtu.be/d7hRCootD9Y - Oracle 19c Full Client
------------------------------------------------------------------------------
Instant Client for Microsoft Windows (x64) 64-bit (oracle.com)
Instant Client for Windows 32-bit (oracle.com)
------------------------------------------------------------------------------
Note: Oracle Instant Client Base Package requires the " Microsoft Visual Studio Redistributable".
Oracle Instant Client 21.7 requires the Microsoft Visual Studio 2017 Redistributable
------------------------------------------------------------------------------
Note: if you are using TNSNAMES.ORA file then make sure the file is under the correct location, then test the database connection with SQLPlus to make sure the TNSNAMES.ORA file is working.
How do I ensure that my Oracle Net files like "tnsnames.ora" and "sqlnet.ora" are being used in Instant Client?
Files like "tnsnames.ora", "sqlnet.ora" and "oraaccess.xml" will be located by Instant Client by setting the TNS_ADMIN environment variable or registry entry to the directory containing the files.
Use the full directory path; do not include a file name.
Alternatively create a subdirectory "network/admin" under the Instant Client directory for the Oracle Net files. This is the default location and so no TNS_ADMIN variable is required.
*/
--under $ORACLE_CLIENT_HOME/network/admin create a file named sqlnet.ora and add this line to enable windows authentication and save the file
SQLNET.AUTHENTICATION_SERVICES = (NTS)
/*
--example: sqlnet.ora created under oracle instant client 64-bits (Pro) and 32-bits (ArcMap)
C:\oracle\instantclient_19_6\x32\network\admin
C:\oracle\instantclient_19_6\x64\network\admin
--cmd window, verify PATH variable
echo %PATH%
... ;C:\oracle\instantclient_19_6\x64;C:\oracle\instantclient_19_6\x32; ...
*/
Thanks a lot for the SQLPlus tip. We were able to identify that our ArcGIS Server was resulting in an access denied message when launching sqlplus unless running it from the cmd prompt as an admin. What we ended up doing was uninstalling the oracle client on the server and reinstalling it not as an admin. We were able to register the database successfully, but still are receiving an error code when publishing relating to the database not being registered. "error 001272: analyzer errors were encountered (codes = 90)"
You need to first add the "Database" Data Store to ArcGIS Server, then you will be able to Publish from ArcGIS Pro / ArcMap.
Manage registered data stores—ArcGIS Pro | Documentation
Register your data with ArcGIS Server using ArcGIS Desktop—ArcMap | Documentation
ArcGIS Server Manager > Sites > Data Stores >
Click "Register: Database" > Click Import > Browse for the Geodatabase Connection File.
Click Create
Click Validate All
Note: if your map document has layers from different geodatabase connection users then you must register each one as a new Data Store in Server Manager.
Please, read carefully the database connection best practices in the link below.
Database Connections Best Practices
I hope this helps.
Hey @MarceloMarques ,
Thanks for the documentation, but these steps have been already taken. The only difference is I completed them in the ArcCatalog pane from ArcMap. I successfully registered the database with ArcGIS Server and they validate successfully.
All layers come from a single geodatabase connection user and upon "Analyze" in the Service Editor window, no errors appear denoting a unregistered layer. Below is the error that pops up when publishing.
This is what is so frustrating. Everything seems to be in order, but it just doesn't want to publish. Thanks again for helping me on this issue.
Bill
@BillShoop - please open a ticket with Esri Support if you continue to experience error 001272 to publish the service, see below the workaround.