Author |
Message
|
bbakerman |
Posted: Mon May 01, 2006 7:56 pm Post subject: Using Oracle instantclient 10_2 on AIX and MB v5CSD6 |
|
|
Apprentice
Joined: 17 Dec 2003 Posts: 41
|
I thought some people might be interested in how to get MB v5 connected to an Oracle backend using the "newish" Oracle instantclient software.
I buggered around with this for a few days and finally got it working. As it turned out this was still faster than trying to find an 8i oracle client for AIX 5 so it saved m,e time.
So I thought this might help a few other people save time as well.
The Oracle instantclient allows OCI/JDBC applications to connect to an Oracle server without having to have the full Oracle client installed.
First off go to
http://www.oracle.com/technology/tech/oci/instantclient/index.html
and get the instantclient software you need.
I grabbed the basic and sqlplus packages. Unzip them into a directory of you choice. I used /usr/oracle/instantclient_10_2.
You should then have :
Code: |
-rwxr-xr-x 1 root system 1593906 May 02 13:31 classes12.jar
-rwxr-xr-x 1 root system 1525 May 02 13:31 glogin.sql
-rwxr-xr-x 1 root system 21870588 May 02 13:31 libclntsh.a
-rwxr-xr-x 1 root system 4238382 May 02 13:31 libnnz10.so
-rwxr-xr-x 1 root system 5701464 May 02 13:31 libocci.a
-rwxr-xr-x 1 root system 70107430 May 02 13:31 libociei.so
-rwxr-xr-x 1 root system 20666086 May 02 13:31 libocijdbc10.so
-rwxr-xr-x 1 root system 21686747 May 02 13:31 libsqlplus.so
-rwxr-xr-x 1 root system 1432666 May 02 13:31 libsqlplusic.so
-rwxr-xr-x 1 root system 1540330 May 02 13:31 ojdbc14.jar
-rwxr-xr-x 1 root system 21616795 May 02 13:31 sqlplus
|
You need to set LD_LIBRARY_PATH and LIBPATH to include this new directory.
Code: |
LIBPATH=$LIBPATH:/usr/oracle/instantclient_10_2;
export LIBPATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/oracle/instantclient_10_2
export LD_LIBRARY_PATH
|
You can use sqlplus to connect to your target Oracle database.
Code: |
sqlplus userid/password@//hostname:port/db_name_sid
|
or in my case
Code: |
sqlplus usrv500/passwordXXX@//10.33.129.3:1521/learn1
|
In my case this connected successfully to a old legacy Oracle 8 database
Code: |
SQL*Plus: Release 10.2.0.2.0 - Production on Tue May 2 13:38:06 2006
Copyright (c) 1982, 2005, Oracle. All Rights Reserved.
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.3.0 - Production
With the Partitioning and Parallel Server options
|
The next bit is to get the broker configured so it can make and ODBC connection to the Oracle database (via the OCI fo the instantclient code)
Again make sure the .profile of the user you run broker v5 as has the LIBPATH and LD_LIBRARY_PATH entries.
Inside the /var/mqsi/odbc.odbc.ini I had these entries
Code: |
[ODBC Data Sources]
ORACLEWZEZDB=DataDirect 410 Oracle Driver
[ORACLEWZEZDB]
Driver=/usr/opt/mqsi/merant/lib/UKor818.so
Description=DataDirect 410 Oracle Driver
ServerName=//10.33.129.3:1521/learn1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
WorkArounds2=2
[ODBC]
Trace=0
TraceFile=/var/wmqi/odbc/odbctrace.out
TraceDll=/usr/opt/wmqi/merant/lib/odbctrac.so
InstallDir=/usr/opt/wmqi/merant
|
The instantclient code is able to "resolve" the qualified server name "//10.33.129.3:1521/learn1" in order to make a connection to the Oracle datbase over the network.
Finally you have to tell the broker what userid/password to use for this DSN entry
So (when the broker is stopped) you invoke
Code: |
mqsisetdbparms brokername -n DataSourceName -u DataSourceUserId -p DataSourcePassword
|
or in my case
Code: |
mqsisetdbparms TESTBRK01 -n ORACLEWZEZDB -u usrv500 -p passwordXXX
|
Now you have a DataSource ready for the broker to use. You must then use ORACLEWZEZDB as the data source name in the compute node containing the SQL you want to execute.
If you havent got the LIBPATH and LD_LIBRARY_PATH set properly you will get an error in the syslog something like:
Code: |
May 2 11:49:59 draco user:err|error MQSIv500[1069152]: (TESTBRK01.train)[5141]BIP2321E: Database error: ODBC return code '-1'. : TESTBRK01.9db23920-0a01-0000-0080-dbbae121a8bc: /build/S500_P/src/DataFlowEngine/ImbOdbc.cpp: 213: ImbOdbcHandle::checkRcInner: :
May 2 11:49:59 draco user:err|error MQSIv500[1069152]: (TESTBRK01.train)[5141]BIP2322E: Database error: SQL State 'IM003'; Native Error Code '80'; Error Text 'Specified driver could not be loaded'. : TESTBRK01.9db23920-0a01-0000-0080-dbbae121a8bc: /build/S500_P/src/DataFlowEngine/ImbOdbc.cpp: 366: ImbOdbcHandle::checkRcInner: :
|
If you havent got the Oracle "ServerName" right you will get something like:
Code: |
May 2 12:20:07 draco user:err|error MQSIv500[356528]: (TESTBRK01.train)[5141]BIP2321E: Database error: ODBC return code '-1'. : TESTBRK01.9db23920-0a01-0000-0080-dbbae121a8bc: /build/S500_P/src/DataFlowEngine/ImbOdbc.cpp: 213: ImbOdbcHandle::checkRcInner: :
May 2 12:20:07 draco user:err|error MQSIv500[356528]: (TESTBRK01.train)[5141]BIP2322E: Database error: SQL State 'HY000'; Native Error Code '12154'; Error Text '[DataDirect][ODBC Oracle driver][Oracle]ORA-12154: TNS:could not resolve the connect identifier specified '. : TESTBRK01.9db23920-0a01-0000-0080-dbbae121a8bc: /build/S500_P/src/DataFlowEngine/ImbOdbc.cpp: 366: ImbOdbcHandle::checkRcInner: :
|
Good luck. |
|
Back to top |
|
 |
Kateel |
Posted: Tue May 02, 2006 5:18 am Post subject: |
|
|
Novice
Joined: 01 May 2006 Posts: 17
|
I guess for AIX you only need to set LIBPATH and not LD_LIBRARY_PATH (which is applicable to Solaris and Linux only) |
|
Back to top |
|
 |
Ian |
Posted: Fri May 12, 2006 1:16 am Post subject: |
|
|
Disciple
Joined: 22 Nov 2002 Posts: 152 Location: London, UK
|
Note, you can choose one of the following installation types when installing an Oracle Client:
* Administrator
* Runtime
* Custom
* Instant Client
In light of this discussion (and because we have recently received a customer PMR which also covers this question) we will update the Message Broker support pages to clarify this point.
The combination of Message Broker and the DataDirect drivers has been tested and verified to work with the Oracle Runtime Client.
This does not extend to the Oracle Instant Client.
If customers have a specific need for this then they should submit a requirement to IBM.
It is worth noting that (as in this case) that some customers may configure Message Broker with the Oracle Instant Client which may *appear* to work. This does not infer that it will work in *ALL* situations. Further, and most importantly, this does not mean that IBM will support this configuration. Supported configurations have been tested as part of our lifecycle test process which covers supported platforms, database version and Message Broker functionality (and in the case of database functionality this would cover areas such as Coordinated Transactions).
This has been done for the Oracle Runtime Client but not the Oracle Instant Client and therefore from an IBM Message Broker perspective the latter is not supported. _________________ Regards, Ian |
|
Back to top |
|
 |
Sridar |
Posted: Thu Aug 21, 2008 9:34 pm Post subject: |
|
|
Acolyte
Joined: 14 May 2006 Posts: 72 Location: Chennai, India
|
HI Ian
Thanks a lot.
I was trying to connect using a InstantClient and could not reason out why my broker was failing to connect even if everything was correct.
However since the thread is a old thread and WMB 6+ is also out can you let me know if the instantclient non-compatability still holds. _________________ Thanks and Regards
Sridar |
|
Back to top |
|
 |
Sridar |
Posted: Thu Aug 21, 2008 9:37 pm Post subject: |
|
|
Acolyte
Joined: 14 May 2006 Posts: 72 Location: Chennai, India
|
HI Ian
Thanks a lot.
I was trying to connect using a InstantClient and could not reason out why my broker was failing to connect even if everything was correct.
However since the thread is a old thread and WMB 6+ is also out can you let me know if the instantclient non-compatability still holds. _________________ Thanks and Regards
Sridar |
|
Back to top |
|
 |
Ian |
Posted: Wed Aug 27, 2008 1:20 pm Post subject: |
|
|
Disciple
Joined: 22 Nov 2002 Posts: 152 Location: London, UK
|
Websphere Message Broker does not provide support for the Oracle Instant Client.
In summary, the combination of Message Broker and the DataDirect drivers has been tested and verified to work with the Oracle Runtime Client.
This does not extend to the Oracle Instant Client.
This applies WMB V5, V6 and V6.1
The WMB V6.1 the SOE states that "Oracle Database Server requires the Oracle Runtime Client if using 32-bit Execution Groups".
This distinction is because the 64 bit ODBC driver is a 'wire protocol' driver and does not need any Oracle client - it does the network hop to the server itself. _________________ Regards, Ian |
|
Back to top |
|
 |
Sridar |
Posted: Wed Aug 27, 2008 8:42 pm Post subject: |
|
|
Acolyte
Joined: 14 May 2006 Posts: 72 Location: Chennai, India
|
Thanks Ian,
The Reply is very useful for us now in planning our Deployment platform. _________________ Thanks and Regards
Sridar |
|
Back to top |
|
 |
|