Easysoft Data AccessI get "error diagnosed by Net8 when connecting to an agent" when using DG4ODBC/HSODBC. What can I do? |
|
The full text of the error reported to us was:
ORA-28545: error diagnosed by Net8 when connecting to an agent Unable to retrieve text of NETWORK/NCR message 65535
You may get this error if:
This article lists some possible solutions for this problem. You may need to try more than one solution.
If you are using Oracle 10g, check that your Oracle distribution includes the Heterogeneous Services agent (HSODBC) and that it is installed. To do this, log on as your Oracle user and run:
cd $ORACLE_HOME/bin file HSODBC
On a Linux machine, you will see something similar to the following if HSODBC is installed:
hsoodbc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.2.5, not stripped
If you get HSODBC: empty, your version of Oracle does not include HSODBC. Ask your Oracle supplier about installing the Oracle 11g Database Gateway for ODBC (DG4ODBC). This gateway (which transparently connects Oracle to non-Oracle databases for which an ODBC driver is available) also supports Oracle 10g.
Check your init<sid>.ora, tnsnames.ora and listener.ora files. Make sure that the <sid> part of the init<sid>.ora file is referenced in the listener.ora attribute SID_NAME and the tnsnames.ora attribute SID.
If you are not sure how to configure these files, refer to the appropriate Easysoft tutorial:
Note that these tutorials describe how to configure Oracle for use with DG40DBC/HSODBC. Additional Oracle configuration is beyond the scope of the tutorials and what our Support team can offer assistance with.
Note that although these tutorials were based around the Easysoft ODBC-ODBC Bridge and Easysoft ODBC-SQL Server Driver, the process is the same for all Easysoft ODBC drivers. If you need help configuring DGODBC/HSODBC with another Easysoft product, please contact the Easysoft support team (support@easysoft.com). We will then create a tutorial based around your set up.
You may have installed the wrong version of the Easysoft software. For example:
If you are not sure whether to use a 32-bit or 64-bit Easysoft driver, please contact the Easysoft support team (support@easysoft.com). Supply the team with this information:
<installation_dir>/easysoft/product_install.info, where <installation_dir> is the directory where the Easysoft ODBC driver is installed, by default, /usr/local.To enable HSODBC logging, in init<sid>.ora, set HS_FDS_TRACE_LEVEL to 4, and specify a log file with HS_FDS_TRACE_FILE_NAME. For example:
HS_FDS_TRACE_LEVEL = 4 HS_FDS_TRACE_FILE_NAME = /tmp/hsodbcsql.trc
To enable DG4ODBC logging, in init<sid>.ora, set HS_FDS_TRACE_LEVEL to Debug. For example:
HS_FDS_TRACE_LEVEL = Debug
The log output will be written to a file in the $ORACLE_HOME/hs/log directory.
After you have made these changes to init<sid>.ora, restart the Oracle Listener. For example:
cd $ORACLE_HOME/bin ./lsnrclt stop ./lsnrclt start
If a log file is not generated, either your Oracle configuration files have not been set up correctly or HSODBC/DG4ODBC is not installed. For help with Oracle configuration, contact your Oracle DBA or Oracle support team.
If a log file is generated and you see the following error, refer to Why do I get error "Generic Connectivity Using ODBC][C077] Could not find symbol 'SQLAllocConnect' in dynamic library"?
ERROR : Could not find symbol 'SQLAllocConnect' in dynamic library
If you get an error that contains the text Could not load library libodbc, on the machine where the Easysoft ODBC driver is installed, you need to ensure the library search path includes the Easysoft driver directories. The environment variable you use to set the library search path varies:
| Platform | Environment variable |
|---|---|
| AIX | LIBPATH |
| HP-UX | SHLIB_PATH |
| Linux. Solaris. Other System V based operating systems. | LD_LIBRARY_PATH |
Set the appropriate variable for your platform in your Oracle user’s .profile file. For example:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<installation_dir>/easysoft/lib:<installation_dir>/easysoft/unixODBC/lib export LD_LIBRARY_PATH
where <installation_dir> is the directory where the Easysoft ODBC driver is installed, by default, /usr/local.
Stop and start your Oracle listener before trying to connect again.
If you get another error, try searching for the error text on the Eaysoft web site. Make sure that you have checked the "Easysoft.com", "Documentation" and "Knowledge Base" search options.
If you are still having a problem with your Easysoft ODBC driver/HSODBC or DG4ODBC set up, send the following information to support@easysoft.com:
cd $ORACLE_HOME/bin file hsodbc ./hsodbc tnsping <listener name>
where <listener name> is the listener you have configured to listen for HSODBC.
–Or–
cd $ORACLE_HOME/bin file dg4odbc ./ dg4odbc tnsping <listener name>
where <listener name> is the listener you have configured to listen for DG4ODBC.
<installation_dir>/easysoft/<product>_install.info, where <installation_dir> is the directory where the Easysoft ODBC driver is installed, by default, /usr/local.init<sid>.ora, listener.ora and tnsnames.ora.odbc.ini file. If you do not know where to find this file, run:
cd <installation_dir>/easysoft/unixODBC/bin ./odbcinst -j
If you would like to contribute to this document, please email support@easysoft.com.