[omniORB] Interoperability: Indirections in TypeCodes

David Riddoch djr@uk.research.att.com
Fri, 12 Feb 1999 14:19:59 +0000 (GMT)


Hello,


There is an issue regarding interoperability of omniORB 2.7.0 with
previous versions, which I forgot to mention in the release notes. This
may effect people who try to communicate TypeCodes from a 2.7.0 (and
future releases) application to one using a previous version.

In 2.7.0 indirections are supported in TypeCodes. If a type is used twice
within a TypeCode then the second reference to that type can be encoded as
an indirection pointing to the previous reference. For example:

// IDL
struct S {
  UserDefType a;
  UserDefType b;
};

In 2.6.1 and earlier the TypeCode for UserDefType would have been
marshalled twice. In 2.7.0 it is only marshalled once, and an indirection
is used in the second case. This has the advantage of reducing the size of
messages, but unfortunately 2.6.1 does not accept TypeCodes with
indirections.

The fix is to upgrade your applications to 2.7.0. (or 2.7.1 when it comes
out). If there is demand out there I may consider having a runtime
configuration option to disable use of indirections in out-going
TypeCodes. Would this be useful for anyone?

Also, does anyone know of any problems regarding use of indirections with
other vendors ORBs?


Cheers,
David