tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Santosh Asbe <>
Subject Re: Can cached EJB HomeHandles be invalidated?
Date Fri, 11 Nov 2005 09:32:27 GMT
Hi ,
 I have faces similar problem with tomcat & websphere. Problem i have
descirbed in detail. Do inform if any solution is there for this problem.

I have tomcat 4.1.30 on Linux. It servers as a web server and contains only
JSP & Servlets. We make a remote call to Websphere Application Server ( on
AIX) using corbaloc like 'corbaloc::ip1:2809:ip2:2809'. Now when i one of my
App server fails, the other App Server server should take over. This work
when i use a simple java client on the Linux machine, the failover occurs.
But when i use my application in tomcat, this does not work.
Well we have log4j and debugging in our code.
We thought the singleton might be an issue. so we tried the following
without the singleton.

I am using a Service locator ( singleton) which makes the initial call to
App Server and stores in the ip cache. initially we that the issue was with
the Service locator, but then even if i don't use this Service Locator, the
problem persists.

we made a single servlet call without the singleton.We make a remote call to
Websphere Application Server ( on AIX) using corbaloc like
'corbaloc::ip1:2809:ip2:2809'. Now when i one of my App server fails, the
other App Server server should take over.
But stil the take over was not done.

We have talked to IBM and they say that the tomcat does some caching and the
problem is not with the App Server. Has anyone faced this issue? Can anyone
help regarding this and how can i know how and where the caching is done?
Can this issue be resolved.

We have alsofound the following information:
the tomcat websphere connection is done via the following ports:
bootstrap port ( which is 2809 for us) and ORB listner port ( 41999 for our

The tomcat opens socket to connect to the bootstrap port (2809) first and
then ORB listner port (41999) later when the first call is made. Now when
the subsequent calls are made connection is made via the ORB listner port
When one of the App Server fails... it still tries to connect to bootstrap
port (2809) of first app server. ideally it shoulde try to connect to the
new app server bootstrap port.

Can anyone help me reg this problem. If any other information is required, i
will be glad to provide with the same.

On 11/10/05, Jeremy Crosbie <> wrote:
> I am using Tomcat 5.5.9 with WebLogic 8.1 as the EJB server/container.
> I am configuring EJB references in the servlet context in my server.xmllike
> so:
> <Context ...>
> <Ejb name="ejb/name" type="Session" home="ejb.home" remote="ejb.remote"
> factory="my.custom.weblogic.factory" />
> </Context>
> The behavior I observe when the EJBs are first requested is the
> getObjectInstance() method of my custom factory is invoked and the
> getHomeHandle() method invoked on that return object. In subsequent
> requests
> for the EJB I see the getEJBHome() method of the handle being invoked (I
> created proxies to see what exactly was happening) and the create() method
> then being called.
> Under ideal conditions this is fine. But what I observe when the WebLogic
> server has been shutdown is that calls to HomeHandle.getEJBHome() succeed
> but then the call to create() fails. The problem is the HomeHandle never
> gets invalidated and I am required to restart Tomcat in order for things
> to
> start working again.
> I am hoping that there is a way to instruct Tomcat to not cache the
> HomeHandle but instead always delegate Home interface creation to my
> object
> factory. I could handle the caching and any retry logic in a
> ServiceLocator.
> Is this possible?
> Thank you!
> --jeremy
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message