ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Oracle DB connectivity issue

Post new topic  Reply to topic
 Oracle DB connectivity issue « View previous topic :: View next topic » 
Author Message
sriram.e
PostPosted: Thu Dec 24, 2009 12:35 pm    Post subject: Oracle DB connectivity issue Reply with quote

Novice

Joined: 14 Nov 2006
Posts: 12

Hi All,

We are using WMB 6.1.0.3 on AIX box to connect to Oracle DB.There is no Oracle client nor tnsname is configured. All we did is update ODBC64.ini with new orcale configuration,ran mqsisetdbparm and recycled.

We created simple msg flow in 64bit EG just to check oracle connectivity and getting the following error,

MQInput --> Compute --> MQOutput



[IBM][ODBC Oracle Wire Protocol driver][Oracle]TNS-12505: TNS:listener could not resolve SID given in connect descriptor'



Here is the odbc config,


[ORACLEDB]
Driver=/usr/opt/wmqi/ODBC64/V5.3/lib/UKora23.so
Description=DataDirect 5.3 64bit Oracle Wire Protocol
HostName=abcav.sys.xxxxx.com
PortNumber=1600
SID=DEVXXX.ABC.COM
CatalogOptions=0
EnableStaticCursorsForLongData=0
ApplicationUsingThreads=1
EnableDescribeParam=1
OptimizePrepare=1
WorkArounds=536870912
ProcedureRetResults=1
ColumnSizeAsCharacter=1

Any help will be appreciated!
Back to top
View user's profile Send private message
sriram.e
PostPosted: Mon Dec 28, 2009 10:57 am    Post subject: Reply with quote

Novice

Joined: 14 Nov 2006
Posts: 12

Any suggestions!
Back to top
View user's profile Send private message
rekarm01
PostPosted: Mon Dec 28, 2009 3:33 pm    Post subject: Re: Oracle DB connectivity issue Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 1415

sriram.e wrote:
Any suggestions!

Is that a question?

Two minutes with Google turned up this: http://ora-12505.ora-code.com/
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Mon Feb 15, 2010 10:55 pm    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

Well, only if I had more information!
I am trying to connect to a remote Oracle DB which can be connected via sqlplus64 userid/password@<DB Alias> from MB machine.
Customer has given me the tnsnames.ora for this alias and I am trying to connect to the SERVICE_NAME provided in the tnsnames.ora file.
Getting the same error! Error is BIP2322E: Database error: SQL State '08001'; Native Error Code '-1'; Error Text '[IBM][ODBC Oracle Wire Protocol driver][Oracle]TNS-12505: TNS:listener could not resolve SID given in connect descriptor'
Oracle is not installed in the MB machine, but this is just a user database.
I have the correct odbc64.ini file with the information from the tnsnames.ora, I have also setup the ODBCINI varaible, the MQSI_LIBPATH64 variable.

Unfortunately for me and my client, troubleshooting from the Oracle side is a tough job since it is handled by a separate team. But does this error mean for sure that it is because of an issue with the Oracle TNS Listener? I would rather be 100% sure before putting the ball on Oracle team's side.

Broker version is 6.1.0.2, running on Red Hat Linux 64
Oracle is also on 64 bit. I was not able to run lsnrctl as I could not find this script in my machine.

Also wanted to check whether we need to set the ORACLE_HOME variable in this case if Oracle being accessed is just a user database. I could not find for sure from the documentation when exactly this variable needs to be implemented.

Any pointers appreciated.
Thanks,
UpcomingGeek
Back to top
View user's profile Send private message
smdavies99
PostPosted: Tue Feb 16, 2010 12:22 am    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

It used to be the case that you had to install the ORacle Client software on the machine running Broker if you were using a remote oracle DB.

Has this been done?
_________________
WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995

Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Tue Feb 16, 2010 6:32 am    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

I am rechecking the Oracle client installation location with my client now. But yes, it is installed. There is already a PERL program running in the same machine that access this database by using Oracle DB Alias, Userid, Pwd. I can connect to the Oracle DB from this box by using sqlplus64. I can also see the folder /usr/lib/oracle/10.2.0.4/client64 which has a bin and lib directory although I cannot find the oraenv file under bin. (http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r0m0/index.jsp?topic=/com.ibm.etools.mft.doc/ah14500_.htm)
And I have set Oracle Home to point to this location as well and added Ora Home /lib and bin to LD_LIBRARY_PATH
Thanks,
Emil
Back to top
View user's profile Send private message
mqjeff
PostPosted: Tue Feb 16, 2010 6:58 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Recheck that the Oracle home information is configured in the environment broker runs under.... i.e. that it is set as part of the .profile or through an extension script run through mqsiprofile.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Tue Feb 16, 2010 8:31 am    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

Yes, the ORACLE_HOME is getting loaded and all the other variables like LD_LIBRARY PATH and LIBPATH64 are having oracle home/bin and lib in it.
I found out from my client that their SID was different from the one I was trying earlier, but even the one that he finally gave me(which he got from Oracle DBA) is giving me the same error.
On top of all, the client doesnt even seem to have an IBM Contract number to open a PMR!!
Is it necessary to load $ORACLE_HOME/bin/oraenv in the beginning? I cannot even find this file under this location
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Feb 16, 2010 9:03 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

upcominggeek wrote:
On top of all, the client doesnt even seem to have an IBM Contract number to open a PMR!!


The client should contact the IBM sales area from which they obtained their license to get this detail.

The client did of course contact IBM sales to obtain a license I'm sure...
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Tue Feb 16, 2010 11:09 am    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

So I was finally able to get the IBM customer id. Have opened a PMR regarding the same.
Just wondering (fully aware that I am asking an Oracle question here), is it possible for a remote machine to identify the Oracle server by Service Name, ip and port; but not by SID, ip and port? Possibly due to SID not being exposed to outside world? Oracle client on MB server do not even have tnsping, so I am kind of crippled to test out if this SID is indeed available on this machine.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Wed Feb 17, 2010 9:41 pm    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

Finally, found a workaround. I tried to provide ServiceName parameter in the odbc64.ini instead of SID as suggested. And it worked!! ServiceName is listed as a parameter for OracleRACDB, but not for Oracle. But seems like both works for Oracle.

Now, that is the good news. The bad news is that I am not able to get my Stored Proc to work. For some reason, MB wants to always put 3 qualifiers to the Stored Proc. <Schema>.<Pkg>.<Proc> while my procedure is a standalong procedure. I keep getting the error
BIP2920E: When attempting to obtain a procedure definition, the database reported that the procedure 'a.b.c' does not exist, or cannot be accessed.
I tried declaring the procedure as "schema.stored proc" and broker put DSN in front.
I tried declaring the procedure as "stored proc" alone and in the call statement adding the IN Database.schema and then the broker put the Userid/DSN (both have been given as same in my case although I was getting similar errors when I gave them differently) as the package name.
I tried declaring the procedure as "%.stored proc" and in the call statement adding the EXTERNAL SCHEMA 'schema'. Again, MB added DSN to the front.
Am I missing something here? Am I being misled by the error?
I can execute the stored proc directly from oracle client using the same id/password. So I believe this shouldn't be an access issue.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Thu Feb 18, 2010 5:56 am    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

As mentioned in another post, am wondering if the issue is because of underscores in the procedure name!
I checked the ODBC trace and it has the underscores escaped though.
Back to top
View user's profile Send private message
upcominggeek
PostPosted: Thu Feb 18, 2010 6:07 am    Post subject: Reply with quote

Apprentice

Joined: 21 Aug 2006
Posts: 35
Location: Boston, US

Hmm,
From ODBC trace, it seems like MB is making the correct col without any package name. But after preparing the call and when it finally executes it, it is failing with the reason given below (from odbc trace). Seems like MB is not able to find the procedure!!

ppid=29295:pid= 72b3:4088a940 EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x0c112b10
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLINTEGER 0
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Feb 18, 2010 9:33 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

upcominggeek wrote:
Hmm,
From ODBC trace, it seems like MB is making the correct col without any package name. But after preparing the call and when it finally executes it, it is failing with the reason given below (from odbc trace). Seems like MB is not able to find the procedure!!

ppid=29295:pid= 72b3:4088a940 EXIT SQLFetchScroll with return code 100 (SQL_NO_DATA_FOUND)
SQLHSTMT 0x0c112b10
SQLSMALLINT 1 <SQL_FETCH_NEXT>
SQLINTEGER 0


From SQL code 100 it looks more that what ever the procedure was doing was supposed to return something. However the data was not found.
How does your procedure handle this scenario?

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Oracle DB connectivity issue
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.