![]() |
Limitations (JavaTM IDL/JavaTM RMI over IIOP) |
This document lists some of the limitations regarding JavaTM IDL and JavaTM RMI over IIOP technology in this release of the JavaTM 2 Platform, Standard Edition (J2SETM). The limitations are outlined below.The Official Specifications for CORBA Support in J2SE 1.4 document provides information outlining with which OMG Specifications this implementation of the Java IDL and Java RMI over IIOP technologies comply.
LIMITATIONS:
- JavaTM SDK version interoperability
When a J2SETM 1.3.x client talks to a J2SE 1.4 server using RMI-IIOP and an unchecked or RemoteException is thrown by the server, the client will hang. Similarly, when the server is using J2SE 1.3.x and the client is using J2SE 1.4, the client will receive a CORBA UNKNOWN exception with minor code 0.
This issue is currently being addressed at the OMG in the Java to IDL RTF as issue 4795: http://cgi.omg.org/issues/java2idl-rtf.html#Issue4795.
- Multiple Profile IOR
If an IOR has multiple profiles, the first IIOP profile is used for the invocation.
- Multiple ORBs not allowed in persistent servers
This release of J2SE platform does not allow multiple ORB instantiations in persistent servers. If the persistent server is written using the Java RMI over IIOP APIs, instantiating JNDI's InitialContext() creates an ORB. To avoid creating multiple ORBs in this setting, you can set the java.naming.ORB system property to an ORB that is already initialized.
- Locally optimized stubs
The IDL-to-Java compiler,
idlj
, does not generate locally optimized stubs. Using stubs with the local optimization generated by a different IDL-to-Java compiler with the Sun ORB will result in the Sun ORB not invoking portable interceptors for the local invocations. This is being resolved through an OMG issue.The rmic compiler generates locally optimized stubs, but its javax.rmi.CORBA.Util delegate implementation always returns false for isLocal. The result is that the stubs never use the local optimization.
The Java CORBA ORB shipped with J2SE v.1.4 does use a locally optimized transport when it detects that the client and server are running within the same VM.
- Single thread POA policy
As per the CORBA 2.3.1 specification, there can be two choices for Thread Policy for the Portable Object Adapter (POA): the ORB Controlled Model and the Single Thread Model. J2SE v.1.4 does not support the Single Thread Model.