Does thread pool really help

Friends,
I wanted your opinion on whether thread pools really help. Some people are of the opinion that thread pools don't really make much difference. On what basis should I make a decision whether to go for a pool or not? Is the reason that I want to limit the number of threads spawned a valid reason for pooling or it depends on the fact that for how much duration each of the threads is going to remain busy?
Can anyone please comment?
Thanks,
praddyB

sztejkat wrote:
I have run into a similar question.
The answer is, as usual, "it depends".
One delegates work to worker thread if things to be done are too long to wait for completion. This is a true sentence.
I have found that it is worth to use pool of worker threads if I need to spawn multiple, but not concurently accessing resources, lengthy tasks which should not wait for each other.
That applies to threads. It provides no basis for pools.
If tasks are to access same resource there is no point in getting a separate thread for each of them. One may get into many deadlocking troubles.
Not sure what you mean by that. If you are actually deadlocking on a single resource then you are doing something weird. Deadlocks result due to multiple resources (and incorrect access).
[http://www.javaworld.com/javaworld/jw-10-2001/jw-1012-deadlock.html]
Blocking on the other hand occurs with a single resource. Obviously if a single resource is used exclusively or primarily in thread processing then either don't use threads or re-arch to split it up.
Worker thread/pool is usually an application wide resource where one does throw "things to be done in background" or "things which can't hold current thread code flow".
Threads, pooled or not, can be the primary focus of the application. I would suppose that when someone considers using a pool that in fact in almost all cases the work tasks to be done are either the primary or a substantial part of the processing.

Similar Messages

  • Does adding RAM really help performance?

    My iMac 1.8 GHz G5 is about two years old and starting to run slowly. Could it be the 10,000 photos and 6,000 songs? I've started using my MacBook for most work and my iMac for most play (i.e. media).
    Does adding RAM really help performance? I've only got one 512 MB chip.
    Thanks for any help.

    Hello,
    Yes, adding more memory can make a huge performance improvement.
    I've owned two iMac G5 systems. And, in both cases, I noticed a huge performance improvement jumping to 1 GB of RAM. And, while not huge, I noticed even better performance going from 1 GB to 2 GB of RAM.
    512 MB is minimal, and adequate. But, more memory makes OS X run considerably better.
    I hope this helps.
    Let us know if you have other questions.
    P.S., if you'd like, go ahead and click the "Helpful" or "Solved" buttons on any of the posts / replies above if you feel they were helpful or adequately answered your question.

  • What role does thread with name of form pool-n-thread-m play?

    Hello
    JE version 5.0.97.
    Looking at the threads created by a node in the master role, I see only one thread without a descriptive name. It has the executor default of pool-n-thread-m.
    What role does this thread take?  I ask out of curiosity.
    "MASTER node1(1)" daemon prio=6 tid=0x0000000008d07800 nid=0x26cc waiting on condition [0x000000000a52f000]
    "Feeder Output for node2" daemon prio=6 tid=0x0000000009a9b800 nid=0x1e20 waiting on condition [0x000000000a82f000]
    "Feeder Input for node2" daemon prio=6 tid=0x0000000009a1d000 nid=0x25cc runnable [0x000000000a72f000]
    "MASTER node1(1)" daemon prio=6 tid=0x0000000008d07800 nid=0x26cc waiting on condition [0x000000000a52f000]
    "Acceptor Thread node1" daemon prio=6 tid=0x0000000008aed000 nid=0x2248 waiting on condition [0x000000000a42f000]
    "Learner Thread node1" daemon prio=6 tid=0x0000000008ad1000 nid=0x2058 waiting on condition [0x000000000a32f000]
    "ServiceDispatcher-localhost:5551" daemon prio=6 tid=0x0000000008a8a800 nid=0x2508 runnable [0x00000000097ff000]
    "Checkpointer" daemon prio=6 tid=0x0000000008a8a000 nid=0x9a0 in Object.wait() [0x00000000096ff000]
    "Cleaner-1" daemon prio=6 tid=0x0000000008a0c000 nid=0x16cc in Object.wait() [0x00000000095ff000]
    "INCompressor" daemon prio=6 tid=0x0000000008b4e000 nid=0x2560 in Object.wait() [0x00000000094ff000]
    "pool-1-thread-1" prio=6 tid=0x00000000070ff800 nid=0x222c waiting on condition [0x000000000a62f000]
    Could you consider naming this thread in a future release? It would assist with problem diagnosis by allowing users to know with certainty which threads belong to JE.
    Kind regards, Keith Wall.

    Keith,
    These threads are part of the thread pool that watches for incoming network connection requests, and help establish new sockets. We should certainly name them, and will do so in the next release. I think they'll be named ServiceDispatcher <nodeName>.
    Regards,
    Linda

  • ITunes Store for Windows. Everytime I try an access the iTunes Store it takes really long to connect and then it says iTunes store cannot be access. I think I am up to date with iTunes Verizon 11.0.2.26 but no matter what I try it does not connect. HELP P

    iTunes Store for Windows. Everytime I try an access the iTunes Store it takes really long to connect and then it says iTunes store cannot be access. I think I am up to date with iTunes Verison, I Have 11.0.2.26 but no matter what I try it does not connect. HELP Please???

    With those symptoms, I'd try the following document:
    Apple software on Windows: May see performance issues and blank iTunes Store
    (If there's a SpeedBit LSP showing up in Autoruns, it's usually best to just uninstall your SpeedBit Video Accelerator.)

  • Does a CQC really need a separate thread/event queue per instance?

    Does a ContinousQueryCache really need a separate thread/event queue per instance?
    Is it possible to get multiple cqc's to share a single event queue?

    Test case to reproduce shown below, i.e. new thread per CQC.
    Sample code:
    =====================================
    NamedCache dummyCache = CacheFactory.getCache("A");
    dummyCache.put("hello", "B");
    dummyCache.put("world", "C");
    ContinuousQueryCache cqcA = new ContinuousQueryCache(dummyCache, new EqualsFilter("toString", "B"), new MultiplexingMapListener() {
    @Override
    protected void onMapEvent(MapEvent mapEvent) {
    System.out.println(Thread.currentThread().getName());
    ContinuousQueryCache cqcB = new ContinuousQueryCache(dummyCache, new EqualsFilter("toString", "C"), new MultiplexingMapListener() {
    @Override
    protected void onMapEvent(MapEvent mapEvent) {
    System.out.println(Thread.currentThread().getName());
    =================================
    Output:
    EventQueue:ContinuousQueryCache{Cache=A, Filter=EqualsFilter(.toString(), B)}
    EventQueue:ContinuousQueryCache{Cache=A, Filter=EqualsFilter(.toString(), C)}
    =================================
    Thread dump:
    Full thread dump Java HotSpot(TM) Client VM (11.2-b01 mixed mode, sharing):
    "EventQueue:ContinuousQueryCache{Cache=A, Filter=EqualsFilter(.toString(), C)}" daemon prio=6 tid=0x034d8800 nid=0x16b4 in Object.wait() [0x03b2f000..0x03b2fa94]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         - waiting on <0x22d80068> (a com.tangosol.util.TaskDaemon)
         at java.lang.Object.wait(Object.java:485)
         at com.tangosol.util.TaskDaemon.takeNextRipeTask(TaskDaemon.java:345)
         - locked <0x22d80068> (a com.tangosol.util.TaskDaemon)
         at com.tangosol.util.TaskDaemon.run(TaskDaemon.java:103)
         at com.tangosol.util.Daemon$DaemonWorker.run(Daemon.java:714)
         at java.lang.Thread.run(Thread.java:619)
    "EventQueue:ContinuousQueryCache{Cache=A, Filter=EqualsFilter(.toString(), B)}" daemon prio=6 tid=0x034d7400 nid=0x1370 in Object.wait() [0x03adf000..0x03adfb14]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         - waiting on <0x22d80138> (a com.tangosol.util.TaskDaemon)
         at java.lang.Object.wait(Object.java:485)
         at com.tangosol.util.TaskDaemon.takeNextRipeTask(TaskDaemon.java:345)
         - locked <0x22d80138> (a com.tangosol.util.TaskDaemon)
         at com.tangosol.util.TaskDaemon.run(TaskDaemon.java:103)
         at com.tangosol.util.Daemon$DaemonWorker.run(Daemon.java:714)
         at java.lang.Thread.run(Thread.java:619)

  • Is Battery Doctor by Beijing Kingsoft Good for Iphone 4s? Does It Really Help the Battery ? Thanku! Hope For Your Reply

    Is Battery Doctor by Beijing Kingsoft Good for Iphone 4s? Does It Really Help the Battery ? Thanku! Hope For Your Reply

    Doesn't do anything or provide any info that you can't do yourself. This is all you need to know about your battery:
    http://www.apple.com/batteries/iphone.html

  • Does turning off 3G really help call reception/signal strength ?

    After experiencing more of the S.O.S. with the 2.1 upgrade I turned 3G off today.
    It's really ******* me off that I am paying another $15 - $20 a month for something that seems useless and problematic (And now just to turn it off).
    Does this really help with the issue pertaining to dropped calls ?

    Hi guys
    Hope you don't mind me dropping in, but I work in the telco industry, albeit in Australia. The turning off of 3G for better reception isn't an iPhone fault, it's a network thing.
    Any phone with 3G capability is programmed to try and access the 3G side of the network first. It will continue to scan the network all day and night, anytime your phone is on to maintain signal. If it's unable to maintain service coverage with 3G, it then drops down to 2.5G, then 2G, then EDGE (if available in your area). If you turn 3G access off, it skips that step. The older networks are more reliable, but slower. They are also (now) much less crowded with users so there is less congestion and you get (on occasions) better signal.
    The recent 2.1 upgrade would have modified the supply of power from the chipsets to the antenna's which is why many people are experiencing better signal strength and less dropouts, but it will always come back to the 3G coverage in your area.
    I know this doesn't really improve things for you, but gives you some background to how the whole circus works.
    Cheers
    Russ

  • Does a useful link page really help

    I was wondering if I should scrap my useful links page as it
    takes some time to maintain every once in a while. I would like my
    site to be as simple as possible. But does a useful links page to
    other websites really help your site in its position in search
    engines. Thanks.

    > Their linking to your pages will
    Not necessarily. If they are Microsoft or Adobe, then yes.
    But Joe the
    Plumber? Not so much. An incoming link from a poorly ranked
    site has no
    benefit at all. An incoming link from a link farm site can
    actually
    penalize you.
    Murray --- ICQ 71997575
    Adobe Community Expert
    (If you *MUST* email me, don't LAUGH when you do so!)
    ==================
    http://www.projectseven.com/go
    - DW FAQs, Tutorials & Resources
    http://www.dwfaq.com - DW FAQs,
    Tutorials & Resources
    ==================
    "kiusau" <[email protected]> wrote in
    message
    news:gm3jih$4po$[email protected]..
    > ANSWER: Although it is unlikely that your linking your
    webpages to the
    > pages
    > of others will help you. Their linking to your pages
    will. Think of the
    > Golden Rule: Do unto others as you would have them do
    unto you.
    >
    > USEFUL LINK:
    >
    http://www.google.com/support/webmasters/bin/answer.py?answer=34432&cbid=1uggwbr
    > hhlhs3&src=cb&lev=answer
    >
    > Roddy
    >

  • JRun Thread Pool Issue

    I'm running CF 9.0.1 on Ubuntu on an "Medium" Amazon EC2 instance. CF has been crashing intermittently (several times per day). At such times, running top gets me this (or something similar):
    PID
    USER
    PR
    NI
    VIRT
    RES
    SHR
    S
    %CPU
    %MEM
    TIME+COMMAND                                                                                                   
    15855
    wwwrun
    20
    0
    1762m
    730m
    20m
    S
    99.3
    19.4
    13:22.96 coldfusion9
    So, it's obviously consuming most of the server resources. The following error has been showing up in my cfserver.log in the leadup to each crash:
    java.lang.RuntimeException: Request timed out waiting for an available thread to run. You may want to consider increasing the number of active threads in the thread pool.
    If I run /opt/coldfusion9/bin/coldfusion status, I get:
    Pg/Sec  DB/Sec  CP/Sec  Reqs  Reqs  Reqs  AvgQ   AvgReq AvgDB  Bytes  Bytes
    Now Hi  Now Hi  Now Hi  Q'ed  Run'g TO'ed Time   Time   Time   In/Sec Out/Sec
    0   0   0   0   -1  -1  150   25    0     0      -1352560      0      0
    In the administrator, under Server Settings > Request Tuning, the setting for Maximum number of simultaneous Template requests is 25. So this makes sense so far. I could just increase the thread pool to cover these sort of load spikes. I could make it 200. (Which I did just now as a test.)
    However, there's also this file /opt/coldfusion9/runtime/servers/coldfusion/SERVER-INF/jrun.xml. And some of the settings in there appear to conflict. For example, it reads:
    <service class="jrunx.scheduler.SchedulerService" name="SchedulerService">
      <attribute name="bindToJNDI">true</attribute>
      <attribute name="activeHandlerThreads">25</attribute>
      <attribute name="maxHandlerThreads">1000</attribute>
      <attribute name="minHandlerThreads">20</attribute>
      <attribute name="threadWaitTimeout">180</attribute>
      <attribute name="timeout">600</attribute>
    </service>
    Which a) has fewer active threads (what does this mean?), and b) has a max threads that exceed the simultaneous request limit set in the admin. So, I'm not sure. Are these independent configs that need to be made to match manually? Or is the jrun.xml file supposed to be written by the CF Admin when changes are made there? Hmm. But maybe this is different because presumably the CF Scheduler should only use a subset of all available threads, right...so we'd always have some threads for real live users. We also have this in there:
    <service class="jrun.servlet.http.WebService" name="WebService">
      <attribute name="port">8500</attribute>
      <attribute name="interface">*</attribute>
      <attribute name="deactivated">true</attribute>
      <attribute name="activeHandlerThreads">200</attribute>
      <attribute name="minHandlerThreads">1</attribute>
      <attribute name="maxHandlerThreads">1000</attribute>
      <attribute name="mapCheck">0</attribute>
      <attribute name="threadWaitTimeout">300</attribute>
      <attribute name="backlog">500</attribute>
      <attribute name="timeout">300</attribute>
    </service>
    This appears to have changed when I changed the CF Admin setting...maybe...but it's the activeHandlerThreads that matches my new maximum simulataneous requests setting...rather than the maxHandlerThreads, which again exceeds it. Finally, we have this:
    <service class="jrun.servlet.jrpp.JRunProxyService" name="ProxyService">
      <attribute name="activeHandlerThreads">200</attribute>
      <attribute name="minHandlerThreads">1</attribute>
      <attribute name="maxHandlerThreads">1000</attribute>
      <attribute name="mapCheck">0</attribute>
      <attribute name="threadWaitTimeout">300</attribute>
      <attribute name="backlog">500</attribute>
      <attribute name="deactivated">false</attribute>
      <attribute name="interface">*</attribute>
      <attribute name="port">51800</attribute>
      <attribute name="timeout">300</attribute>
      <attribute name="cacheRealPath">true</attribute>
    </service>
    So, I'm not certain which (if any) of these I should change and what exactly the relationship is between maximum requests and maximum threads. Also, since several of these list the maxHandlerThreads as 1000, I'm wondering if I should just set the maximum simultaneous requests to 1000. There must be some upper limit that depends on available server resources...but I'm not sure what it is and I don't really want to play around with it since it's a production environment.
    I'm not sure if it pertains to this issue at all, but when I run a ps aux | grep coldfusion I get the following:
    wwwrun   15853  0.0  0.0   8704   760 pts/1
    S
    20:22   0:00 /opt/coldfusion9/runtime/bin/coldfusion9 -jar jrun.jar -autorestart -start coldfusion
    wwwrun   15855  5.4 18.2 1678552 701932 pts/1  
    Sl
    20:22   1:38 /opt/coldfusion9/runtime/bin/coldfusion9 -jar jrun.jar -start coldfusion
    There are always these two and never more than these two processes. So there does not appear to be a one-to-one relationship between processes and threads. I recall from an MX 6.1 install I maintained for many years that additional CF processes were visible in the process list. It seemed to me at the time like I had a process for each thread...so either I was wrong or something is quite different in version 9 since it's reporting 25 running requests and only showing these two processes. If a single process can have multiple threads in the background, then I'm given to wonder why I have two processes instead of one...just curious.
    So, anyway, I've been experimenting while composing this post. As noted above I adjusted the maximum simulataneous requests up to 200. I was hoping this would solve my problem, but CF just crashed again (rather it slogged down and requests started timing out...so effectively "crashed"). This time, top looked similar (still consuming more than 99% of the CPU), but CF status looked different:
    Pg/Sec  DB/Sec  CP/Sec  Reqs  Reqs  Reqs  AvgQ   AvgReq AvgDB  Bytes  Bytes
    Now Hi  Now Hi  Now Hi  Q'ed  Run'g TO'ed Time   Time   Time   In/Sec Out/Sec
    0   0   0   0   -1  -1  0     150   0     0      0      0      0      0
    Obviously, since I'd increased the maximum simultaneous requests, it was allowing more requests to run simultaneously...but it was still maxing out the server resources.
    Further experiments (after restarting CF) showed me that the server became unusably slogged after about 30-35 "Reqs Run'g", with all additional requests headed for an inevitible timeout:
    Pg/Sec  DB/Sec  CP/Sec  Reqs  Reqs  Reqs  AvgQ   AvgReq AvgDB  Bytes  Bytes
    Now Hi  Now Hi  Now Hi  Q'ed  Run'g TO'ed Time   Time   Time   In/Sec Out/Sec
    0   0   0   0   -1  -1  0     33    0     0      -492   0      0      0
    So, it's clear that increasing the maximum simultaneous requests has not helped. I guess what it comes down to is this: What is it having such a hard time with? Where are these spikes coming from? Bursts of traffic? On what pages? What requests are running at any given time? I guess I simply need more information to continue troubleshooting. If there are long-running requests, or other issues, I'm not seeing it in the logs (although I do have that option checked in the admin). I need to know which requests exactly are those responsible for these spikes. Any help would be much appreciated. Thanks.
    ~Day

    I really appreciate your help. However, I haven't been able to find the JRun Thread settings you describe above.
    Under Request Tuning, I see:
    Server Settings > Request Tuning
    Request Limits
    Maximum number of simultaneous Template requests
      Restricts the number of simultaneously processed requests. Use this setting to increase overall system performance for heavy load applications. Requests beyond the specified limit are queued. On Standard Edition, you must restart ColdFusion to enable this setting. 
    Maximum number of simultaneous Flash Remoting requests
      The number of Flash Remoting requests that can be processed concurrently.
    Maximum number of simultaneous Web Service requests
      The number of Web Service requests that can be processed concurrently.
    Maximum number of simultaneous CFC function requests
      The number of ColdFusion Component methods that can be processed concurrently via HTTP. This does not affect invocation of CFC methods from within CFML, only methods requested via an HTTP request.
    Tag Limit Settings
    Maximum number of simultaneous Report threads
      The maximum number of ColdFusion reports that can be processed concurrently.
    Maximum number of threads available for CFTHREAD
      The maximum number of threads created by CFTHREAD that will be run concurrently. Threads created by CFTHREAD in excess of this are queued.  On Standard Edition, the maximum limit is 10. 
    And under Java and JVM, I see:
    Server Settings > Java and JVM
        Java and JVM settings control the way ColdFusion starts the Java Virtual Machine when it starts.  You can control settings like what classpaths are used and how memory is allocated as well as add custom command line arguments.  Changing these settings requires restarting ColdFusion.  If you enter an incorrect setting, ColdFusion may not restart properly. 
       Backups of the jvm.config file are created when you hit the submit button. You can use this backup to restore from a critical change. 
       Java Virtual Machine Path
      Specifies the location of the Java Virtual Machine.
       Minimum JVM Heap Size (MB)         Maximum JVM Heap Size  (MB)       
       The Memory Size settings determine the amount of memory that the JVM can use for programs and data. 
       ColdFusion Class Path
      Specifies any additional class paths for the JVM, with multiple directories separated by  commas.
       JVM Arguments
      -server -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -Xbatch -Dcoldfusion.rootDir={application.home}/../ -Dcoldfusion.libPath={application.home}/../lib
      Specifies any specific JVM initialization options, separated by spaces.
    I did go take a look at FusionReactor and found it's not free (which would be fine, of course, if it would actually help). It looks like there's a fully functional demo, which is cool...but I've haven't been able to get it to install yet, so we'll see.
    Thanks again!
    ~Day
    (By the way, I've cross-posted this inquiry on StackOverflow. So if you're able to help me arrive at a solution you might want to answer there as well.)

  • Creating our own Thread Pool

    We have an application running on WLS6.1 with WLI2.1. We're using WLI2.1 to define
    workflows; we interface to the workflow definitions with custom EJB/JSP code.
    Without getting too detailed, we would like to spawn a thread when a user submits
    some of our forms. From the point of submittal onwards, there is nothing in the
    execution of the workflow that requires user intervention.
    We initially tackled this problem with the use of internal JMS messages in the
    workflow. However, the way our workflow is structured we would really like to
    manually spawn threads instead of embedding JMS messages in the flow. (For instance,
    we may want to obtain multiple workflow instances and execute them all at once
    with the same action).
    Is there any downside to us developing our own ThreadPool? Is there a pre-canned
    Thread Pool service that is available as part of the WLS package?
    I've already got a ThreadPool implementation working and it seems to be doing
    the right thing. There's just some concern in our company that we should be using
    a WLS service instead of rolling our own.
    Details of our threadpool:
    - it's a long-lived Singleton that is instantated at application startup.
    - A predefined number of Worker threads are created, and they can be set with
    a Runnable object to execute.
    - I have synchronized LinkedList containers for idleThreads, busyThreads, and
    tasksToRun (Runnables that have not yet been assigned to a thread).
    Thanks!
    Ron

    Hi,
    You have to configure these things.
    Goto System Admin>System Configuration>Universal Worklist & Workflow-->WorkFlow, it shows subareas like
    Engine
    Mail
    Scheduler
    User Interface
    Workflow Notification Settings
    To follow this link
    http://help.sap.com/saphelp_nw04/helpdata/en/57/5b781705184211a4ba344387a992e5/frameset.htm
    Regards,
    Senthil K.

  • Thread pool executor problem

    When using a thread pool executor (java.util.concurrent.ThreadPoolExecutor) to limit the number of threads executing at a time, the number of threads running still exceeds the limit number.
    This is the code:
    private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(2, 3, 20, TimeUnit.SECONDS, new LinkedBlockingQueue());
    The number of tasks in my program are 4, so i always have 4 threads running, although i limited it to 3.
    Can anyone help me with this problem? Or can u propose another solution to limit the number of running threads? By the way, i also tried using a newFixedThreadPool() and got the same problem.
    Thx.

    The number of tasks in my program are 4, so i always
    have 4 threads running, although i limited it to 3.How do you know that there are 4 threads running? If you're generating a JVM thread dump, you're going to see threads that are used internally by the JVM.
    Here's a simple program that creates a fixed-size threadpool and runs jobs. It limits the number of concurrent threads to 3. Compare it to what you're doing, I'm sure that you'll find something different. Also, verify that you're not creating threads somewhere else in your program; all of the ThreadPoolExecutor threads will have names of the form "pool-X-thread-Y"
    import java.util.concurrent.Executors;
    import java.util.concurrent.ExecutorService;
    public class ThreadPoolTest {
        public static void main(String[] args) {
            ExecutorService pool = Executors.newFixedThreadPool(3);
            for (int ii = 0 ; ii < 10 ; ii++) {
                pool.execute(new MyRunnable());
            pool.shutdown();
        private static class MyRunnable implements Runnable {
            public void run() {
                log("running");
                try {
                    Thread.sleep(1000L);
                catch (InterruptedException e) {
                    log("interrupted");
            private void log(String msg) {
                System.err.println(
                        msg + " on " + Thread.currentThread().getName()
                        + " at " + System.currentTimeMillis());
    }

  • BEA-002900 Initializing self-tuning thread pool   HANGS

    Hi All,
    Trying to start a WLS 10.3.5 instance using jrockit and it is hanging on:
    Apr 6, 2013 2:08:39 AM CDT> <Info> <WorkManager> <BEA-002900> <Initializing self-tuning thread pool>
    end of trace
    I took a thread dump and see this:
    "[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'" id=15 idx=0x3c tid=3810 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: weblogic/work/ExecuteThread@0xa0c21480[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:162)
    ^-- Lock released while waiting: weblogic/work/ExecuteThread@0xa0c21480[fat lock]
    at weblogic/work/ExecuteThread.run(ExecuteThread.java:183)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
    "JFR request timer" id=16 idx=0x40 tid=3811 prio=5 alive, waiting, native_blocked, daemon
    -- Waiting for notification on: java/util/TaskQueue@0xa0c20b28[fat lock]
    at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method)
    at java/lang/Object.wait(J)V(Native Method)
    at java/lang/Object.wait(Object.java:485)
    at java/util/TimerThread.mainLoop(Timer.java:483)
    ^-- Lock released while waiting: java/util/TaskQueue@0xa0c20b28[fat lock]
    at java/util/TimerThread.run(Timer.java:462)
    at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method)
    -- end of trace
    ===== END OF THREAD DUMP ===============
    Done:
    1). Cleared TMP and CACHE directories and still does not solve the issue.
    Any ideas are appreciated.
    thanks

    Hi,
    we had same hang issue. Unfortunately we run behind VM.
    It was an issue with securerandom generation.
    We solved the issue as described here http://stackoverflow.com/a/2564406/2098832
    Also deleted the <server>/tmp directory before.
    Hope this helps.
    Casey

  • Pattern for Thread Pool?

    Hi
    i want to build a kind of download manager. The application should be able to handle some concurrent threads, each representing a download in progress.
    I thought i might be more efficient to reuse a download thread after the download has ended as to create a new thread each time (like the connection object for db queries). Is this right? If yes, i thought to build a thread pool that serves a limited number of threaded download objects as requested (am I on the right way?).
    Now, I have to basic problems: (a) is it right, that, if the run() method of a thread has ended, the whole thread gets destroved? if yes, how should i prevent the thread from being destroyed, so i can reuse it later on? Second (b) how would that pool mechnism look like, means, there must be some kind of vector where i put in and take out the threads.
    As you see, these are basic "pool" technique questions. So, I thought, maybe there is a design pattern that would give me the basic mechanism, Does anyone know such a pattern?
    Thanks for your help
    josh

    I thought i might be more efficient to reuse a
    download thread after the download has ended as to
    create a new thread each time (like the connection
    object for db queries). Is this right? If yes, iIt may be right, if creating new threads is wasting enough CPU cycles to justify the complication of a thread pool. Maybe for a high-load server it would be more efficient. You'll have to figure that out for your own specific application.
    Another good use for thread pools is to avoid putting time-consuming operations in ActionListeners, etc. Instead you can have them pass the task off to a thread pool, keeping the GUI responsive.
    Now, I have to basic problems: (a) is it right, that,
    if the run() method of a thread has ended, the whole
    thread gets destroved? if yes, how should i prevent
    the thread from being destroyed, so i can reuse it
    later on? Second (b) how would that pool mechnism look
    like, means, there must be some kind of vector where i
    put in and take out the threads. (a) You are right. Therefore, the worker threads should not exit their run() methods until interrupted. (b) Worker threads could check a job queue (containing Runnables, perhaps) and if there are none, they should wait() on some object. When another thread adds a new job to the queue, it should call notify() on the same object, thus waking up one of the worker threads to perform the task.
    I wrote a thread pool once, just as an exercise. You will run into a number of problems and design issues (such as, what should the worker threads do when interrupted, exit immediately or clear the job queue and then exit?) If you have any more questions, ask in this thead.
    Krum

  • Thread pool configuration for write-behind cache store operation?

    Hi,
    Does Coherence have a thread pool configuration for the Coherence CacheStore operation?
    Or the CacheStore implementation needs to do that?
    We're using write-behind and want to use multiple threads to speed up the store operation (storeAll()...)
    Thanks in advance for your help.

    user621063 wrote:
    Hi,
    Does Coherence have a thread pool configuration for the Coherence CacheStore operation?
    Or the CacheStore implementation needs to do that?
    We're using write-behind and want to use multiple threads to speed up the store operation (storeAll()...)
    Thanks in advance for your help.Hi,
    read/write-through operations are carried out on the worker thread (so if you configured a thread-pool for the service the same thread-pool will be used for the cache-store operation).
    for write-behind/read-ahead operations, there is a single dedicated thread per cache above whatever thread-pool is configured, except for remove operations which are synchronous and still carried out on the worker thread (see above).
    All above is of course per storage node.
    Best regards,
    Robert

  • Thread Pool Size

    What can be the maximum thread pool size used in java.
    What happens if i put up a thread pool size in range of 10k or 20k.
    how does affect system performance ???
    Its quite urgent for me to know. Can someone help out ???
    Regards
    Hrushi

    I'd say it depends on the machine you are running on, amount of memory and number of CPUs and such, not on Java itself. And with that many threads your implementation better be darn good in order not to be the bottleneck...

Maybe you are looking for

  • ITunes on Windows 8 Syncing Problems Solved!

    NOTE: I have only had this problem on Windows 8, not Windows 7, so if you're having trouble on Windows 7, this might not help you. If you are experiencing the issue where your device never fully syncs, disconnects halfway through, freezes after "wait

  • Can't "require builder" for Ruby.

    I have not the faintest clue how Ruby and gems work. I'm just trying to compile some software. The following fails: require 'rake' require 'rubygems' require 'builder' Complaining that it can't find a file for builder. This is on a fresh install of r

  • I would like to insert column headers into a Write labview measurment file

    I am looking for a simple way to add column headers to my saved data. I am working with dynamic data VIs and would like not to have to build several arrays to do this.

  • Continuous integration

    Hi - I am looking for good resources to implement the Continuous Integration (CI) to our MSBI project using TFS.  We have .sql scripts, SSIS packages and SSRS reports.  I got some idea on how to build using Build defintion but unsure about deployment

  • Operating system update

    I am running MAC OS X 10.6.8 but need 10.7.4 to download some software (Adobe After Effects trial). The problem is that there is no updates for this. Any help?