[jacorb-developer] Running out of Threads

Wagner, Marcus (Marcus) marcuswagner at avaya.com
Fri Jan 31 15:34:03 CET 2014


I cannot retest with the current version easily, because it is a production system, where we cannot simply replace components. (we changed from 2.2.4 to 2.3.1, but there was no effect; PS: I even don't think, that this is an error within JacORB.)

As I am not the "inventor" of the process, I am not sure if _release() is called every time. What I need to say is, I cannot reproduce the system in the lab, so there need to be "some" _releases() in the code.

I need one hint. When does the ClientReceptor pool comes in place. Is this when I am a server, that hosts CORBA objects. Or am I working with this pool when I am a client that uses remote CORBA server objects? The information when the ClientReceptor pool is used in an methods round-trip is very helpful for me, because then I know in which part I need to search for a _release().

Regards Marcus

PS: can I specify a round-trip timeout on a per-call basis with JacORB (e.g. using policies)?



> -----Ursprüngliche Nachricht-----
> Von: jacorb-developer-
> bounces~marcus.wagner=comergo.com at lists.spline.inf.fu-berlin.de
> [mailto:jacorb-developer-
> bounces~marcus.wagner=comergo.com at lists.spline.inf.fu-berlin.de] Im
> Auftrag von Nick Cross
> Gesendet: Freitag, 31. Januar 2014 15:11
> An: Discussions concerning CORBA development with JacORB
> Betreff: Re: [jacorb-developer] Running out of Threads
> 
> 
> Firstly, can you retest using the current version (3.4).
> 
> Secondly, are you calling _release once you have finished with the client
> object?
> 
> Regards
> 
> Nick
> 
> 
> On 31/01/14 12:54, Wagner, Marcus (Marcus) wrote:
> > Hi,
> >
> > I have a CORBA Server using JacORB (actually 2.3.1). In general, the
> > server offers some CORBA Objects. Clients work with them and while
> > doing that, they will register CORBA Objects as callback at the
> > server. This is used to push events from the server to clients. So in
> > the end the server is from a CORBA point of view a server and a
> > client. But In the further text when I write server, I mean the server
> > process and when I write client I mean the client application.
> >
> > Now the problem is, that after a few weeks in operation, there is a
> > Thread Pool running out of idle Threads. I get the error "no idle
> > threads but maximum number of threads reached". As the amount of
> > Threads mentioned is 1000. It needs to be whether the server receptor
> > threads or the client receptor threads (maybe?).
> >
> > When I make a Thread dump of the system, then there are a lot of
> > "ClientMessageReceptor" Threads. (At the dump time about 850). So I
> > assume, that the affected ThreadPool is the client receptor thread
> > pool. Is this assumption any good?
> >
> > Next I am wondering why those threads does not become idle. A Stack
> > trace of one of those WAITING Threads looks like: Thread#900433
> > "ClientMessageReceptor728" WAITING on java.lang.Object at 7938f
> > blocked/waiting: 94/2 java.lang.Object.wait(Native Method)
> > java.lang.Object.wait(Object.java:485)
> > org.jacorb.orb.giop.GIOPConnection.waitUntilConnected(GIOPConnection.j
> > ava:285)
> >
> >
> org.jacorb.orb.giop.GIOPConnection.getMessage(GIOPConnection.java:325)
> > org.jacorb.orb.giop.GIOPConnection.receiveMessages(GIOPConnection.java
> > :475)
> >
> >
> org.jacorb.orb.giop.MessageReceptor.doWork(MessageReceptor.java:71)
> > org.jacorb.util.threadpool.ConsumerTie.run(ConsumerTie.java:61)
> > java.lang.Thread.run(Thread.java:662)
> >
> > My questions here are: The client receptor threads, when are they
> > required/used. Is it when a Client calls a method on the server? What
> > connection is the Thread actually waiting for in
> >
> "org.jacorb.orb.giop.GIOPConnection.waitUntilConnected(GIOPConnection.java:
> 285)"?
> >
> >
> Does this thread wait for an incoming CORBA method call? Or does the thread
> wait for an answer to a remote call he has issued to the client?
> >
> >
> > Thanks in advance
> >
> > _______________________________________________ jacorb-developer
> > maillist  -  jacorb-developer at lists.spline.inf.fu-berlin.de
> > https://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-develope
> > r
> >
> _______________________________________________
> jacorb-developer maillist  -  jacorb-developer at lists.spline.inf.fu-berlin.de
> https://lists.spline.inf.fu-berlin.de/mailman/listinfo/jacorb-developer


More information about the jacorb-developer mailing list