[omniORB] using persistent reference with corbaloc
Wernke zur Borg
wzb at anitesystems.de
Mon Mar 21 16:54:11 GMT 2005
Sorry I mistyped the argument.
Refer to Chapter 4 in the manual.
Your command line should read:
./server -ORBendPoint giop:tcp::40001
Alternatively you can set an environment variable:
export ORBendPoint=giop:tcp::40001
I mixed the two up, it's a bit confusing.
Wernke
> -----Original Message-----
> From: Frederico Faria [mailto:fred_faria at yahoo.com.br]
> Sent: 21 March 2005 16:25
> To: Wernke zur Borg; omniorb-list at omniorb-support.com
> Subject: RE: [omniORB] using persistent reference with corbaloc
>
> Hi Borg,
>
> This option doesn´t work for me ( see below ). I also
> tried to use "-endPoint=giop:tcp::40001" but it also
> didn´t work. Below is the server code.
> Thank you,
>
> Frederico Faria
>
> ./server -ORBendPoint=giop:tcp::40001 -ORBtraceLevel
> 40
> omniORB: Configuration file "/etc/omniORB.cfg" either
> does not exist or is not a file. No settings read.
> omniORB: ORB_init failed: unknown option
> (-ORBendPoint=giop:tcp::40001) in -ORB arguments
> Caught CORBA::SystemException.
> omniORB: Final clean-up
> omniORB: Released 254 static TypeCodes.
> omniORB: Deleted 0 nil object references and 2 other
> tracked objects.
> omniORB: Final clean-up completed.
> -----------------------------------------------------
>
> My server code is:
>
> CORBA::Object_var obj =
> orb->resolve_initial_references("RootPOA");
> PortableServer::POA_var root_poa =
> PortableServer::POA::_narrow(obj);
> PortableServer::POAManager_var pman =
> root_poa->the_POAManager();
> pman->activate();
>
> // Create a new POA with the persistent lifespan
> policy.
> CORBA::PolicyList pl;
> pl.length(2);
> pl[0] =
> root_poa->create_lifespan_policy(PortableServer::PERSISTENT);
> pl[1] =
> root_poa->create_id_assignment_policy(PortableServer::USER_ID);
>
> PortableServer::POA_var poa =
> root_poa->create_POA("my poa", pman, pl);
>
> // Always use the same object id.
> PortableServer::ObjectId_var oid =
>
> PortableServer::string_to_ObjectId("AuthFactory");
>
> // Activate the echo object...
> TINC_AuthFactory_i* myauth = new
> TINC_AuthFactory_i();
> poa->activate_object_with_id(oid, myauth);
>
> obj = myauth->_this();
> CORBA::String_var
> sior(orb->object_to_string(obj));
> cerr << "'" << (char*)sior << "'" << endl;
>
> myauth->_remove_ref();
>
> orb->run();
>
>
>
>
>
> --- Wernke zur Borg <wzb at anitesystems.de> wrote:
> >
> > Try calling
> >
> > ./server -ORBendPoint=giop:tcp::40001
> >
> > instead of
> >
> > ./server -endPoint=giop:tcp:wood:40001
> >
> >
> > Furthermore, are you using the special omniINSPOA,
> > and are you activating
> > your object(s) with activate_object_with_id() ?
> >
> > Wernke
> >
> > > -----Original Message-----
> > > From: omniorb-list-bounces at omniorb-support.com
> > > [mailto:omniorb-list-bounces at omniorb-support.com]
> > On Behalf
> > > Of Frederico Faria
> > > Sent: 21 March 2005 14:46
> > > To: omniorb-list at omniorb-support.com
> > > Subject: [omniORB] using persistent reference with
> > corbaloc
> > >
> > > Hi all,
> > >
> > > I am using the omni example ( available in
> > product
> > > distribution ) for persistent object reference.
> > >
> > > But in my client code when I use the IOR dumped
> > from
> > > server everything works fine.
> > > But when I try to use the corbaloc syntax the
> > things
> > > dont´work. I would like to use the corbaloc syntax
> > > on client instead the IOR.
> > >
> > > My client piece of code with corbaloc:
> > >
> > > CORBA::String_var strIOR =
> > > ("corbaloc:iiop:wood:40001/AuthFactory");
> > > CORBA::Object_ptr obj =
> > > ob->string_to_object(strIOR);
> > >
> > >
> > > The server code ( copied from omni example
> > > directory ) uses the "AuthFactory" as object id.
> > > I start the server like:
> > > ./server -endPoint=giop:tcp:wood:40001
> > >
> > > Both server and client are running at same host.
> > > When I run the client I receive a CORBA exception.
> > > Below are the server and client trace.
> > > Could Somebody give any help to resolve the
> > problem.
> > >
> > > Thank you,
> > > Frederico Faria
> > >
> > >
> > > -------------------------------------------
> > > Server Trace
> > > omniORB: Initialising incoming endpoints.
> > > omniORB: Bind to address 0.0.0.0.
> > > omniORB: Starting serving incoming endpoints.
> > > omniORB: AsyncInvoker: thread id = 1 has started.
> > > Total threads = 1
> > > omniORB: giopRendezvouser task execute for
> > > giop:tcp:10.131.10.150:38191
> > > omniORB: Adding root/my poa<AuthFactory>
> > (activating)
> > > to object table.
> > > omniORB: State root/my poa<AuthFactory>
> > (activating)
> > > -> active
> > > omniORB: Creating ref to local: root/my
> > > poa<AuthFactory>
> > > target id : IDL:TINC/AuthFactory:1.0
> > > most derived id: IDL:TINC/AuthFactory:1.0
> > >
> > >
> > >
> > ----------------------------------------------------
> > > Client Trace
> > >
> > > omniORB: Creating ref to remote: key<AuthFactory>
> > > target id : IDL:omg.org/CORBA/Object:1.0
> > > most derived id:
> > > omniORB: AsyncInvoker: thread id = 1 has started.
> > > Total threads = 1
> > > omniORB: Scavenger task execute.
> > > omniORB: Client attempt to connect to
> > > giop:tcp:wood:40001
> > > omniORB: throw giopStream::CommFailure from
> > > giopStream.cc:1073(0,NO,TRANSIENT_ConnectFailed)
> > > omniORB: throw TRANSIENT from omniObjRef.cc:759
> > > (NO,TRANSIENT_ConnectFailed)
> > > Caught a CORBA::SystemException.
> > >
More information about the omniORB-list
mailing list