<br><font size=2 face="sans-serif">I noticed a problem during some of our testing with server / host failure etc.</font>
<br>
<br><font size=2 face="sans-serif">Please help out if possible...</font>
<br>
<br><font size=2 face="sans-serif">Thank you</font>
<br>
<br><font size=2 face="sans-serif">Renny</font>
<br><font size=2 face="sans-serif">===========================================================</font>
<br>
<br><font size=2 face="sans-serif">We have a piece of code that looks as follows:</font>
<br>
<br><font size=2 face="sans-serif">~~~~~~~~~~~~~~~~~~~~~~~`</font>
<br><font size=2 face="sans-serif"> CORBA::Object_var obj = ORB->string_to_object(objName);</font>
<br>
<br><font size=2 face="sans-serif"> if (CORBA::is_nil(obj))</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> Logger->debug("Can't narrow reference to type (or it was nil).");</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> else</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> omniORB::setClientCallTimeout(obj.in(), 2000);</font>
<br><font size=2 face="sans-serif"> }</font>
<br>
<br><font size=2 face="sans-serif"> while (Retries--)</font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> try </font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> Mgr = TRADE::CallRecord::Manager::_narrow(obj);</font>
<br><font size=2 face="sans-serif"> omniORB::setClientCallTimeout(Mgr, CDRManagerTimeout);</font>
<br><font size=2 face="sans-serif"> break;</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> catch(CORBA::TRANSIENT & ex) </font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> catch(CORBA::COMM_FAILURE& ex) </font>
<br><font size=2 face="sans-serif"> {</font>
<br><font size=2 face="sans-serif"> }</font>
<br><font size=2 face="sans-serif"> ....</font>
<br><font size=2 face="sans-serif"> }</font>
<br>
<br><font size=2 face="sans-serif">~~~~~~~~~~~~~~~~~~~~~~~`</font>
<br>
<br><font size=2 face="sans-serif">When we use alternate URI's.... and switch off the PRIMARY (10.100.0.20) server, a client running on the secondary server keeps doing the following, instead for connecting to the process on the secondary server (10.100.0.11). Is this a bug? </font>
<br>
<br><font size=2 face="sans-serif">When the PRIMARY server is running, but the primary process is dead, it IMMEDIATELY switches to the secondary process, and works okay. Any help on this?</font>
<br>
<br><font size=2 face="sans-serif">2005-01-13 17:36:52,959 DEBUG main CallRec [001:02] - Attempting to connect to 'corbaloc::1.2@10.100.0.20:8200,:1.2@10.</font>
<br><font size=2 face="sans-serif">100.0.11:8200/CDRManager'</font>
<br>
<br><font size=2 face="sans-serif">omniORB: Creating ref to remote: key<0x4344524d616e61676572></font>
<br><font size=2 face="sans-serif"> target id : IDL:omg.org/CORBA/Object:1.0</font>
<br><font size=2 face="sans-serif"> most derived id:</font>
<br><font size=2 face="sans-serif">omniORB: Client attempt to connect to giop:tcp:10.100.0.20:8200</font>
<br><font size=2 face="sans-serif">omniORB: Scan for idle connections (1105655814,178979807)</font>
<br><font size=2 face="sans-serif">omniORB: Scavenger reduce idle count for strand c85fa8 to 20</font>
<br><font size=2 face="sans-serif">omniORB: Scavenger reduce idle count for strand ca1280 to 19</font>
<br><font size=2 face="sans-serif">omniORB: Scan for idle connections done (1105655814,178979807).</font>
<br><font size=2 face="sans-serif">omniORB: throw giopStream::CommFailure from giopStream.cc:1070(1,NO,TRANSIENT_ConnectFailed)</font>
<br><font size=2 face="sans-serif">omniORB: Client attempt to connect to giop:tcp:10.100.0.11:8200</font>
<br><font size=2 face="sans-serif">omniORB: throw giopStream::CommFailure from giopStream.cc:1070(0,NO,TRANSIENT_ConnectFailed)</font>
<br><font size=2 face="sans-serif">omniORB: throw TRANSIENT from omniObjRef.cc:759 (NO,TRANSIENT_ConnectFailed)</font>
<br>
<br><font size=2 face="sans-serif">2005-01-13 17:36:54,973 DEBUG main CallRec [001:02] - Primary Channel - Caught system exception TRANSIENT -- unable to</font>
<br><font size=2 face="sans-serif">contact the object (ConnectToCDRManager).</font>
<br>
<br><font size=2 face="sans-serif">omniORB: Client attempt to connect to giop:tcp:10.100.0.20:8200</font>
<br><font size=2 face="sans-serif">omniORB: throw giopStream::CommFailure from giopStream.cc:1070(1,NO,TRANSIENT_ConnectFailed)</font>
<br><font size=2 face="sans-serif">omniORB: Client attempt to connect to giop:tcp:10.100.0.11:8200</font>
<br><font size=2 face="sans-serif">omniORB: throw giopStream::CommFailure from giopStream.cc:1070(0,NO,TRANSIENT_ConnectFailed)</font>
<br><font size=2 face="sans-serif">omniORB: throw TRANSIENT from omniObjRef.cc:759 (NO,TRANSIENT_ConnectFailed)</font>
<br>
<br><font size=2 face="sans-serif">2005-01-13 17:36:56,980 DEBUG main CallRec [001:02] - Primary Channel - Caught system exception TRANSIENT -- unable to</font>
<br><font size=2 face="sans-serif">contact the object (ConnectToCDRManager).</font>
<br>
<br><font size=2 face="sans-serif">****************** WORKAROUND ********************</font>
<br>
<br><font size=2 face="sans-serif">The work around that I've used is to put a "transient counter" and if I get 2 transients, then I switch the order of the servers in the URI, and then it works... as shown below:</font>
<br>
<br><font size=2 face="sans-serif">2005-01-13 17:36:56,981 ERROR main CallRec [001:02] - Too many TRANSIENT errors when attempting to connect to CDR Manager -- swapping</font>
<br>
<br><font size=2 face="sans-serif">omniORB: Creating ref to remote: key<0x4344524d616e61676572></font>
<br><font size=2 face="sans-serif"> target id : IDL:omg.org/CORBA/Object:1.0</font>
<br><font size=2 face="sans-serif"> most derived id:</font>
<br><font size=2 face="sans-serif">omniORB: omniRemoteIdentity deleted.</font>
<br><font size=2 face="sans-serif">omniORB: ObjRef() -- deleted.</font>
<br><font size=2 face="sans-serif">omniORB: Client attempt to connect to giop:tcp:10.100.0.11:8200</font>
<br><font size=2 face="sans-serif">omniORB: Client opened connection to giop:tcp:10.100.0.11:8200</font>
<br><font size=2 face="sans-serif">omniORB: sendChunk: to giop:tcp:10.100.0.11:8200 93 bytes</font>
<br><font size=2 face="sans-serif">omniORB:</font>
<br><font size=2 face="sans-serif">4749 4f50 0102 0000 0000 0051 0000 0002 GIOP.......Q....</font>
<br><font size=2 face="sans-serif">0300 0000 0000 b598 0000 000a 4344 524d ............CDRM</font>
<br><font size=2 face="sans-serif">616e 6167 6572 228c 0000 0006 5f69 735f anager"....._is_</font>
<br><font size=2 face="sans-serif">6100 b598 0000 0000 0000 0021 4944 4c3a a..........!IDL:</font>
<br><font size=2 face="sans-serif">5452 4144 452f 4361 6c6c 5265 636f 7264 TRADE/CallRecord</font>
<br><font size=2 face="sans-serif">2f4d 616e 6167 6572 3a31 2e30 00 /Manager:1.0.</font>
<br><font size=2 face="sans-serif">omniORB: inputMessage: from giop:tcp:10.100.0.11:8200 25 bytes</font>
<br><font size=2 face="sans-serif">omniORB:</font>
<br><font size=2 face="sans-serif">4749 4f50 0102 0001 0000 000d 0000 0002 GIOP............</font>
<br><font size=2 face="sans-serif">0000 0000 0000 0000 01 .........</font>
<br><font size=2 face="sans-serif">omniORB: Creating ref to remote: key<0x4344524d616e61676572></font>
<br><font size=2 face="sans-serif"> target id : IDL:TRADE/CallRecord/Manager:1.0</font>
<br><font size=2 face="sans-serif"> most derived id:</font>
<br><font size=2 face="sans-serif">omniORB: ObjRef() -- deleted.</font>
<br>