Skip to main content

Socket Muxer Execute Queue and Listen Thread

Troubleshooting is one of the vital areas in Weblogic server administration. Whether you are going to work as a support guy or Weblogic administrator, you should have good understanding of request flow like how a request is accepted and processed by the Weblogic server. It’s equally important if you are doing some troubleshooting related with thread and queues. So here I am going to explain basic concept of request flow, where I will explain how requests are accepted and processed by the Weblogic Server.
I am assuming you have basic understanding of thread & queues. If you don’t have then learn few basics of same and then you would be able to understand this article properly.

Few major components of Weblogic Server to understand complete flow are –
·                     ·         Listen Port
·                     ·         Listen Thread
·                     ·         Socket Muxer
·                     ·         Execute Queue
·                     ·         Execute Thread (or simply referred as Thread)

So here is the basic flow
·                     We know that we assign a Listen Port to each and every server whether it’s an admin   server or managed server.
·                     Whenever we start a server, it binds a Listen Thread to the Listen Port to listen for the incoming requests.
·                     Whenever a server receives any request on the assigned listen port, it takes and assigned request to the Listen Thread
·                     Listen Thread takes the requests and handover it to the Socket Muxer
·                     Socket Muxer takes the request and handover same to the execute queue (or to a work manager if configured)
·                     One of the available Execute Thread pick the request from execute queue to process, that execute thread process the request and freed for other new requests once processed the current request.  




Each Execute Thread execute the request and unavailable for other requests until it will complete the current request. Maximum time to process the current request is controlled by “Max Stuck Thread Time” parameter value, which is 600 seconds by default that means a thread will try to process the current request continue for 600 secs (5 minutes) max and if request doesn’t completed in 600 secs the Thread will declare as STUCK.

So generally during troubleshooting or monitoring if you see the Execute Queue length is getting increased consistently, that means your threads are working for long or got STUCK and not getting freed to take new requests and because you Listen Thread & Socket Muxer are still taking the new requests and assigning to the Execute Queues, so you will see queue length is increasing.

More on Socket Muxers

Socket Muxer are software module which is used to read incoming requests and put into execute queues.

There two types of Muxers –
·      
·                               Java Base Muxers
·                     ·         Native Muxers

Java base used pure Java to read from the sockets however Native use platform specific native libraries to read from socket. By default Native Muxer are enabled by default because it gives the good performance due to platform specific libraries. Sometimes Java base muxers required to enable due to certain issues, You can switch between both from admin console (Click on Server > Configurations > Tuning, select or deselect Enable Native IO option)   

For Native muxers, Weblogic by default defined a certain % (not sure but might be 33%)  of threads to act as Socket Muxer Threads and rest of the servers act as Execute Threads however for Java base muxers you can define from the admin console.

Comments

Popular posts from this blog

Node Manager Username and Password for Oracle HTTP Server 12c in a Standalone Domain

Start the Ohs Instance for 12C F:\OHS\user_projects\domains\base_domain\bin>stopComponent.cmd ohs1 Step:1 Stop the OHS component F:\OHS\user_projects\domains\base_domain\bin>stopComponent.cmd ohs1 Stopping System Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Reading domain from F:/OHS/user_projects/domains/base_domain Please enter Node Manager password: Connecting to Node Manager ... Successfully Connected to Node Manager. Killing server ohs1 ... Successfully killed server ohs1 Successfully disconnected from Node Manager. Exiting WebLogic Scripting Tool. Done Step:2   Invoke WLST offline F:\OHS\oracle_common\common\bin>wlst.cmd Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline> Step:3 Conne...

oracle.ohs.plugin.nodemanager.OhsProcessManagementPlugin$ProcessImpl buildIoException SEVERE: Failed to start the server ohs1 In New Installation of FMW 12.2.1.3 on Windows Server

Problem Summery: When we are trying start OHS instance it's failing with an error. Error: 29 Mar, 2018 10:30:22 PM IST> <INFO> <Server Implementation Class: weblogic.nodemanager.server.NMServer$ClassicServer.> <29 Mar, 2018 10:30:23 PM IST> <INFO> <Secure socket listener started on port 5556> <29 Mar, 2018 10:30:54 PM IST> <INFO> <base_domain> <ohs1> <Creating directory "F:\OHS\user_projects\domains\base_domain\system_components\OHS\ohs1\data\nodemanager"> Mar 29, 2018 10:30:54 PM oracle.ohs.plugin.nodemanager.OhsProcessManagementPlugin$ProcessImpl start INFO: Starting server ohs1 Mar 29, 2018 10:30:55 PM oracle.ohs.plugin.nodemanager.OhsRunCommand execute INFO: Running F:\OHS\ohs\bin\launch.exe F:\OHS\ohs\bin\httpd.exe -DOHS_MPM_WINNT -d F:/OHS/user_projects/domains/base_domain/config/fmwconfig/components/OHS/instances/ohs1 -f F:\OHS\user_projects\doma ins\base_domain\config\fmwconfig\c...

Avoid password prompt when using startComponent.sh to start OHS 12c

Step:1 Start Ohs With Password Prompt F:\OHS\user_projects\domains\base_domain\bin>startComponent.cmd ohs1 Starting system Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Reading domain from F:/OHS/user_projects/domains/base_domain Please enter Node Manager password: Connecting to Node Manager ... Successfully Connected to Node Manager. Starting server ohs1 ... Successfully started server ohs1 ... Successfully disconnected from Node Manager. Exiting WebLogic Scripting Tool. Done Step:2 Store the password for avoid ohs password F:\OHS\user_projects\domains\base_domain\bin>startComponent.cmd ohs1 storeUserConfig Starting system Component ohs1 ... Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Reading domain from F:/OHS/u...