[omniORB] Which exceptions can be thrown by a call to _narrow () and when?

Sai-Lai Lo S.Lo@uk.research.att.com
25 Jan 2001 19:16:09 +0000


Your code just illustrates my point. The ORB does not have to contact the
object in string_to_object. It has to in _narrow because there is no type
information supplied in corbaloc.

>>>>> Ilinykh, Andre writes:

> We don't use NameService, I create object Factory using IP and port.
> Every time server is down I get COMM_FAILURE exception.
> This is my code.

> bool InitFactory()
> {

> 	char tmp[256];
> 	sprintf(tmp,"corbaloc:iiop:%s:2000/KeyOfMyServer",ssIP);
> 	CORBA::Object_var obj = orb->string_to_object(tmp);
> 	try {	
> 		fref= SS::SubscriptionFactory::_narrow(obj);
> 	} catch(...){
> 		return false;
> 	}
> 	if( CORBA::is_nil(fref) ) {
> 		//cerr << "Can't narrow reference to type SF (or it was
> nil)." << endl;
> 		return false;
> 	}
> 	return true;
> }

> -----Original Message-----
> From: Sai-Lai Lo [mailto:S.Lo@uk.research.att.com]
> Sent: Thursday, January 25, 2001 10:11 AM
> To: omniorb-list@uk.research.att.com
> Subject: Re: [omniORB] Which exceptions can be thrown by a call to
> _narrow () and when?


> _narrow() may or may not have to contact the real object to determine
> whether the operation should succeed. The chapter on type checking in the
> omniORB user guide explains this in some detail. Since a remote invocation
> may be called as part of a _narrow, the full range of system exception may
> be reported.

> By the way, omniORB never needs to contact the server to do
> string_to_object. If you have some code that shows the contrary, please
> send it to me.

> Sai-Lai


>>>>> Ilinykh, Andre writes:

>> There are others, for example COMM_FAILURE. _narrow() can check the type
> of
>> real object. I'm not sure when it does this way. At least, every time I
>> create object reference by string_to_object("corbaloc:iiop:/...") it goes
> to
>> my server.
>> Thanks,
>> Andrey

>> -----Original Message-----
>> From: ERIKSSON,TOBIAS (A-Sweden,ex1)
>> [mailto:tobias_eriksson@agilent.com]
>> Sent: Thursday, January 25, 2001 2:19 AM
>> To: omniorb-list@uk.research.att.com
>> Subject: [omniORB] Which exceptions can be thrown by a call to _narrow()
>> and when?


>> Hi
>> I'm trying to use narrow to tell me if the type of the object beeing
>> narrowed actually is of the type I want, 
>> I think that it will throw BAD_PARAM if they are not the same, is this
>> correct and are there any others?

>> Regards
>> Tobias




> -- 
> Sai-Lai Lo                                   S.Lo@uk.research.att.com
> AT&T Laboratories Cambridge           WWW:   http://www.uk.research.att.com 
> 24a Trumpington Street                Tel:   +44 1223 343000
> Cambridge CB2 1QA                     Fax:   +44 1223 313542
> ENGLAND




-- 
Sai-Lai Lo                                   S.Lo@uk.research.att.com
AT&T Laboratories Cambridge           WWW:   http://www.uk.research.att.com 
24a Trumpington Street                Tel:   +44 1223 343000
Cambridge CB2 1QA                     Fax:   +44 1223 313542
ENGLAND