<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Failover for 9i RAC</title>
	<atom:link href="http://fredericktang.wordpress.com/2008/05/30/failover-for-9i-rac/feed/" rel="self" type="application/rss+xml" />
	<link>http://fredericktang.wordpress.com/2008/05/30/failover-for-9i-rac/</link>
	<description>Stories about Oracle concepts I have learnt from work, and the occasional brain-dump...</description>
	<lastBuildDate>Tue, 27 Oct 2009 02:31:01 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: fredericktang</title>
		<link>http://fredericktang.wordpress.com/2008/05/30/failover-for-9i-rac/#comment-441</link>
		<dc:creator>fredericktang</dc:creator>
		<pubDate>Wed, 11 Mar 2009 06:03:38 +0000</pubDate>
		<guid isPermaLink="false">http://fredericktang.wordpress.com/2008/05/30/failover-for-rac/#comment-441</guid>
		<description>Hi Dilli,

I appreciate your question, but I would like to not engage in troubleshooting on this blog, which is more for forums.

Nevertheless, thinking this through aloud...

1. The tnsnames configuration suggests you have a 10g RAC as opposed to 9i RAC (because you are using VIPs).

2. I think your question is why hasn&#039;t client-side connect time failover worked when there is an instance failure (on node_a).

3. Your configuration has &quot;failover=true&quot;, which means client-side connect-time failover is enabled. Connect-time failover by definition, enables clients to connect to another listener if the initial connection to the first listener fails. The number of listener protocol addresses determines how many listeners are tried. Without connect-time failover, Oracle Net attempts a connection with only one listener. (http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/concepts.htm#sthref170)

* Note: it&#039;s to do with connection to the listener, not to the database or instance.

4. Your configuration has &quot;load_balance=no&quot;, which means client-side load balancing is disabled. This means addresses on the list will be accessed sequentially, i.e. always connect node_a-vip first. Note, if load_balance=yes, I think addresses on the list will be used in a random fashion?

5. My understanding is that if there was an instance failure (e.g. instance on node_a), the listener (e.g. listener on node_a) should still be alive. This can be simulated by shutting down the node_a instance. Therefore, in this scenario, the node_a listener should actually have responded, and redirect your client to either node_b or node_c listener (depending on server-side load balancing). This is better explained here http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#sthref1267 and more importantly http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#i480740.

6. If my assumptions above is true, then there might be some RAC configuration issues or you may have to clarify how you were not able to connect to node_b or node_c when there was an instance failure on node_a. Perhaps there might be an ORA- error message, or timeout or some other evidence that might provide us with some clues?

7. To test connect-time failover, try having all instances up, and shutdown node_a listener, while keeping node_b and node_c listeners up. I think you will find the node_b listener will respond to the connection request (given node_b-vip listener is the next on the address list, and load_balance=off).

8. If the above test works, and you are still wondering why your original scenario didn&#039;t work, then I would suggest taking a look at your RAC configurations. For example: http://forums.oracle.com/forums/thread.jspa?messageID=2740669&amp;#2740669 and http://fredericktang.wordpress.com/2008/04/11/ora-12535-tnsoperation-timed-out/.

It would be important to cross-check with documentation, as I am not the subject-matter expert.
I hope I got all the facts right, if anyone spot an error, feel free to contribute...

Hope this helps...
Fred</description>
		<content:encoded><![CDATA[<p>Hi Dilli,</p>
<p>I appreciate your question, but I would like to not engage in troubleshooting on this blog, which is more for forums.</p>
<p>Nevertheless, thinking this through aloud&#8230;</p>
<p>1. The tnsnames configuration suggests you have a 10g RAC as opposed to 9i RAC (because you are using VIPs).</p>
<p>2. I think your question is why hasn&#8217;t client-side connect time failover worked when there is an instance failure (on node_a).</p>
<p>3. Your configuration has &#8220;failover=true&#8221;, which means client-side connect-time failover is enabled. Connect-time failover by definition, enables clients to connect to another listener if the initial connection to the first listener fails. The number of listener protocol addresses determines how many listeners are tried. Without connect-time failover, Oracle Net attempts a connection with only one listener. (<a href="http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/concepts.htm#sthref170" rel="nofollow">http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/concepts.htm#sthref170</a>)</p>
<p>* Note: it&#8217;s to do with connection to the listener, not to the database or instance.</p>
<p>4. Your configuration has &#8220;load_balance=no&#8221;, which means client-side load balancing is disabled. This means addresses on the list will be accessed sequentially, i.e. always connect node_a-vip first. Note, if load_balance=yes, I think addresses on the list will be used in a random fashion?</p>
<p>5. My understanding is that if there was an instance failure (e.g. instance on node_a), the listener (e.g. listener on node_a) should still be alive. This can be simulated by shutting down the node_a instance. Therefore, in this scenario, the node_a listener should actually have responded, and redirect your client to either node_b or node_c listener (depending on server-side load balancing). This is better explained here <a href="http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#sthref1267" rel="nofollow">http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#sthref1267</a> and more importantly <a href="http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#i480740" rel="nofollow">http://download.oracle.com/docs/cd/B19306_01/network.102/b14212/advcfg.htm#i480740</a>.</p>
<p>6. If my assumptions above is true, then there might be some RAC configuration issues or you may have to clarify how you were not able to connect to node_b or node_c when there was an instance failure on node_a. Perhaps there might be an ORA- error message, or timeout or some other evidence that might provide us with some clues?</p>
<p>7. To test connect-time failover, try having all instances up, and shutdown node_a listener, while keeping node_b and node_c listeners up. I think you will find the node_b listener will respond to the connection request (given node_b-vip listener is the next on the address list, and load_balance=off).</p>
<p>8. If the above test works, and you are still wondering why your original scenario didn&#8217;t work, then I would suggest taking a look at your RAC configurations. For example: <a href="http://forums.oracle.com/forums/thread.jspa?messageID=2740669&amp;#2740669" rel="nofollow">http://forums.oracle.com/forums/thread.jspa?messageID=2740669&amp;#2740669</a> and <a href="http://fredericktang.wordpress.com/2008/04/11/ora-12535-tnsoperation-timed-out/" rel="nofollow">http://fredericktang.wordpress.com/2008/04/11/ora-12535-tnsoperation-timed-out/</a>.</p>
<p>It would be important to cross-check with documentation, as I am not the subject-matter expert.<br />
I hope I got all the facts right, if anyone spot an error, feel free to contribute&#8230;</p>
<p>Hope this helps&#8230;<br />
Fred</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dilli R. Maharjan</title>
		<link>http://fredericktang.wordpress.com/2008/05/30/failover-for-9i-rac/#comment-440</link>
		<dc:creator>Dilli R. Maharjan</dc:creator>
		<pubDate>Tue, 10 Mar 2009 15:05:57 +0000</pubDate>
		<guid isPermaLink="false">http://fredericktang.wordpress.com/2008/05/30/failover-for-rac/#comment-440</guid>
		<description>Hi, I am having problem on connect-time failover configuration. Actually I have three nodes as node_a, node_b, node_c. I need to configure as:
 If instance fails on node_a, then new coming client must be redirect to node_b. Mean time if node_b also fails then the new connection need to be redirected to node_c.  

Following is my client&#039;s tnsnames.ora
RACDB =
  (DESCRIPTION =
     (FAILOVER = true)
     (LOAD_BALANCE = no)
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_a-vip)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_b-vip)(PORT = 1521))
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_c-vip)(PORT = 1521))
     (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SERVICE_NAME = racdb)
        (FAILOVER_MODE =
                (TYPE = SELECT)
                (METHOD = BASIC)
                (RETRIES = 30)
                (DELAY = 5)
        )
     )
  )

I am not able to connect to node_b in case of failure of instance on node_a.</description>
		<content:encoded><![CDATA[<p>Hi, I am having problem on connect-time failover configuration. Actually I have three nodes as node_a, node_b, node_c. I need to configure as:<br />
 If instance fails on node_a, then new coming client must be redirect to node_b. Mean time if node_b also fails then the new connection need to be redirected to node_c.  </p>
<p>Following is my client&#8217;s tnsnames.ora<br />
RACDB =<br />
  (DESCRIPTION =<br />
     (FAILOVER = true)<br />
     (LOAD_BALANCE = no)<br />
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_a-vip)(PORT = 1521))<br />
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_b-vip)(PORT = 1521))<br />
     (ADDRESS = (PROTOCOL = TCP)(HOST = node_c-vip)(PORT = 1521))<br />
     (CONNECT_DATA =<br />
        (SERVER = DEDICATED)<br />
        (SERVICE_NAME = racdb)<br />
        (FAILOVER_MODE =<br />
                (TYPE = SELECT)<br />
                (METHOD = BASIC)<br />
                (RETRIES = 30)<br />
                (DELAY = 5)<br />
        )<br />
     )<br />
  )</p>
<p>I am not able to connect to node_b in case of failure of instance on node_a.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Naveenkanth</title>
		<link>http://fredericktang.wordpress.com/2008/05/30/failover-for-9i-rac/#comment-420</link>
		<dc:creator>Naveenkanth</dc:creator>
		<pubDate>Mon, 03 Nov 2008 13:22:16 +0000</pubDate>
		<guid isPermaLink="false">http://fredericktang.wordpress.com/2008/05/30/failover-for-rac/#comment-420</guid>
		<description>Thanks Frederick, 

I was actually looking for information on whether TAF is supported on jdbc thin driver. Now I have my answers. 

-Naveenkanth</description>
		<content:encoded><![CDATA[<p>Thanks Frederick, </p>
<p>I was actually looking for information on whether TAF is supported on jdbc thin driver. Now I have my answers. </p>
<p>-Naveenkanth</p>
]]></content:encoded>
	</item>
</channel>
</rss>
