Often, we may have to run multiple jobs to finish some functional process. ESS lets you do this using Job Set where we can add multiple jobs as steps in the metadata and submit them as single unit. We can also specify the relationship among these steps either as Serial or Parallel.
Job Set also allows another Job Set to be included so that a parallel job set can have a Serial Job set and vice versa so that more more complex Job Sets can be created.
To create Job Set, select File –> New –> Enterprise Scheduler Metadata –> Job Set.
Give a meaningful name and use the same package as used in previous post.
Click OK and you can observe new Job Set shown in Project Explorer and a new tab is opened.
Let us create Serial Job Set at first. Click + in the Job Set Steps option to add jobs. We can also specify any System Application properties at each step using the respective tabs shown below.
Now your Job Set Steps visual diagram look like below. After the execution, each job step can assume any of the statuses Success, Warning and Error represented by icons in below screenshot. Here, you can define relationship of steps with other steps based on the status. So the following diagram depicts that Job Set execution to stop on occurrence of Error or Warning and proceed to next step (if any) on Success.
Similarly add another step as shown below.
Now modify the relationships of Step1 as shown below.
Now save your changes and deploy to ESS server using the steps mentioned in previous post.
To view the newly created Job Set in EM console, navigate to ESSAPP –> Job Metadata–> Job Sets and do search for EssNativeHostingApp as shown below.
Navigate to ESSAPP –> Job Requests –> Submit Job Request and submit Job Set as shown below.
Run this Job Set when the service is down so that we can see it’s behavior when an error occurred during execution. Observe that both of the steps are resulted into an error as shown below.
And Search Job Requests page shows these requests as below where each step is executed as child request and we can also observe the serial execution by looking at Processing Start Time and Run Time.
Now modify Step1 to Stop on occurrence of error. Now save you changes and deploy your application to ESS server.
Submit request using this Job Set and observe the Job Status as shown below. Now you can clearly observe that only Step1 has been executed because of the above changes.
Now bring up service and submit the Job Set to observe both of the steps are successful.
By default, each step status does determine the terminal state of Job Set. To override this behavior you can define the system property SYS_selectState at step level as shown below and set value to false.
ss
In Parallel job set, all steps execution will start at same time hence we can’t define relationships among steps based on step execution status similar to Serial job set. However, you can still define the step level system parameter SYS_selectState to override default behavior.
Now save changes and deploy application to ESS server. Submit a request using this new Job Set and observe the parallel runtime behavior as shown below.
You can find more information about Job Sets in ESS documentation here and sample project used in this blog can be downloaded from here.
Using EM Console to Create Job Set
We can also create a Job Set in EM console as shown below and the steps look similar to above.
HI Siva,
How can we call a job set from SOAPUI .. Does ESS expose jobsets similar to individual job definitions??
Regards,
Sandy
Hi Siva,
First of all, thank you for publishing these ESS articles.
I’ve a question about Job Step. How do I add delay or wait in between two steps?
Thank you.
I have a requirement to schedule an HTTP web service every 10 minutes between 7 am and 10 pm everyday.
Can you please let me know the strategy to design such kind of scheduler.
just looking at schedule metadata, this type of scheduling seems to be not possible..need to look into more..