Thousands of threads in TIMED_WAIT


   We've a web-service which creates a pool of 10 threads  (one for each upstream transaction) using ExecutorService API. Each of these connects to downstream CORBA via Orbix. But after the job is over the connection pool is destroyed using executor.shutdown() API. But what is happening is after a while I see 1000s of Orbix threads in TIMED_WAITING state which is forcing us to restart Weblogic which hosts the web-service. Since we don't create actual threads, I believe Orbix creates them and destroys them after *some* criteria.  So, I am interested in knowing, if there is any known issue with Orbix 3 on not killing or destroying threads.

Here's the stack trace. There are about 2800+ threads in this state ! This happens after almost a days's worth of load and we have to restart weblogic or we'll hit the "java.lang.OutOfMemoryError: Unable to create new native thread"


"OrbixWeb Connection Monitor thread" - Thread t@573

   java.lang.Thread.State: TIMED_WAITING

                at java.lang.Object.wait(Native Method)

                - waiting on <302d858f> (a IE.Iona.OrbixWeb.CORBA.ConnectTable)




Orbix  version: Orbix 3


Any suggestions or help is highly appreciated.



  • Orbix 3.3 should run fine in a WebLogic application server container but we do not directly support it (WebLogic) as a deployment environment. You are also using the Java interface ExecutorService within your application and based on your description your WebService client application in WebLogic is calling CORBA Servers using the Orbix client jars. Which version of Orbix 3 are you using? Are you using the Thread filters for handling the multi-threaded client calls in your application? If so, what threading model are you using?
    What version of Java and WebLogic are you using?
    You can read up on thread filters for Orbix 3.3 in the online documentation at
    Middelware -> CORBA -> Orbix 3.3.x -> Java Programmer's Guide