Unbalanced total requests of execute thread

Hi,
I am in wls7.0sp1 running on win2k with 4 processors. when I monitor the managed
servers, I found out the total requests of the thread in default thread queue
varies a lot. the The servers were started couples days ago, the throughput are
around 200,000.
First, Socket Reader. There 2 of them have over 5000 requests, and couple less
than 100, and the rest just have 1 request.
Second, there is a thread always has "Read Multicast Msg Fragment" as the request,
my guessing is that this thread is dealing with the multicast, but it only has
less than 20 total requests. But from the monitor - cluster I can the fragment
received is over 50000.
Third, the rest of the threads are used by application. I have only one web application,
no stand alone app. so the requests are all from servelt/jsp. some threads have
more than 50000 requests, some only have 2 digits. one of the servers has some
threads have 0 requests.
why the usage of thread are not balanced?
Thanks

See answers inline
--dejan
Jen wrote:
what's the algorithm to hand the request to the threads? some are busy some are
starving.
I don't know what the algorithm for the dispatching of the requests is
-- you can ask someone from BEA about it.
Why do you think that some of the threads are starving? All idle threads
should be waiting on a lock and this only means that the are not
currently executing any requests. When a thread is waiting for a lock it
cannot be starving since it is not even scheduled for execution.
>
If i start my own threads on start up, and calls the ejb in the threads, does
the ejb be in my thread or use the default thread?
It's called in your thread. Although on the server BEA does not
recommend doing that, but we're using it and haven't seen any issues
with that.
"Deyan D. Bektchiev" <[email protected]> wrote:
The threads in the execute queue only wake up if there is a request that
has to be processed and until the thread is to process a request it is
not even scheduled for execution so there are no unnecessary context
switches.
The threads do consume some memory and the JVM has some overhead
associated with the number of threads to manage but this is probably
not
too much if you are creating a reasonable number of threads (we've run
in some cases with up to 200 threads for I/O bound applications).
Regards,
Dejan
Jen wrote:
If it always use that has been used thread, then if I add more threads
to the execute
queue it should not add extra context switch and decrease the performance,
that
way I won't need to worry about there is not enough threads during the
peak time.
"Deyan D. Bektchiev" <[email protected]> wrote:
This just means that your server is not under very heavy load and it's
just using some of its resources.
What advantages do you see in the balancing of the requests between
different threads in the same JVM?
If you had a cluster and the number of requests was not balanced on
a
server by server basis then it might be something to concerned of.
Dejan
Jen wrote:
Hi,
I am in wls7.0sp1 running on win2k with 4 processors. when I monitor
the managed
servers, I found out the total requests of the thread in default thread
queue
varies a lot. the The servers were started couples days ago, the throughput
are
around 200,000.
First, Socket Reader. There 2 of them have over 5000 requests, and
couple
less
than 100, and the rest just have 1 request.
Second, there is a thread always has "Read Multicast Msg Fragment"
as
the request,
my guessing is that this thread is dealing with the multicast, but
it
only has
less than 20 total requests. But from the monitor - cluster I can
the
fragment
received is over 50000.
Third, the rest of the threads are used by application. I have only
one web application,
no stand alone app. so the requests are all from servelt/jsp. some
threads
have
more than 50000 requests, some only have 2 digits. one of the servers
has some
threads have 0 requests.
why the usage of thread are not balanced?
Thanks

Similar Messages

  • 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)

  • 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

  • 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.

  • 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

  • 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

  • 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.

  • Weblogic Server Shutting down execute threads

    Weblogic 5.1 SP9 on Solaris.
    After upgrading to SP9 from SP8 we are observing a new message in our log during
    the START UP PROCESS. It seems that after performing a GC and during the creation
    of the connection pools we are receiving a message "Shutting down execute threads".
    Though Weblogic starts up ok after this and performs ok we are still concerned
    on what execute threads are shutting down?
    Any help in an explanation would be appreciated.
    <I> <GC> GC: After free/total=505281560/531955712 (94%)
    GC: After free/total=505281560/531955712 (94%)Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutting down execute threads
    Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutdown completed
    Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutdown completed

    could you post complete the log file
    right from the server startup to until WLS
    listens on http & SSL ports?
    Kumar
    Andy wrote:
    Weblogic 5.1 SP9 on Solaris.
    After upgrading to SP9 from SP8 we are observing a new message in our log during
    the START UP PROCESS. It seems that after performing a GC and during the creation
    of the connection pools we are receiving a message "Shutting down execute threads".
    Though Weblogic starts up ok after this and performs ok we are still concerned
    on what execute threads are shutting down?
    Any help in an explanation would be appreciated.
    <I> <GC> GC: After free/total=505281560/531955712 (94%)
    GC: After free/total=505281560/531955712 (94%)Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutting down execute threads
    Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutdown completed
    Wed Aug 08 18:08:33 EDT 2001:<I> <WebLogicServer> Shutdown completed

  • 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

  • How to Increase min number of executable threads in Weblogic 10.3.0

    Hi,
    I was trying to increase the Min number of executable threads using the following startup argument
    "set USER_MEM_ARGS=-Dweblogic.threadpool.MinPoolSize=30" in startWeblogic.cmd. But doing so haven't increased the "execute thread total count" to the desired number when I verified it in console.
    Kindly help me to configure this.
    PS: Changing the configuration file (config.xml) is not recommended.
    Thanks
    Prasanth

    In 10.3 usually work managers are used for this purpose. (http://download.oracle.com/docs/cd/E12840_01/wls/docs103/upgrade/compat.html#wp1117123)
    You can use the 8.1 thread pool if you want (http://download.oracle.com/docs/cd/E12840_01/wls/docs103/perform/appb_queues.html#use81)
    but generally work managers are the preferred way: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/config_wls/self_tuned.html
    Coming back to your original question:
    "I was trying to increase the Min number of executable threads using the following startup argument "set USER_MEM_ARGS=-Dweblogic.threadpool.MinPoolSize=30" in startWeblogic.cmd. But doing so haven't increased the "execute thread total count" to the desired number when I verified it in console."
    Can you add the option in the setDomainEnv file, located in the ${DOMAIN_HOME}/bin directory, for example,
    @REM *************************************************************************
    set WL_HOME=C:\bea\wlserver_10.3
    for %%i in ("%WL_HOME%") do set WL_HOME=%%~fsi
    set BEA_JAVA_HOME=C:\bea\jrockit_160_24_D1.1.2-4
    set USER_MEM_ARGS=-jrockit -Xms512m -Xmx512m -Xgc:throughput -Dweblogic.threadpool.MinPoolSize=100
    set SUN_JAVA_HOME=To check if it indeed shows the number of threads you can follow the steps presented here: http://m-button.blogspot.com/2009/02/tuning-default-workmanager-on-weblogic.html

  • 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.

  • Re:execute thread

    can any one tell me what is the diff between the execute thread total count and active thread and execute idle thread count in wblogic
    Thanks
    Gopi

    Hi,
    Please let us know if anything specific you wanted to know...
    ExecuteThreadIdleCount
    The number of idle threads in the pool. This count does not include standby threads and stuck threads. The count indicates threads that are ready to pick up new work when it arrives.
    ExecuteThreadTotalCount
    The total number of threads in the pool.
    ActiveThreadCount
    An array of the threads currently processing work in the active thread pool.
    Thanks
    Jay SenSharma
    Edited by: Jay SenSharma on Jan 26, 2010 10:16 PM

  • RMAN Restore Error - media recovery requesting unknown log: thread 1 seq 7

    Im using RMAN to copy a database to another server. The new server is IDENTICAL to the old one. By identical I mean it has the same sever name, ip address, operating system, Oracle version and directory structure.
    The new server already has the instance created, (same name as the old server instance, paths etc)
    The backup files have been manually restored to the new server, same locations as they were on the old one. ( RMAN did an automatic controlfile backup and also the archivelogs on the old server ).
    Ive restored the control file on the new server from the RMAN backup pieces.
    Ive catalogued the RMAN backup pieces on the new server.
    I know the last sequence available in the archivelogs backup by running on the new server :
    list backup of archivelog all;
    List of Backup Sets
    ===================
    BS Key Size Device Type Elapsed Time Completion Time
    5 14.43M DISK 00:00:03 11-MAY-11
    BP Key: 9 Status: AVAILABLE Compressed: NO Tag: TAG20110511T163502
    Piece Name: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\BACKUPSET\
    011_05_11\O1_MF_ANNNN_TAG20110511T163502_6WOC5833_.BKP
    List of Archived Logs in backup set 5
    Thrd Seq Low SCN Low Time Next SCN Next Time
    1 2 550217 10-MAY-11 556559 11-MAY-11
    1 3 556559 11-MAY-11 559776 11-MAY-11
    1 4 559776 11-MAY-11 560093 11-MAY-11
    1 5 560093 11-MAY-11 560794 11-MAY-11
    BS Key Size Device Type Elapsed Time Completion Time
    7 15.50K DISK 00:00:01 11-MAY-11
    BP Key: 10 Status: AVAILABLE Compressed: NO Tag: TAG20110511T163653
    Piece Name: C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\BACKUPSET\
    011_05_11\O1_MF_ANNNN_TAG20110511T163653_6WOC8PMP_.BKP
    List of Archived Logs in backup set 7
    Thrd Seq Low SCN Low Time Next SCN Next Time
    1 6 560794 11-MAY-11 560851 11-MAY-11
    So far its all going swimmingly well.
    Now I want to restore the datafiles and recover. So I ran :
    RMAN run { restore database; recover database; alter database open resetlogs; }
    This gave me the output below which goes great but I get a final error, I think the error is because its looking for an archive log thats not in the backup set, but it should be. However, I think SCN 560851 is for a log that hadnt been created yet on the old server when the backup was ran ?
    How do I address resolving the error ? Its worth pointing out log, "archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\ARCHIVELOG
    \2011_05_11\O1_MF_1_6_6WOK1X4W_.ARC recid=10 stamp=750881741" isnt on the old server either which is why its not in the backup set.
    I can do a alter database open reset logs but Id prefer to know why its failing.
    Any help would be much appreciated.
    RMAN> run { restore database; recover database; alter database open resetlogs; }
    Starting restore at 11-MAY-11
    using channel ORA_DISK_1
    channel ORA_DISK_1: starting datafile backupset restore
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set
    restoring datafile 00001 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\SAT\SYSTEM01.DBF
    restoring datafile 00002 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\SAT\UNDOTBS01.DBF
    restoring datafile 00003 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\SAT\SYSAUX01.DBF
    restoring datafile 00004 to C:\ORACLE\PRODUCT\10.2.0\ORADATA\SAT\USERS01.DBF
    channel ORA_DISK_1: reading from backup piece C:\ORACLE\PRODUCT\10.2.0\FLASH_REC
    OVERY_AREA\SAT\BACKUPSET\2011_05_11\O1_MF_NNNDF_TAG20110511T163507_6WOC5CM7_.BKP
    channel ORA_DISK_1: restored backup piece 1
    piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\BACKUPSET\2011_05_
    11\O1_MF_NNNDF_TAG20110511T163507_6WOC5CM7_.BKP tag=TAG20110511T163507
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:55
    Finished restore at 11-MAY-11
    Starting recover at 11-MAY-11
    using channel ORA_DISK_1
    starting media recovery
    channel ORA_DISK_1: starting archive log restore to default destination
    channel ORA_DISK_1: restoring archive log
    archive log thread=1 sequence=6
    channel ORA_DISK_1: reading from backup piece C:\ORACLE\PRODUCT\10.2.0\FLASH_REC
    OVERY_AREA\SAT\BACKUPSET\2011_05_11\O1_MF_ANNNN_TAG20110511T163653_6WOC8PMP_.BKP
    channel ORA_DISK_1: restored backup piece 1
    piece handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\BACKUPSET\2011_05_
    11\O1_MF_ANNNN_TAG20110511T163653_6WOC8PMP_.BKP tag=TAG20110511T163653
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
    archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\ARCHIVELOG
    \2011_05_11\O1_MF_1_6_6WOK1X4W_.ARC thread=1 sequence=6
    channel default: deleting archive log(s)
    archive log filename=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\SAT\ARCHIVELOG
    \2011_05_11\O1_MF_1_6_6WOK1X4W_.ARC recid=10 stamp=750881741
    unable to find archive log
    archive log thread=1 sequence=7
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 05/11/2011 18:15:42
    RMAN-06054: media recovery requesting unknown log: thread 1 seq 7 lowscn 560851
    RMAN>
    Edited by: user12173666 on 11-May-2011 10:28

    You need to do incomplete recovery i.e. to ask RMAN to restore/recover to some specific point in time. This is usually done with some UNTIL clause or SET UNTIL statement. Example in your case:
    SET UNTIL SEQUENCE 7;See http://download.oracle.com/docs/cd/B19306_01/backup.102/b14194/rcmsynta065.htm#RCMRF160.

  • 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

  • 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

Maybe you are looking for