TNS Refuse error after Redirect using RAC
383113Feb 3 2010 — edited Feb 10 2010First off, I'm using the JDBC driver 10.2.0.4.0 with the "10g data store helper" selected in WebSphere against a 10g database configured for RAC.
I don't have the configuration details for the database, but can get them if needed.
WebSphere JDBC string:
jdbc:oracle:thin:@(DESCRIPTION =(ENABLE=BROKEN)(ADDRESS = (PROTOCOL = TCP)(HOST = <FQDN-VIP1>)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = <FQDN-VIP2>)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = <FQDN-VIP3>)(PORT = 1521))(LOAD_BALANCE = YES)(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = <SN>)))
Here are the TNS sequence of events for the connection failure:
1) WebSphere makes a TNS Connect request to <FQDN-VIP3> using the data string:
"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<FQDN-VIP3>)(PORT=1521))(CONNECT_DATA=(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))(SERVER=DEDICATED)(SERVICE_NAME=<SN>)))"
[I can only guess that the driver comes up with this based on the WebSphere string]
2) <FQDN-VIP3> responds with a TNS Redirect:
"(ADDRESS=(PROTOCOL=TCP)(HOST=<HOSTNAME-VIP1>)(PORT=1521))"
[FYI - the redirects respond with a hostname instead of FQDN, but the hostnames are resolvable by our WebSphere server]
3) WebSphere makes a TNS Connect request to <FQDN-VIP1> using the data string provided in the redirect:
"(ADDRESS=(PROTOCOL=TCP)(HOST=<HOSTNAME-VIP1>)(PORT=1521))"
4) <FQDN-VIP1> Refuses the connection with the following error string:
"(DESCRIPTION=(ERR=1153)(VSNNUM=169870336)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(ADDRESS=(PROTOCOL=TCP)(HOST=<HOSTNAME-VIP1>)(PORT=1521))'))(ERROR=(CODE=305)(EMFI=1))))"
This happens every time we receive a redirect back from the database.
If the JDBC driver is going to use the Redirect connection string verbatim then it seems like the Redirect string should also contain a SID or SERVICE_NAME specification. Or, is the driver supposed to perform this function (rewrite the redirect), but isn't?
Any help in determining what is causing this issue is greatly appreciated.
Thanks.