I get "error diagnosed by Net8 when connecting to an agent" when using DG4ODBC or 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.

Check whether HSODBC is installed (Oracle 10g users)

If you're 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'll get 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 Oracle configuration files

Check your initsid.ora, tnsnames.ora, and listener.ora files. Make sure that the sid part of the sid.ora file is referenced in the listener.ora attribute SID_NAME and the tnsnames.ora attribute SID.

If you're 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 or 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 SQL Server ODBC driver, the process is the same for all Easysoft ODBC drivers. If you need help configuring DGODBC or HSODBC with another Easysoft product, contact the Easysoft Support team (). We will then create a tutorial based around your setup.

Check that you have the correct version of the Easysoft software

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, contact the Easysoft Support team (). Supply the team with this information:

Enable HSODBC or DG4ODBC logging

To enable HSODBC logging, in initsid.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 initsid.ora, set HS_FDS_TRACE_LEVEL to Debug. For example:

HS_FDS_TRACE_LEVEL = Debug

The log output is written to a file in the $ORACLE_HOME/hs/log directory.

After you have made these changes to initsid.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 or 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 get 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 Easysoft web site. Make sure that you have checked the Easysoft.com, Documentation and Knowledge Base search options.

Contact Easysoft Support

If you're still having a problem with your Easysoft ODBC driver and HSODBC or DG4ODBC set up, send the following information to :

  1. The exact error you're getting in SQL*Plus. Make sure you reproduce your problem in SQL*Plus rather than Toad or Oracle Developer, as these applications do not always return the complete or correct error.
  2. The exact version of Oracle you are running.
  3. The output produced by running:
    • cd $ORACLE_HOME/bin
      file hsodbc
      ./hsodbc
      tnsping listener name

      where listener name is the listener you configured to listen for HSODBC.

    –Or–

    • cd $ORACLE_HOME/bin
      file dg4odbc
      ./ dg4odbc
      tnsping listener name

      where listener name is the listener you configured to listen for DG4ODBC.

  4. An HSODBC or DG4ODBC trace log of the problem.
  5. The exact version of the Easysoft ODBC driver you have installed. If you recently downloaded the installation file from the Easysoft web site, the distribution file name is sufficient. Otherwise, send the contents of installation_dir/easysoft/product_install.info, where installation_dir is the directory where the Easysoft ODBC driver is installed, by default, /usr/local.
  6. A copy of your Oracle configuration files initsid.ora, listener.ora and tnsnames.ora.
  7. A copy of your ODBC data source from your odbc.ini file. If you don't know where to find this file, run:
    cd installation_dir/easysoft/unixODBC/bin
    ./odbcinst -j
  8. Whether you get an error when running one particular query or all queries.

If you'd like to contribute to this document, email .