How to create a proxy table in IQ 16.0.
Hi all,
This blog is to share a way of how to create a proxy table in IQ server.
The source table exists in a database of an ASE dataserver.
I had to create a proxy table to reproduce a certain problem on my environment.
I referred to a KBA 1969970 and IQ manual pages for creating a proxy table in IQ database.
Please take a look at the procedures below.
Environment
1) IQ version : IQ 16.0 SP08
2) SDK vesion:SDK 15.0 ESD #30
3) ASE version: ASE15.0.3
4) OS version : Linux SUSE 11
1. Create an ODBC dsn for the ASE dataserver in .odbc.ini which exists in $ODBCINI or $SYBASE
It’s mandatory to add another ODBC dsn for the ASE dataserver with below parameters.
It is because the server class ‘asejdbc’ has been deprecated in IQ 16.0, which means ‘aseodbc’ is the only one way to be declared.
(cf. the server ‘asejdbc’ is still shown in the IQ 16.0 manuals, but it’s not available.)
[DSN_PDREP]
ServerName=PDREP
Database=PDREP
UID=pdrep
PWD=sap12345
SERVER=linux-sslt
PORT=5100
USECURSOR=1
Driver=/share/ase/DataAccess64/ODBC/lib/libsybdrvodb.so
2. Add a server entry for the remote ASE dataserver to interfaces file using dscp command.
Distinguish name: PDREP
Server Entry Version: 1
Server Name: PDREP
Server Service: Adaptive Server Enterprise
Server Status: 4 (Unknown)
Server Address:
Transport Type: tcp
Transport Address: x.x.x.129 5100
3. Create odbc.ini symbolic link to point to “.odbc.ini”.(*** the symbolic link doesn’t have a dot(.) at foremost)
ln -s $HOME/.odbc.ini $SYBASE/odbc.ini
4. Add a path for the DataAccess library to the $LD_LIBRARY_PATH variable.
You should install SDK(Software Development Kit) on the machine where the IQ server is running if the ASE dataserver is running on a different machine from the IQ server.
iq16:/home/iq16] echo $LD_LIBRARY_PATH
/home/iq16/IQ-16_0/lib64:/share/ase/DataAccess64/ODBC/lib:/home/iq16/OCS-15_0/lib:/home/iq16/OCS-15_0/lib3p64:/home/iq16/OCS-15_0/lib3p:
5. Connect to the IQ server with DBA or an account with SERVER OPERATOR system privilege and run below commands.
create server PDREP class ‘ASEODBC’ using ‘DSN_PDREP’;
create externlogin DBA to PDREP remote login pdrep identified by sap12345 ;
create existing table proxyt1(a int, b char(300)) at ‘PDREP.PDREP.dbo.proxyt1’;
6. Connect with the registered externlogin and execute a query.
forward to PDREP { select * from proxyt1 };
HTH
Jerry