[jacorb-developer] JACORB CORBA call did not timeout when made on TAO server that was just initializing

Alka Nand alka.nand at gmail.com
Wed Apr 9 03:12:33 CEST 2014


Nick,

Thanks for the reply. I will try but the problem is that it does not happen
easily. This was the first time we had this problem. Do you think this
issue has been fixed in the newer version?

Thanks
alka


On Tue, Apr 8, 2014 at 5:35 PM, Nick Cross <jacorb at goots.org> wrote:

>
> Can you reproduce the problem with the current version and submit a test
> case please?
>
> Thanks
>
> Nick
>
>
> On 08/04/14 16:03, Alka Nand wrote:
>
>> I am running JACORB 3.0 and my jacorb client pings the TAO server every
>> 4 minutes. This particular "narrow" may have coincided with a restart of
>> the TAO server in which it may not have properly initialized. The TAO
>> server finished initializing and seemed to be in a good state but the
>> call did not timeout. The thread was stuck on that call. I then reset
>> the TAO server and that caused the call to finally bail out with a
>>   COMM_FAILURE. I am also copying the code I have for setting up the
>> timeout. I have the timeout set for 1 minute.
>>
>> Any help is very much appreciate
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err: 2014-04-07
>> 16:55:32.577 SEVERE Failed to write GIOP message due to COMM_FAILURE, in
>> ClientGIOPConnection to 172.28.xx.xx:1632 (19181ae)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.etf.ConnectionBase.to_COMM_FAILURE(ConnectionBase.java:
>> 152)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.iiop.IIOPConnection.handleCommFailure(
>> IIOPConnection.java:79)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.etf.StreamConnectionBase.flush(
>> StreamConnectionBase.java:228)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.giop.GIOPConnection.sendMessage(GIOPConnection.java:1062)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.giop.GIOPConnection.sendRequest(GIOPConnection.java:988)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.giop.ClientConnection.sendRequest(
>> ClientConnection.java:309)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.giop.ClientConnection.sendRequest(
>> ClientConnection.java:290)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.Delegate._invoke_internal(Delegate.java:1327)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.Delegate.invoke_internal(Delegate.java:1152)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.Delegate.invoke(Delegate.java:1140)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.Delegate.invokeBuiltin(Delegate.java:2031)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.jacorb.orb.Delegate.is_a(Delegate.java:1894)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:130)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> com.tellabs.ems.sb_if.emsne.SessionMgr.NESessionFactory_
>> IHelper.narrow(NESessionFact
>>
>> ory_IHelper.java:59)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> com.tellabs.ems.idlneadapter.EMSSession.establishSession(
>> EMSSession.java:840)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> com.tellabs.ems.idlneadapter.IPTVNEMonitorThread.monitorNE(
>> IPTVNEMonitorThread.java:
>>
>> 298)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> com.tellabs.ems.idlneadapter.IPTVNEMonitorThread.run(
>> IPTVNEMonitorThread.java:134)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err:
>> java.lang.Thread.run(Thread.java:724)
>>
>> Thread-72;Mon Apr 07 16:55:32 CDT 2014;System.err: 2014-04-07
>> 16:55:32.596 SEVERE Underlying transport connection closed due to errors
>> during sendMessage(), in ClientGIOPConnection to 172.28.xx.xx:1632
>> (19181ae)
>>
>>
>>
>> Code to set Timeout
>>
>>
>>                          long relativeExpiry = 60L * 10000000L; //60
>> seconds, 1 min
>>
>>          //objref =
>> _myORB.string_to_object("corbaloc:ssliop:1.2 at 172.28.xx.
>> xx:1632/NESessionFactory");
>>
>> tempObjref = _myORB.string_to_object("corbaloc:ssliop:1.2@" +_ipAdd+":"
>> +  _port + "/NESessionFactory");
>>
>>                 //Set RelativeRoundtripTimeoutPolicy
>>
>>                 objref = setTimeoutPolicy(tempObjref, relativeExpiry);
>>
>>                 neSessionFactory = NESessionFactory_IHelper.
>> narrow(objref);
>>
>>
>>
>>
>>      private org.omg.CORBA.Object setTimeoutPolicy(org.omg.CORBA.Object
>> objref, long relativeExpiry)
>>
>>      {
>>
>>          //Set RelativeRoundtripTimeoutPolicy
>>
>>          //This policy specifies how much time is allowed to deliver a
>> request and its reply.
>>
>>          //This value is set in 100 nanosecond units. It does not have a
>> default value.
>>
>>          //If it is not set, a request has unlimited time to complete.
>>
>> //1 millisec =(10000 units) since 1 unit is 100 ns
>>
>> //1 sec =  1000 * 10000 = 1000 millisec
>>
>> //Policy p = new
>> org.jacorb.orb.policies.RelativeRoundtripTimeoutPolicy(1000 * 10000);
>>
>>          JDiagnostic.log("setTimeoutPolicy:: Timeout = " +
>> relativeExpiry);
>>
>>          org.omg.CORBA.Object newObjref = null;
>>
>>          try
>>
>>          {
>>
>>            Any relativeRoundtripTimeoutValue = _myORB.create_any();
>>
>>            TimeTHelper.insert(relativeRoundtripTimeoutValue,
>> relativeExpiry);
>>
>>            Policy[] policies = new Policy[1];
>>
>>            policies[0] =
>> _myORB.create_policy(RELATIVE_RT_TIMEOUT_POLICY_TYPE.value,
>> relativeRoundtripTimeoutValue);
>>
>>            newObjref = objref._set_policy_override(policies,
>> SetOverrideType.ADD_OVERRIDE);
>>
>>          }
>>
>>          catch(UserException ex)
>>
>>          {
>>
>>            //Catch InvalidPolicies, SystemException and PolicyError
>>
>>            traceException("run() FAIL\t setting
>> RELATIVE_RT_TIMEOUT_POLICY_TYPE policy override on neSession Object: " +
>> ex);
>>
>>            ex.printStackTrace();
>>
>>            //Cannot throw an Exception so just Continue....
>>
>>          }
>>
>>          catch(Exception ex)
>>
>>          {
>>
>>            //Catch InvalidPolicies, SystemException and PolicyError
>>
>>            traceException("run()General Exception FAIL\t setting
>> RELATIVE_RT_TIMEOUT_POLICY_TYPE policy override on neSession Object:" +
>> ex);
>>
>>            ex.printStackTrace();
>>
>>            //Cannot throw an Exception so just Continue....
>>
>>          }
>>
>>          return newObjref;
>>
>>      }
>>
>>
>> Thanks
>>
>> alka nand
>>
>> Staff Engineer
>>
>> Tellabs
>>
>>
>> --
>>
>
>


-- 

alka


More information about the jacorb-developer mailing list