Wednesday, July 18, 2012

Tuning the default WorkManager on WebLogic Server


Hi Everyone,

Best Wishes...@@@ Hope you all are doing well ..... @@@

Today one of my friend came across scenario where he needs to tune weblogic default work manager. so today i am sharing few steps for tuning default work managers.

In my last post we have got brief idea of Work managers, now in this post we will talk about tuning of default work managers.

In WLS 8, we had the concept of Execute Queues, replaced by work-managers, starting with WLS 9. Well, it's got self-tuning, allows a large number of SLA combinations.

So lets Play with the default work-manager :)

The default work-manager, as its name tells, is the work-manager defined by default.Thus, all applications deployed on WLS will use it.

But sometimes, when your application is already in production, it's obvious you can't take your EAR / WAR, update the deployment descriptor(s) and redeploy it.

The default work-manager belongs to a thread-pool, as initial thread-pool comes with only five threads, that's not much.

If your application has to face a large number of hits, you may want to start with more than that.Well, that's quite easy. You've got two ways to do so.

Option 1) Modifying the config.xml

Just add the following line(s) in your 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>

Option 2) Adding some JVM parameters

Personally, that's my favorite option since I don't like when people go in a generated config file

and mess up with tags. If you're sure of what you're doing, that's ok, but it's safer the following way :

add the following option in your command line : -Dweblogic.threadpool.MinPoolSize=100

Personally, I decided to apply the change by adding the JVM parameter.

To do so, I just updated the startWeblogic (in Domain_home) script with the USER_MEM_ARGS line.
@REM WARNING: This file is created by the Configuration Wizard.
@REM Any changes to this script may be lost when adding extensions to this configuration.

SETLOCAL

set DOMAIN_HOME=F:\Oracle\Middleware\user_projects\domains\base_domain
set USER_MEM_ARGS=-Dweblogic.threadpool.MinPoolSize=100
call "%DOMAIN_HOME%\bin\startWebLogic.cmd" %*

ENDLOCAL
(Note : I'll recommend use Option 2 )


Reboot WLS and see the option has been taken into account  :) 

Wasn't so hard, was it ? :) 

feel free to write me on middlewaresolution1@gmail.com.

Enjoy Working with Middleware technologies.

Regards,
Ajinkya Vichare

ajinkya-vichare.blogspot.com

1 comment:

  1. Hi Thanks for your help,
    i'd like to create a Global Work Managers for my reports Server , can i just create in the console without redploying the whole thing.

    ReplyDelete