Max no of execute threads in 4.5

Hi,
We have set the no of execute threads in 4.5.1 to >700. During start up of
the weblogic server, we get the following message:
!!!!!!!!!!!!!!!!!!!!!Property
weblogic.system.executeThreadCount has value: 775 > max: 400 setting value
to 400
Does WebLogic not allow the no of execute threads to be more than 400?
Thanks
Gaurav

Thanks for that info. That was very helpful.
Gaurav
Wei Guan <[email protected]> wrote in message
news:[email protected]...
400 is a hard-coded upper limit. There is no way you can change it.
From my understanding, ExecuteThreads => UserConnections + ConnPoolSize isa
confusing "rules of thumb".
Number of threads depends on the average request processing time, average
waiting time that your users can accept and average concurrent users. For
Internet application, nobody wants to wait, so, we can assume average
waiting time equals average processing time (this is the mininum waiting
time).
In order to find out how many threads you need, first find out the average
reqeust processing time of your systems. Secondly, find out how many
concurrent users you will have, in your case, it is 100. Keep in mind not
all users send requests to WLAS at the same time. There is a ratio ofnumber
of concurrent users to number of concurrent requests within the average
request processing time. Statistically, the higher the number ofconcurrent
users, the higher this ratio. Normally, this ratio can range from 1 to 20
(Sorry, I do not have any research paper, however, this is a typicalrandom
processing problem). If you have a very powerful machines and the average
processing time is very low, this ratio can be even higher (for example,
your average processing time is 1/2 seconds, and user waiting time is 2
seconds). Threads likes employees in MacDonnald. The number of customersin
MacDonnald likes concurrent users. Customers who actually waiting to be
served is like current requests. If the number of employees equals the
number of customers in MacDonnald, you will see MacDonnald stocks willlike
trash within couple of days. If the number of employees equals the numberof
customers waiting to be served, you will see the stocks will be trashwithin
couple weeks.
Since 100 is a medium size number, let's take 4 as the ratio, 100/4 = 25.
So,
there might be 25 concurrent requests within your average requestprocessing
time. How many threads you need to process 25 concurrent requests? 25!
Start with 25 and monitor weblogic server. If CPU utilization is low andthe
number of requests in WLAS request queue is low, decrease this number. If
CPU utilization is very high and the number of requests in WLAS requests
queue is high, increase this number. Tuning WLAS needs patience and
carefulness.
The default of threads is 15. Normally, WebLogic suggested use 15 to 60
threads.
Large number of threads will not buy you anything. It simply creates lotsof
idle threads and wastes systems resources to do context switching. Those
threads like extra employees in MacDonnald. MacDonnald has to pay them$$$.
One of reason why private companies are more efficient and profitable than
government is that private companies try their best to increase that
"ratio".
I guess, "400" by WebLogic is a way that WebLogic prevents your fromrunning
your WebLogic Server likes a state-owned enterprise where employees can
enjoy coffees at their office most of the time. I guessed :-).
You just have 100 users, where 600 connections are coming from???
My 2 cents.
Cheers - Wei
Gaurav Khanna <[email protected]> wrote in message
news:[email protected]...
Yep,
We have a 4 processor machine and 600 connections and 100 concurrentusers.
BTW, is 400 the upper limit and is that specified by WebLogic or the OS?
Thanks
Gaurav
Srikant Subramaniam <[email protected]> wrote in message
news:[email protected]...
Yes, there is an upper limit (as you discovered)! Any reason why you
would
want to have 700 executeThreads?
Srikant.
Gaurav Khanna wrote:
Hi,
We have set the no of execute threads in 4.5.1 to >700. During start
up
of
the weblogic server, we get the following message:
!!!!!!!!!!!!!!!!!!!!!Property
weblogic.system.executeThreadCount has value: 775 > max: 400 settingvalue
to 400
Does WebLogic not allow the no of execute threads to be more than
400?
>>>>
Thanks
Gaurav

Similar Messages

  • How do you modify the default Execute thread count in Weblogic Server 9.2?

    How do you modify the default Execute thread count in Weblogic Server 9.2?
    How can you tune the starting number of weblogic.ExecuteThread on server startup and/or set minimum number?
    Is there an option from the console?
    Please let me know.
    Thanks

    Self tuning will automatically manage the threads but however you can still control the min and max by adding the min and max values for each instance either directly adding in config.xml or through JVM settings
    1) Modifying the config.xml
    Just add the following line(s) to each server definition :
    <server>
    <name>AdminServer</name>
    <self-tuning-thread-pool-size-min>100</self-tuning-thread-pool-size-min>
    <self-tuning-thread-pool-size-max>200</self-tuning-thread-pool-size-max>
    </server>
    2) Adding some JVM parameters
    It's safer the following way :
    add the following option in your command line : -Dweblogic.threadpool.MinPoolSize=100
    Regards
    RR

  • Query Regarding Execute Thread Count

    Hi,
    My understanding of Execute Thread Count is the threads which are assigned to service
    requests coming to Weblogic Server.
    In our current architecture a request for generating report is directed to EJB method
    which makes a call to another Server (Report Server for executing reports), the report
    Server in turn calls the EJB residing on Weblogic Server for getting the data.
    So, is my assumption correct that with our current architecture we are limited to
    concurrency of Execute Thread Count -1. (Every request for report will consume 2
    Excute threads, and others will have to wait till the first request gets completed
    and 2 threads are freed).
    I also read from the postings that Weblogic takes some of the threads, so it actually
    will be limited to (Execute thread count - Weblogic Held- 1).
    Please corect me if I am wrong.
    Thanks and Regards
    Rashmi

    Hi,
    Thanks very much for the suggestion. I tried, and it is using 2 Execute Threads.
    Thanks
    Rashmi
    "Dave Martin" <[email protected]> wrote:
    >
    Rashmi:
    If you are interested in answering the question rigorously, why not just
    throw a
    fake exception along both the report generation path and the runReport method
    of
    the ReportServer, then record their stack traces to a file for comparison?
    From the sounds of it, your app wants to make the actual report generation
    asynchronous
    from the post of the reporting request. If they're really asynchronous,
    then your
    ReportServer must have some kind of blocking queue that will "wake up" when
    it has
    work to be done. Depending on how you implemented this, your runReport
    method may
    not be running a WebLogic execute thread at all.
    Seems to me that you should be thinking of this as consuming one execute
    thread regardless.
    Even if the two pieces of work are asynchronous, the first thread finished
    its work
    at the point that it posts to the second thread (at least, per your description).
    So at any one time, at max one execute thread is being consumed per request.
    But capture the stack traces and have a look for yourself.
    Dave Martin
    "Rashmi S" <[email protected]> wrote:
    Hi,
    Thanks for your reply.The reason why I say 2 threads will be consumed is
    as follows
    1. First execute thread will be used for the request to Weblogic Server
    to run the
    report originating from a client.
    2. Now, within the ReportServices EJB there is a call to Report Serverto
    run the
    report. The running of report is done on the Report Server which is ona
    separate
    m/c. Within the runReport method of the Report Server ,the data is fetched
    for the
    report by making a context look-up of another session EJB which fetches
    the data.
    So, the second Execute thread will be consumed for executing the EJB that
    fetches
    the data.
    Am I correct?
    Thanks and Regards
    Rashmi
    "Cameron Purdy" <[email protected]> wrote:
    Incoming requests (from outside the server) use one thread for the duration
    of their processing. Previous to their processing they are queued until
    a
    thread is available. So you would use one thead per concurrent request,
    not
    two. Otherwise, it sounds right.
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    Clustering Weblogic? You're either using Coherence, or you should be!
    Download a Tangosol Coherence eval today at http://www.tangosol.com/
    "Rashmi S" <[email protected]> wrote in message
    news:[email protected]...
    Hi,
    My understanding of Execute Thread Count is the threads which are assignedto service
    requests coming to Weblogic Server.
    In our current architecture a request for generating report is directedto EJB method
    which makes a call to another Server (Report Server for executingreports), the report
    Server in turn calls the EJB residing on Weblogic Server for getting
    the
    data.
    So, is my assumption correct that with our current architecture we arelimited to
    concurrency of Execute Thread Count -1. (Every request for report willconsume 2
    Excute threads, and others will have to wait till the first request
    gets
    completed
    and 2 threads are freed).
    I also read from the postings that Weblogic takes some of the threads,so
    it actually
    will be limited to (Execute thread count - Weblogic Held- 1).
    Please corect me if I am wrong.
    Thanks and Regards
    Rashmi

  • How to Kill Specific Execute Threads

    Hi.
    Through our application server, we noticed that there were some memory issues
    where the memory usage would rapidly increase from ~ 15Mb to the max heap size.
    Issuing a few thread dumps, we realized that there was a specific thread that
    was churning. This was b/c someone sent a large request in that generated a lot
    of data.
    Anyways, since we couldn't bounce the weblogic server, we had to wait until the
    request ended. Since we know the specific thread that was assigned to that job,
    is there a way to kill the request associated with a specific execute thread and
    reallocate back to the thread pool? We're running weblogic 6.1sp4. I think the
    executequeueruntime bean just gives me back the current configuration of the all
    the threads in the specific queue, which doesn't help me here.
    Thanks.
    --Selena

    Selena,
    how about get the ExecuteQueueRuntimeMBean and get all the execute
    threads (getExecuteThreads() which returns an array of ExecuteThreads )
    and since you know the thread id that is causing the bottleneck, you
    could kill that thread.
    thanks,
    -satya
    Selena wrote:
    Hi.
    Through our application server, we noticed that there were some memory issues
    where the memory usage would rapidly increase from ~ 15Mb to the max heap size.
    Issuing a few thread dumps, we realized that there was a specific thread that
    was churning. This was b/c someone sent a large request in that generated a lot
    of data.
    Anyways, since we couldn't bounce the weblogic server, we had to wait until the
    request ended. Since we know the specific thread that was assigned to that job,
    is there a way to kill the request associated with a specific execute thread and
    reallocate back to the thread pool? We're running weblogic 6.1sp4. I think the
    executequeueruntime bean just gives me back the current configuration of the all
    the threads in the specific queue, which doesn't help me here.
    Thanks.
    --Selena

  • Constant number of execute threads in weblogic

    Hi all,
    I need help in understanding that why do i have number of execute threads as constants(in number 50) while taking the thread dump.
    Why does this thread count remain constant and what can be the possible cause for the same .
    plase provide some pointers to do the RCA for it .
    Thank you

    If you have enough idle execute threads at a point of time, then it can be used by weblogic server to process a particular request. During heavy load times having more number of execute threads can be helpful as the requests would not starve particularly when the requests are long running(requiring more time to finish). Each thread adds to the memory required. Also the number of execute threads should not be more than the number of connection pool max capacity to avoid requests starving for connections. If the threads remains idle and are not being used(as load is not that high), then the utilization is low ie. those many execute threads are not required.

  • Why do I get "Evaluation Expired" message in MAX with Switch Executive

    Why do I get �Evaluation Expired� message in MAX with Switch Executive on a PXI rack, which has a �Ghosted� image from and identical PXI rack(no problem with this PXI rack), when logged in as USER in Windows2000, but not when logged in as a Local Administrator. When logged in as Administrator in Windows2000 running a TestStand sequence, using a �C� code action step calling the nise.dll is ok, but not when logged in as local user. The alias switch name is unknown.

    1.0.4.109 is a dll version number where as 1.0.2 is a NISE version number. The dll version number does not always line up with the product version number.
    NISE 1.0 has a dll version of 1.0.1.109
    NISE 1.0.1 has a dll version of 1.1.4.1
    NISE 1.0.2 has a dll version of 1.2.4.7
    NISE 2.0 has a dll version of 2.0.0.45154
    The best way to find the product number is to launch the application and click on Help and About. You NISE version is probably 1.0 and NISE 1.0.2 will fix your licensing problem.

  • Clearing a Stuck Execute Thread

    HI.
    If you get a stuck execute thread, is there anyway of clearing it or rolling it back so the action (a POST in this case) can be repeated again?
    STUCK] ExecuteThread: '16' for queue: 'weblogic.kernel.Default (self-tuning)'
    684959
    weblogic.servlet.internal.ServletRequestImpl@da2109[ POST /ols/uds/request HTTP/1.0 Accept: image/gif, image/x-xbitmap,
    image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint,
    application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap,
    application/x-ms-application, */* Referer: https://www.workcoverqld.com.au/ols/uds/file Accept-Language: en-au
    Content-Type: application/x-www-form-urlencoded UA-CPU: x86 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT
    5.1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Content-Length: 260 Pragma:
    no-cache Cookie: JSESSIONID=Tsh3LLqRZrn0pYf4hdyrBbtLTxWf2sVg2Q8LBLgYpvrTThy9LYlJ!1280830650 X-Forwarded-For:
    202.158.241.132 Connection: Keep-Alive Proxy-Client-IP: 202.158.241.132 X-WebLogic-KeepAliveSecs: 25
    X-WebLogic-Request-ClusterInfo: true x-weblogic-cluster-hash: eu0SzdBVUqV5a6fkg3X2d1IDltA ]

    Hi,
    We can get more info about execute threads by getting thread dumps. Below are few ways to get
    1. From weblogic admin console. Servers --> Monitoring --> Performance --> Dump Thread.
    2. On the unix box enter the command "kill -3 <pid>".
    3. Using WLST
    java weblogic.WLST
    >connect('<adminUsername>','<adminPassword>','<t3://adminServerUrl:port>')
    >threadDump('true','VASLog.txt','<ServerName>')
    >exit()
    4. Using welogic.Admin command tool
    java weblogic.Admin -adminurl t3://<adminServer>:<port> -username <adminUsername> -password <adminPassword> THREAD_DUMP
    Except for point 3, all the output is written to "<ManagedServerLog>.out" file.
    Thanks.
    Vijay Bheemineni.

  • Alternative to WebLogic 8.1 Execute thread Qs in Websphere 6.1

    Hi All,
    We are in the process of migrating from WebLogic 8.1 to WAS 6.1. We have few application in WebLogic that use custom execute threads so that trafic is moved to user defined thread instead of default thread pool. This is done in weblogic using dispatch-policy tag under weblogic.xml.
    I appreciate if someone could help me understand the alternative of doing same thing in WebSphere 6.1.
    I was going thru some site searching and came across Work Manager that does the same thing which is new to me but does similar job.
    Thanks in advance

    Hi All,
    We are in the process of migrating from WebLogic 8.1 to WAS 6.1. We have few application in WebLogic that use custom execute threads so that trafic is moved to user defined thread instead of default thread pool. This is done in weblogic using dispatch-policy tag under weblogic.xml.
    I appreciate if someone could help me understand the alternative of doing same thing in WebSphere 6.1.
    I was going thru some site searching and came across Work Manager that does the same thing which is new to me but does similar job.
    Thanks in advance

  • Identifying Execute Threads as Socket Readers

    Hi All,
    Preface: I am trying to identify at any given instance the percentage of
    socket reader threads that are in use - this will help me to identify when
    all threads are in use and unable to service user requests. Thus my goal is
    to identify threads that are socket readers and whether they are active or
    idle.
    Through JMX I can obtain an instance of each
    weblogic.management.runtime.ExecuteThread, which lists the same information
    that you see in the console if you drill down to the thread level, for
    example:
    mydomain> Servers> myserver> Active Execute Queues> default> Execute Threads
    That information includes:
    - thread number
    - total requests
    - last request
    - current request
    - transaction
    - user
    - is the thread idle?
    Now my question is from this information can you identify which of these
    threads are being used as socket readers?
    Here are some excerpts from my JMX calls:
    Name: ExecuteThread: '0' for queue: 'default'
    Execute Queue Runtime Name: default
    Current Request: null
    Last Request: Http Request: /bookstore/en/authors/showauthors.jsp
    User: null
    Is Idle?: true
    Name: ExecuteThread: '15' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: null
    Last Request: Scheduled Trigger
    User: null
    Is Idle?: true
    Name: ExecuteThread: '26' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: null
    Last Request: ListenRequest for a new connection on: 'Socket
    addr=127.0.0.1,port=2061,localport=7001]'
    User: null
    Is Idle?: true
    Name: ExecuteThread: '59' for queue: 'default'
    Execute Queue Runtime Name:default
    Current Request: Socket Reader Request
    Last Request:
    weblogic.transaction.internal.ServerCoordinatorDescriptor$2@138786
    User: null
    Is Idle?: false
    It would appear that the "ListenRequest" last request would identify a
    socket reader, only I have 60 threads in my default execute queue with 70%
    dedicated to socket readers and the number of threads that say their last
    request was "ListenRequest ..." is only 5.. Furthermore there is only one
    "Socket Reader Request" identified thread.
    Are threads identified as socket readers permanently or constantly reused
    for whatever purpose is required (with a cap of use based off of the socket
    reader perspective)?
    Thanks in advance for your help!
    Steve

    Hi Achhi,
    Socket Reader Threads are the Threads which are responsible for reading the incoming request data. We can divide the Socket reader threads in two categories:
    Pure Java Socket Reqders: The pure-Java socket reader implementation, where the socket reader threads continually poll all opened sockets to determine whether they contain data to be read, even if the sockets have no data to read. (From Performance Point This is Not Good that the Sockets will be in Opened Mode even if there is no Data to read)
    Native Socket Readers: (These are the Dafault Socket Readers) The native IP socket reader provided by the host machine's operating system, where the socket reader threads target only active sockets that contain data to be read. Native socket readers never poll sockets because they are immediately notified when a socket needs to be serviced. For Better Performance You should always prefer using Native Socket Readers.
    To Enable Native Socket Readers You can Login to AdminConsole--->Servers ---><SERVER_NAME>--->configuration (Tab)--->Tuning (SubTab)---> "Enable Native IO" (This checkbox must be checked)
    Still If you want to use the Java Socket Readers .... still you can improve the performance of socket communication by configuring the proper number of socket reader threads for each server instance. For best performance, the number of socket reader threads in WebLogic Server should equal the potential maximum number of opened sockets.
    Thanks
    Jay SenSharma
    http://weblogic-wonders.com/weblogic (WebLogic Wonders Are here)

  • Log of execute thread pool status

    hi guys
    We are performing some performance analysis on a application and would
    like to log the status of the execute thread pool periodically to a
    log file.
    The performance tests run for a extended period of time and hence
    console is not proving to be effective in monitoring the behaviour
    over a long period of time.
    What other alternatives exist if I want to do this.
    Thanks for your time
    anand

    thanks guys,
    I found an answer in one of rob wollens old post.
    http://dev2dev.bea.com/resourcelibrary/utilitiestools/index.jsp
    Sorry for posting without doing a little research
    ~anand

  • Configuring Execute Thread Count

    Hi,
    I am working on a webapp thats using Weblogic 8.1 (SP2) as the application server.
    The admin server for Weblogic currently provides 2 execute threads as default.
    However I was wondering if I can configure the admin server for a higher number
    of execute threads.
    I have the following questions:
    1.> Does configuring the number of threads for the admin sever provide any additional
    value? has any one come across a big application where more than 2 execute threads
    are required for the admin server?
    2.> If yes, is it possible to configure the number of execute threads for the
    admin server? I did some search on the bea website and didnt find anything that
    explicitly says that the property is configurable. Is this true?
    3.> If it is configurable, then how do we go about setting it up?
    If anyone has worked around this and can provide me with any information or references,
    that would be great.
    Thanks

              Sriram,
              Take a look at the following URL for setting the thread count in WLS 6.1
              http://edocs.bea.com/wls/docs61/perform/WLSTuning.html#1112343
              Chuck Nelson
              Developer Relations Engineer
              BEA Technical Support
              

  • Kill Execute Thread

    Is there a way to kill specific Execute Threads. We are in a situation when an
    MDB would not acknowledge specific messages and those MDBs(which run on default
    execute queue) will not terminate. We would like to kill those threads when we
    want to undeploy the app. IF there are MDBs running on other threads, then the
    app would not end gracefully. See post
    http://newsgroups.bea.com/cgi-bin/dnewsweb?utag=&group=weblogic.developer.interest.jms&xrelated=10750&cmd_thread_next.x=45&cmd_thread_next.y=11
    So the question: Is there a way to kill specific execute threads thru JMX or some
    other way?
    Thanks
    Raj

    What do you mean by "executes a script"? Is this execing a shell or is it just running some Java code?
    You can't kill a Thread if it doesn't want to be killed. The deprecated Thread.stop method will atempt to cause an asynchronous ThreadDeath exception in the thread but this is very dangerous as it can leave shared objects - including system library objects - in an unstable and unusable state.
    The preferred mechanism is cooperative termination whereby you use the Thread.interrupt method to indicate to the target thread that it should cease what it is doing, when it is safe to do so. The target thread must be responsive to interrupt requests either by directly checking Thread.interrupted, or by using methods that are themselves responsive to interrupts (typically blocking methods that will throw InterruptedException if interrupted). Some blocking methods (mainly IO operations) won't respond to interrupt, nor does the acquisition of a monitor lock, so there are never any guarantees. If the thread can stuck in an "endless loop" then something in that loop needs to check for interrupts.

  • Reclaiming stuck execute threads

    Does anyone out there know of a setting in WLS 7 where you can tell it to reclaim
    an execute thread that has been stuck for a while? There are settings to detect
    stuck threads, but I would like it to reclaim (kill stuck one and create a new
    one and add back to execute queue) that stuck thread after a set amount of time.
    Will it already do this on its own; am I just not waiting long enough?

    Hi Chris,
    "Chris" <[email protected]> wrote in message
    news:3eb143e6$[email protected]..
    Does anyone out there know of a setting in WLS 7 where you can tell it toreclaim
    an execute thread that has been stuck for a while? There are settings todetect
    stuck threads, but I would like it to reclaim (kill stuck one and create anew
    one and add back to execute queue) that stuck thread after a set amount oftime.
    In Java there is no way to "kill" a stuck thread, and there is a good
    reason for this.
    The feature you are taking about is for diadnistic purposes
    and should be used as such.
    Will it already do this on its own; am I just not waiting long enough?If it's really stuck, you have to get a thread dump and find out
    why thread stuck. You can get a thread dump by pressing
    <Ctrl+Break> in Widows shell or sending kill -3 to the server
    process under Unix.
    Regards,
    Slava Imeshev

  • Why are the weblogic.kernel.Default Execute Threads used by WLS Kernel

    In my Admin Console, it's displaying 10 out of the 15 weblogic.kernel.Default Execute Threads are used by the WLS Kernel user. The total requests column for these threads are showing 0. The other 5 threads are showing 20K to 40K requests. Why is the WLS Kernel users hogging these threads and not allowing the applications to use them?

    Hi,
    As work enters a WebLogic Server, it is placed in an execute queue. This work is then assigned to a thread within the queue that performs the work.
    By default, a new server instance is configured with a default execute queue, weblogic.kernel.default, that contains 15 threads.
    Go through the following link and find the usefull information on this issue.
    http://e-docs.bea.com/wls/docs81/ConsoleHelp/domain_executequeuetable.html
    Regards
    Anilkumar kari

  • Number of execute threads

    Is there a limit to the number of execute threads in the Weblogic Server
    5.x.
    (4.5.x had a limit of 400).
    Thanks
    -Rama

    That limit still stands ...
    Srikant.
    Rama Penumarti wrote:
    Is there a limit to the number of execute threads in the Weblogic Server
    5.x.
    (4.5.x had a limit of 400).
    Thanks
    -Rama

Maybe you are looking for