In March 2018, support for creating and updating Work Managers was added to the WebLogic plugin for FlexDeploy. For users of the createOrUpdateWeblogicConfig operation, the only change needed is to add new Work Manager property file(s) in source control system. The WLConfig operation will process Work Managers after completing the JMS, DataSource, and EIS Entry operations. For users that don’t want to process JMS, DataSource, EIS and Work Manager entries together, the new createOrUpdateWorkManagers operation can be used.
Here is an example of build and deploy workflow.
Build Workflow
This workflow checks the property files out of source control and saves them as artifacts. Steps of the workflow are…
- Built-in workflow SCM-ExportSource which will use appropriate export operation based on Project’s SCM Type selection. You can instead use specific operation like Git – cloneProjectSources if you are using Git as SCM.
- File – saveArtifacts operation. Note that we are using variable for Source Subfolder. This is necessary as project may be configured with or without checkout folder and there are might other folders in exported folder structure. This allows us to just capture configuration files as Artifacts.
Deploy Workflow
This workflow executes the property files using the WLConfig operation. You can use the createOrUpdateWorkManagers operation if you only want to process Work Managers. Steps of the workflow are…
- Oracle WebLogic – createOrUpdateWeblogicConfiguration operation. This operation will detect all WebLogic configuration files and process them appropriately.
Work Managers and the associated Max and Min Threads constraints, Capacities, and request classes can be managed through the property file configuration. Fair Share, Response Time, and Context Request classes are all supported. The artifact used to store the settings for these items is a property file. Here is an example property file to help explain the different settings.
#Pound signs make comments. WorkManagerList=myWorkManager myWorkManager.Targets=AdminServer,SOA_Cluster myWorkManager.MaxThreads=5 myWorkManager.MinThreads=1 myWorkManager.CapacityCount=3 myWorkManager.StuckThreadBehavior=Manual myWorkManager.StuckThreadCount=23 myWorkManager.MaxStuckThreadTime=12 myWorkManager.ResumeWhenUnstuck=false myWorkManager.Notes=This work manager was made by FlexDeploy. #Pick at most one of these. #myWorkManager.FairShareRequest=50 #myWorkManager.ResponseTimeRequest=250 myWorkManager.ContextRequestList=contextRequest1,contextRequest2,contextRequest3 #you can provide UserName, GroupName, and/or RequestClassName for each Context Request in the list. myWorkManager.contextRequest1.UserName=weblogic myWorkManager.contextRequest2.GroupName=administrators myWorkManager.contextRequest3.GroupName=users myWorkManager.contextRequest3.RequestClassName=ImportantClass
The property file will create a Work Manager named myWorkManager, a Max Threads Constraint named myWorkManager_MaxThreads_FD, a Min Threads Constraint named myWorkManager_MinThreads_FD, a Capacity Constraint named myWorkManager_Capacity_FD, a Context Request Class named myWorkManager_ContextRequestClass_FD, and three Context Request Class Cases.
Here are screenshots of the above Work Manager configurations in the WebLogic Console.
See documentation at FlexDeploy Documentation for more details.