geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick McGuire (JIRA)" <>
Subject [jira] Created: (GERONIMO-1145) Too many ORBs (or possibly not enough)
Date Tue, 08 Nov 2005 17:00:19 GMT
Too many ORBs (or possibly not enough)

         Key: GERONIMO-1145
     Project: Geronimo
        Type: Bug
  Components: OpenEJB  
    Versions: 1.0-M5    
 Environment: All
    Reporter: Rick McGuire

This is sort of complicated problem to describe, but there is a problem with the wrong ORB
getting used with remote references passed in with a request.  In the current architecture,
when a CORBA bean is started, it calls Util.setORB() to register itself as the server ORB.
 Util.setORB() ignores all registration calls after the first. so the first CORBABean started
in the server will determine the ORB instance returned by all context.lookup("java:comp/ORB")
calls in the server.  This value is set in StandardServant using:

        // create ReadOnlyContext
        Map componentContext = new HashMap(2);
        componentContext.put("ORB", Util.getORB());
        componentContext.put("HandleDelegate", new CORBAHandleDelegate());
        try {
            enc = new SimpleReadOnlyContext(componentContext);
        } catch (NamingException e) {
            throw new RuntimeException(e);

which uses the ORB object returned from Util.getORB().  This ORB value is used for a lot during
request processing, particularly when accessing information from remote references passed
to this EBJ.  If there are multiple CORBA beans configured for the server, this can create
connection problems when the beans are configured with different TSSConfigs.  In the case
we ran into, an ORB instance configured for non-secure transports was trying to (correctly)
use an SSL connection to perform an operation.  The connection failed in this case because
the ORB did not have the correct transport-level security configuration needed to make the

The appropriate solution would be for the StandardServant to set up the comp/ORB value to
be the ORB associated with the owning POA instance (created in the TSSBean). 

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message