[omniORB] Removing special characters in corbaloc references

Duncan Grisby duncan at grisby.org
Tue May 5 16:35:40 BST 2015


On Fri, 2015-05-01 at 09:24 -0500, Rob Ratcliff wrote:

> I have a simple OmniORBpy service that I'd like to access by simple
> corbaloc string such as: corbaloc:iiop:1.2 at hostname:1234/MyServer";

[...]
> Things got more complicated once I wanted the service to accept a
> callback object using bidirectional GIOP:

[...]
> Is there a way to get rid of the %FF and %00 characters to simplify the
> URL? (I'm OK with the POA  name showing up in the URL.)

Only the omniINSPOA itself is special in creating plain object keys. No
other POA is like that, because omniORB needs information in the object
to to identify the POA. Making your POA a child of omniINSPOA doesn't
make any difference to the format of keys you get.

> I imagine I could work around this by adding a "createSession()" method
> in the original service that used the bidirectional GIOP enabled POA,
> but wanted to see if there was a way to do it with my original interface.

You can implement a servant in the omniINSPOA in which each method
immediately throws omniORB::LOCATION_FORWARD to forward the client to an
object activated in a POA with the bidirectional policy.

This approach is also good because other information can be embedded in
IORs, which is missing in a corbaloc URI. In particular, code set
information is included in the IOR, and without it a client is meant to
assume ISO-8859-1 code set, which trips you up if you need to use
another code set.

> BTW, can bidirectional GIOP be enabled for the RootPOA or the omniINSPOA?

No, because policies are set in the call to create_POA, and the special
POAs are pre-created.

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list