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)

Similar Messages

  • Threads as Socket Readers

    What does mean by Socket Readers?
    How it improves the performance of Application by configuring percentage of threads as socket readers?
    Can someone please answer my questions?

    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)

  • Identifying Execute Queue 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)

  • Error message when access WLS: active sockets and socket readers configuration

    Hi,
    I got the following error when I tried to access the WLS using a program to get
    the mbeans data.
    This error happens when I have 3 or more servers running ( 1 admin server, 2 or
    more managed servers). With cluster with more than 2 servers running, this error
    also occurs.
    <Sep 10, 2001 8:35:01 PM CDT> <Warning> <JavaSocketMuxer> <There are: '3' active
    sockets, but the maximum number of socket readers allowed by theconfiguration
    is: '2', you may want alter your configuration.>
    I creased the socket readers from 33% to 66%, but I still got the same error.
    I'm using WLS version 6.0 sp2
    My configuration is:
    Execute Threads = 15,
    Socket Readers = 33% or 66%
    Does anyone know how to fix this ? I am really appreciate for any suggestions.
    thanks,
    Kieu

    thank you, I just found out about setting those sockets using command line options
    an hour ago. But thanks a lot.
    -Kieu
    Kaye Wilcox <[email protected]> wrote:
    Kieu,
    You could try increasing the number of execute threads, you can do this
    via
    the admin console on the <server> --> Tuning tab.
    See http://edocs.bea.com/wls/docs60/perform/WLSTuning.html#1104317 for
    guidelines on setting the thread pool size and the number of socket readers.
    Here is a link that talks about socket communication in a cluster
    http://edocs.bea.com/wls/docs60/cluster/features.html#1007001.

  • Error message on active sockets & socket readers configuration

     

    hi Kieu,
    I am having the same problem. Were you able to figure out why you had that
    problem and how you resolved that issue. I am seeing slow performance on client
    as well. I am assuming this could be the reason for slow performance.
    thanks,
    Zeeshan.
    "Kieu Tram" <[email protected]> wrote:
    >
    Hi,
    I got the following error when I tried to access the WLS using a program
    to get
    the mbeans data.
    This error happens when I have 3 or more servers running ( 1 admin server,
    2 or
    more managed servers). With cluster with more than 2 servers running,
    this error
    also occurs.
    <Sep 10, 2001 8:35:01 PM CDT> <Warning> <JavaSocketMuxer> <There are:
    '3' active
    sockets, but the maximum number of socket readers allowed by theconfiguration
    is: '2', you may want alter your configuration.>
    I creased the socket readers from 33% to 66%, but I still got the same
    error.
    I'm using WLS version 6.0 sp2
    My configuration is:
    Execute Threads = 15,
    Socket Readers = 33% or 66%
    Does anyone know how to fix this ? I am really appreciate for any suggestions.
    thanks,
    Kieu

  • Java client socket readers

              I'm running a cluster of 3 WL 6.0 servers and when I do a JNDI lookup to run methods
              on a remote interface stub on the client side it gives me the following:
              <Apr 26, 2001 2:16:34 PM MST> <Warning> <JavaSocketMuxer> <There are: '3' active
              sockets, but the maximum number of socket readers allowed by theconfiguration
              i
              s: '2', you may want alter your configuration.>
              I re-ran my client with the two following properties:
              -Dweblogic.system.executeThreadCount=5
              -Dweblogic.system.percentSocketReaders=60
              it still gives me the exception. How do I get this to work properly so I have
              as many socket readers as servers?
              Thanks in advance.
              

    Thanks,
              I had understood this wrong, I was configuring on the server, not the client
              application,
              it's all working well now.
              Cheers
              Sioux
              "Kumar Allamraju" <[email protected]> wrote in message
              news:[email protected]...
              > i.e. if percentSocketReaders = 50, and execute Threadcount is 20, 50% of
              20 = x?
              >
              > you will get x percentSocketReaders. You might want to tune this value ,
              > according to the above
              > formula.
              >
              >
              > Sioux France wrote:
              >
              > > Hi,
              > > I'm getting these errors too. I've enabled native IO, upped the number
              of
              > > Threads to 20 and the percentage of readers to 50% but I still get the
              error
              > > about 3 active sockets when I am only allowed 2 in a cluster of 3
              servers.
              > > Did you resolve this?
              > > Thanks
              > > Sioux
              > >
              > > "Kumar Allamraju" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > The following syntax was correct in 510. , not in 60 anymore.
              > > > I would suggest you to increase the execute Thread count & percent
              socket
              > > readers from
              > > > console.
              > > >
              > > > or else set the following from the command line.
              > > > -Dweblogic.ThreadPoolPercentSocketReaders
              & -Dweblogic.ThreadPoolSize..
              > > (i'm not 100%
              > > > sure)
              > > > --
              > > > Kumar
              > > >
              > > > "W. Wen" wrote:
              > > >
              > > > > I'm running a cluster of 3 WL 6.0 servers and when I do a JNDI
              lookup to
              > > run methods
              > > > > on a remote interface stub on the client side it gives me the
              following:
              > > > >
              > > > > <Apr 26, 2001 2:16:34 PM MST> <Warning> <JavaSocketMuxer> <There
              are:
              > > '3' active
              > > > > sockets, but the maximum number of socket readers allowed by
              > > theconfiguration
              > > > > i
              > > > > s: '2', you may want alter your configuration.>
              > > > >
              > > > > I re-ran my client with the two following properties:
              > > > >
              > > > > -Dweblogic.system.executeThreadCount=5
              > > > > -Dweblogic.system.percentSocketReaders=60
              > > > >
              > > > > it still gives me the exception. How do I get this to work properly
              so I
              > > have
              > > > > as many socket readers as servers?
              > > > >
              > > > > Thanks in advance.
              > > >
              >
              

  • Increasing Weblogic client Socket Readers etc

    How can you increase the number of socket readers on a client
    application which
    uses JMS, EJB and talks to multiple WLAS servers.
    I get the following message
    Muxer> <There are: '3' active sockets, but the maximum number of socket
    readers allowed by theconfiguration is: '2', you may want alter your
    configuration.>
    But I cant find out how to increase the socket readers or better yet can
    I use the native IO for Solaris and NT clients??

    Hi,
    You can control the number of threads and the precent of socket readers
    through the properties: weblogic.ThreadPoolSize and
    weblogic.ThreadPoolPercentSocketReaders. You would have to pass them to the
    jvm machine at startup for example:
    -Dweblogic.ThreadPoolSize=10 -Dweblogic.ThreadPoolPercentSocketReaders=50
    Guy
    "Larry Presswood" <[email protected]> wrote in message
    news:[email protected]..
    How can you increase the number of socket readers on a client
    application which
    uses JMS, EJB and talks to multiple WLAS servers.
    I get the following message
    Muxer> <There are: '3' active sockets, but the maximum number of socket
    readers allowed by theconfiguration is: '2', you may want alter your
    configuration.>
    But I cant find out how to increase the socket readers or better yet can
    I use the native IO for Solaris and NT clients??

  • Socket Readers

    Currently using WebLogic 6.1 SP2 on Win NT 4.0 with jdk 1.3.1. 2 servers in a cluster.
    The following message is seen.
    <ExecuteThread: '10' for queue: 'default'> <> <> <000000> <There are: '7' active
    sockets, but the maximum number of socket readers allowed by the configuration
    is: '6', you may want to alter your configuration.>
    How do we ensure our configuration is correct? Whenever this message is seen and
    the servers need to start. If we do not restart them, after a while they will
    hang and we need to restart them. Is there any way to resolve this issue? Thanks.

    Hi,
    Thanks for your info on Native IO.
    There is a JVM error message thrown when we are trying to do the thread dump.
    From the JDK website, we realise it is a bug for jdk 1.3.1. Thanks.
    Regards,
    Ai Ling
    Arunabh Hazarika <[email protected]> wrote:
    When native i/o is used, there are a fixed number of threads that are
    dedicated to reading
    incoming requests from clients. These threads are non-blocking i.e. they
    do not block
    waiting for data to arrive at a socket. When using Java i/o, the threads
    block waiting for
    data to arrive at a socket. In this case, if the number of sockets opened
    is greater than
    the number of threads available to read them, data on the remaining sockets
    will remain
    unread, until a thread becomes available to read it and response time
    will increase. This is
    basically what the message means.
    It is not surprising that performance has degraded by turning off native
    i/o. The message is
    not the problem - turning off native i/o is.
    I do not recall there being a problem with taking thread dumps with JDK
    1.3.1 - what
    indicates that the thread dump is not complete?
    Arunabh
    apple wrote:
    Hi Arunabh,
    Is this message critical? As we encounter this message, the server'sperformance
    is very slow. Without this message, the access to the server is muchfaster. We
    will like to know whether we can ignore this message or this messagehas any implication
    to our servers.
    As for your proposal to enable the native io and take thread dump,we have already
    done that. But due to our jdk version used, we are not able to getthe full thread
    dump.
    Thanks.
    Regards,
    apple
    Arunabh Hazarika <[email protected]> wrote:
    To answer your second message first, yes, this message comes when
    native
    i/o is
    disabled. For the first problem, I am not sure how disabling nativeio
    would help
    resolve a server hang - Please take a thread dump when the serverhangs
    with native
    i/o enabled and post it here.
    Thanks,
    Arunabh
    apple wrote:
    Hi Arunabh,
    Our application server will use up the threads very fast and not
    releasing
    them
    after usage, causing our servers to hang once we enable native io.Thus we have
    no choice but to disable the native io. Is there any resolution
    for
    this? Is it
    due to we disable native io which cause the following message to
    appear?
    <ExecuteThread: '10' for queue: 'default'> <> <> <000000> <Thereare:
    '7' active
    sockets, but the maximum number of socket readers allowed by the
    configuration
    is: '6', you may want to alter your configuration.>
    Thanks for your prompt reply.
    Regards,
    Apple
    Arunabh Hazarika <[email protected]> wrote:
    It looks like you have native io disabled. Is there a reason why?
    Arunabh
    apple wrote:
    Currently using WebLogic 6.1 SP2 on Win NT 4.0 with jdk 1.3.1.
    2
    servers
    in a cluster.
    The following message is seen.
    <ExecuteThread: '10' for queue: 'default'> <> <> <000000> <There
    are:
    '7' active
    sockets, but the maximum number of socket readers allowed by
    the
    configuration
    is: '6', you may want to alter your configuration.>
    How do we ensure our configuration is correct? Whenever this
    message
    is seen and
    the servers need to start. If we do not restart them, after a
    while
    they will
    hang and we need to restart them. Is there any way to resolve
    this
    issue? Thanks.

  • 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

  • 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

  • Using Threads And Sockets

    Hello,
    I want to create a program that can send 2 or more files through the socket to the same client at the same time. Is it possible? I am trying to use threads to do this but I am not sure what to do in those threads. Should I send the socket to the thread class and create BufferedReader and DataOutputStream again in the thread?
    Also should I create threads in the client-side?
    Thanks
    Edited by: bcaputcu on May 18, 2010 2:19 AM

    bcaputcu wrote:
    Hello,
    I want to create a program that can send 2 or more files through the socket to the same client at the same time. Is it possible?No. At least not in the way you're thinking.
    I am trying to use threads to do this but I am not sure what to do in those threads. Should I send the socket to the thread class and create BufferedReader and DataOutputStream again in the thread?No, because you can't do that. The socket won't create multiple streams for your threads.
    Also should I create threads in the client-side?No.
    You need to send the files one at a time. While you could basically send the data interleaved, it would still only involve only one thread, one socket and one set of streams. And it would be a silly thing to do.

  • 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

  • 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

Maybe you are looking for

  • Automatic invoice release for services

    Hi Gurus, I am facing this problem only for services PO, not for material PO. I have a price difference in the invoice verification, so the document is block. Then I change the PO price so as to eliminate the difference.  In this moment the PO and th

  • Wrong number of arguments in constructor

    constructor define as follows, public class Fig { public void Fig(int x, int y, int width, int height, Color line_color, Color fill_color, int nHands) i invoke this constructor as follows, Fig curFig = new Fig(20,20,20,20,Color.blue,Color.red,6); the

  • ${domain_url} resolves to the secondary node's address

    Hi, we are running BPEL 10.1.3.5 on 2 separate servers (non clustered) sharing one dehydration store. We have BPEL processes that calls other BPEL processes and this has been in production for a few years with no issues. Since the upgrade to 10.1.3.5

  • Cannot install itunes update

    When using itunes recently a pop up informed me that there was an update available. I down loaded the update and when I tried to run it I get a windows message "The Windows Installer Service could not mbe access.  This can occur if you are running Wi

  • Initial ALV output display

    Hello, I have one query witl regards to ALV output. After entering data in the selection screnn my ALV output gets displayed and there is no issue with it. The ALV is in display mode and if i click on the change button the ALV becomes editable. So fa