Hi,
I have Enterprise linux 64-bit hosting Oracle 11gR2 64-bit (11.2.0.1) database. I have access to IBM iSeries AS400 version V7R1. I am trying to connect to IBM iSeries from Oracle Database through ODBC connectivity using Database Link. The following is what I have done.
On the Database (Linux) host Installed iSeriesAccess-7.1.0-1.0.x86_64.rpm provided by IBM.
my odbcinst.ini has the following entries:
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/libodbcpsql.so
Setup = /usr/lib/libodbcpsqlS.so
FileUsage = 1
[iSeries Access ODBC Driver]
Description = iSeries Access for Linux ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2 = the following Driver64/Setup64 keywords will provide that support.
Driver64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup64 = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
[iSeries Access ODBC Driver 64-bit]
Description = iSeries Access for Linux 64-bit ODBC Driver
Driver = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Setup = /opt/ibm/iSeriesAccess/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
The odbc.ini has the following entries:
[ODBC Data Sources]
dg4odbc = connection to db2
[dg4odbc]
Driver = /opt/ibm/iSeriesAccess/lib64/libcwbodbc.so
Description=iSeries Access for Linux ODBC Driver
LogonID=
Password=
Address= (IBM host IP Address)
location=Vm520
noprompt=true
system= (IBM host IP Address)
UNICODE=UTF-8
Naming = 0
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 0
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
made sure I could connect via ODBC and DSN using the following command:
isql dg4odbc oracle oracle1 -v
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
SQL>
SQLRowCount returns -1
600 rows fetched
SQL>
could query the table in a library on AS400.
The $ORACLE_HOME/hs/admin/initdg4odbc.ora has the following entries:
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = dg4odbc
HS_FDS_TRACE_LEVEL = off
HS_FDS_SHAREABLE_NAME=/etc/newlib/libodbc.so
HS_FDS_TRACE_LEVEL = 255
HS_FDS_SUPPORT_STATISTICS=FALSE
#
# ODBC specific environment variables
#
set ODBCINI=/etc/odbc.ini
#
# Environment variables required for the non-Oracle system
#
The listener entries are as follows:
(SID_DESC =
(SID_NAME = dg4odbc)
(ORACLE_HOME = /opt/oracle/dbs/product/11.2.0/dbhome_1)
(PROGRAM = dg4odbc)
)
Stopped and started the listener.
The TNS entry is as follows:
armcdb2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = vmw-dev-rmsdb.xxx.vmc)(PORT = 1521))
(CONNECT_DATA =
(SID=dg4odbc)
)
(HS=OK)
)
Could tnsping :
oracle@rmsdev[/opt/oracle/dbs/product/11.2.0/dbhome_1/network/admin]$ tnsping armcdb2
TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 11-JUL-2013 16:01:23
Copyright (c) 1997, 2009, Oracle. All rights reserved.
Used parameter files:
/opt/oracle/dbs/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = vmw-dev-rmsdb.xxx.vmc)(PORT = 1521)) (CONNECT_DATA = (SID=dg4odbc)) (HS=OK))
OK (0 msec)
created a public database link as follows:
SQL> create database link samplink connect to "oracle" identified by "oracle1" using 'armcdb2';
Database link created.
When I run a select query I get errors as follows:
SQL> select * from mdiaz.AREMAIL@samplink;
select * from mdiaz.AREMAIL@samplink
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
408
Below is the Trace file of dg4odbc:
Oracle Corporation --- THURSDAY JUL 11 2013 16:06:03.627
Heterogeneous Agent Release
11.2.0.1.0
Oracle Corporation --- THURSDAY JUL 11 2013 16:06:03.627
Version 11.2.0.1.0
Entered hgogprd
HOSGIP for "HS_FDS_TRACE_LEVEL" returned "255"
Entered hgosdip
setting HS_OPEN_CURSORS to default of 50
setting HS_FDS_RECOVERY_ACCOUNT to default of "RECOVER"
setting HS_FDS_RECOVERY_PWD to default value
setting HS_FDS_TRANSACTION_LOG to default of HS_TRANSACTION_LOG
setting HS_IDLE_TIMEOUT to default of 0
setting HS_FDS_TRANSACTION_ISOLATION to default of "READ_COMMITTED"
setting HS_NLS_NCHAR to default of "AL32UTF8"
setting HS_FDS_TIMESTAMP_MAPPING to default of "DATE"
setting HS_FDS_DATE_MAPPING to default of "DATE"
setting HS_RPC_FETCH_REBLOCKING to default of "ON"
setting HS_FDS_FETCH_ROWS to default of "100"
setting HS_FDS_RESULTSET_SUPPORT to default of "FALSE"
setting HS_FDS_RSET_RETURN_ROWCOUNT to default of "FALSE"
setting HS_FDS_PROC_IS_FUNC to default of "FALSE"
setting HS_FDS_CHARACTER_SEMANTICS to default of "FALSE"
setting HS_FDS_MAP_NCHAR to default of "TRUE"
setting HS_NLS_DATE_FORMAT to default of "YYYY-MM-DD HH24:MI:SS"
setting HS_FDS_REPORT_REAL_AS_DOUBLE to default of "FALSE"
setting HS_LONG_PIECE_TRANSFER_SIZE to default of "65536"
setting HS_SQL_HANDLE_STMT_REUSE to default of "FALSE"
setting HS_FDS_QUERY_DRIVER to default of "TRUE"
HOSGIP returned value of "FALSE" for HS_FDS_SUPPORT_STATISTICS
Parameter HS_FDS_QUOTE_IDENTIFIER is not set
setting HS_KEEP_REMOTE_COLUMN_SIZE to default of "OFF"
setting HS_FDS_GRAPHIC_TO_MBCS to default of "FALSE"
setting HS_FDS_MBCS_TO_GRAPHIC to default of "FALSE"
Default value of 64 assumed for HS_FDS_SQLLEN_INTERPRETATION
setting HS_CALL_NAME_ISP to "gtw$:SQLTables;gtw$:SQLColumns;gtw$:SQLPrimaryKeys;gtw$:SQLForeignKeys;gtw$:SQLProcedures;gtw$:SQLStatistics;gtw$:SQLGetInfo"
setting HS_FDS_DELAYED_OPEN to default of "TRUE"
setting HS_FDS_WORKAROUNDS to default of "0"
Exiting hgosdip, rc=0
ORACLE_SID is "dg4odbc"
Product-Info:
Port Rls/Upd:1/0 PrdStat:0
Agent:Oracle Database Gateway for ODBC
Facility:hsa
Class:ODBC, ClassVsn:11.2.0.1.0_0008, Instance:dg4odbc
Exiting hgogprd, rc=0
hostmstr: 0: HOA After hoagprd
hostmstr: 0: HOA Before hoainit
Entered hgoinit
HOCXU_COMP_CSET=1
HOCXU_DRV_CSET=871
HOCXU_DRV_NCHAR=873
HOCXU_DB_CSET=871
HOCXU_SEM_VER=112000
Entered hgolofn at 2013/07/11-16:06:03
HOSGIP for "HS_FDS_SHAREABLE_NAME" returned "/etc/newlib/libodbc.so"
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLAllocHandle
symbol_peflctx=0xaab7c2f0
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLBindCol
symbol_peflctx=0xaab7c9d0
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLBindParameter
symbol_peflctx=0xaab7cb6c
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLCancel
symbol_peflctx=0xaab7d416
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLDescribeParam
symbol_peflctx=0xaab7f7dc
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLDisconnect
symbol_peflctx=0xaab7f978
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLEndTran
symbol_peflctx=0xaab7fe42
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLExecute
symbol_peflctx=0xaab808ac
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLFetch
symbol_peflctx=0xaab80b5c
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLFreeHandle
symbol_peflctx=0xaab816aa
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLFreeStmt
symbol_peflctx=0xaab82144
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetData
symbol_peflctx=0xaab83ad8
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetEnvAttr
symbol_peflctx=0xaab84e42
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetFunctions
symbol_peflctx=0xaab84fce
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLMoreResults
symbol_peflctx=0xaab85a0a
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLNumResultCols
symbol_peflctx=0xaab85fba
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLParamData
symbol_peflctx=0xaab86102
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLPutData
symbol_peflctx=0xaab871fc
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLRowCount
symbol_peflctx=0xaab87364
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLSetEnvAttr
symbol_peflctx=0xaab89054
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLSetDescRec
symbol_peflctx=0xaab88e20
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLColAttributeW
symbol_peflctx=0xaab7d6ba
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLColumnsW
symbol_peflctx=0xaab7e264
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLConnectW
symbol_peflctx=0xaab7e6b4
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLDescribeColW
symbol_peflctx=0xaab7f39e
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLDriverConnectW
symbol_peflctx=0xaab7fa9a
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLExecDirectW
symbol_peflctx=0xaab805e6
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLForeignKeysW
symbol_peflctx=0xaab80de6
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetConnectAttrW
symbol_peflctx=0xaab82714
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetDescFieldW
symbol_peflctx=0xaab83c76
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetDescRecW
symbol_peflctx=0xaab83fbe
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetDiagFieldW
symbol_peflctx=0xaab8448a
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetDiagRecW
symbol_peflctx=0xaab84916
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetInfoW
symbol_peflctx=0xaab85136
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetStmtAttrW
symbol_peflctx=0xaab85456
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLGetTypeInfoW
symbol_peflctx=0xaab8576e
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLPrepareW
symbol_peflctx=0xaab863b0
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLPrimaryKeysW
symbol_peflctx=0xaab8667c
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLProcedureColumnsW
symbol_peflctx=0xaab86a14
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLProceduresW
symbol_peflctx=0xaab86e64
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLSetConnectAttrW
symbol_peflctx=0xaab874ac
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLSetStmtAttrW
symbol_peflctx=0xaab896c8
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLSetDescFieldW
symbol_peflctx=0xaab88b00
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLStatisticsW
symbol_peflctx=0xaab89e64
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Entered hgolofns at 2013/07/11-16:06:03
libname=/etc/newlib/libodbc.so, funcname=SQLTablesW
symbol_peflctx=0xaab8a668
hoaerr:0
Exiting hgolofns at 2013/07/11-16:06:03
Exiting hgolofn, rc=0 at 2013/07/11-16:06:03
HOSGIP for "HS_OPEN_CURSORS" returned "50"
HOSGIP for "HS_FDS_FETCH_ROWS" returned "100"
HOSGIP for "HS_LONG_PIECE_TRANSFER_SIZE" returned "65536"
HOSGIP for "HS_NLS_NUMERIC_CHARACTER" returned ".,"
HOSGIP for "HS_KEEP_REMOTE_COLUMN_SIZE" returned "OFF"
HOSGIP for "HS_FDS_DELAYED_OPEN" returned "TRUE"
HOSGIP for "HS_FDS_WORKAROUNDS" returned "0"
HOSGIP for "HS_FDS_MBCS_TO_GRAPHIC" returned "FALSE"
HOSGIP for "HS_FDS_GRAPHIC_TO_MBCS" returned "FALSE"
Invalid value of 64 given for HS_FDS_SQLLEN_INTERPRETATION
treat_SQLLEN_as_compiled = 1
Exiting hgoinit, rc=0 at 2013/07/11-16:06:03
hostmstr: 0: HOA After hoainit
hostmstr: 0: HOA Before hoalgon
Entered hgolgon at 2013/07/11-16:06:03
reco:0, name:oracle, tflag:0
Entered hgosuec at 2013/07/11-16:06:03
Exiting hgosuec, rc=0 at 2013/07/11-16:06:03
Entered hgopoer at 2013/07/11-16:06:03
hgopoer, line 233: got native error 408 and sqlstate 410; message follows...
408
Exiting hgopoer, rc=0 at 2013/07/11-16:06:03
hgolgon, line 193: calling SQLSetConnectAttr got sqlstate 410
Exiting hgolgon, rc=28500 at 2013/07/11-16:06:03 with error ptr FILE:hgolgon.c LINE:193 FUNCTION:hgolgon() ID:Connection Attribute: TRACE
hostmstr: 0: HOA After hoalgon
RPC Calling nscontrol(0), rc=0
hostmstr: 0: RPC Before Exit Agent
hostmstr: 0: HOA Before hoaexit
Entered hgoexit at 2013/07/11-16:06:03
Exiting hgoexit, rc=0
hostmstr: 0: HOA After hoaexit
hostmstr: 0: RPC After Exit Agent
I have looked up the errors on Oracle forums and could not get any valuable help anywhere.
Can someone kindly help out where I am going wrong?
Thanks,
Ram.