Waiting for previous process to finish

book

Article ID: 211708

calendar_today

Updated On:

Products

CA Release Automation - Release Operations Center (Nolio)

Issue/Introduction

While using either of the following methods to test a process, we keep getting: Waiting for previous process to finish

This happens when using either of the following methods:

  • Navigating to Designer -> Processes -> Test -> Start Test
  • Navigating to Environments -> Process Execution -> Expand Environment -> Expand Process Category, Process, select Tag -> click Run Process -> Run

 

Cause

The underlying cause of this response is that the agent is being used by an Application's Server Type that is configured with the "Requires exclusive execution" option. 

Environment

Release : 6.6

Component : CA RELEASE AUTOMATION REPOSITORY

Resolution

Either:

  • Wait for the process utilizing the agent to complete/end.
  • Force the process utilizing the agent to complete/end. 

 

There are several ways you can force the process utilizing the agent to complete/end. The methods include:

  • DB Queries: Use queries to identify the job and release information. Then, use the ROC to end the release. 
  • Use the UI: Tracking down the job that is executing against the agent may involve a lot of searching.
  • JMX: The JMX offers the ability to end jobs one by one (by id) or to end all jobs. 

 

Only one of the above methods is needed. See below for more information related to the methods outlined above. 

 

DB Queries

There are several steps to using this method.

First, you need to identify the job_id of processes running against the agent in question. This can be often be accomplished using the following query:

SELECT TOP (1000) job_id, server_state, server_type_name ,server_name, server_ip
  FROM execution_deployment_servers
  WHERE server_state <> 'FINISHED' and server_state <> 'STOPPED' and server_name like '<servername>%'

Note: Replace <servername> in the where condition before running.

 

Second, once you have the job_id you can often find the Release Id and Release Name for that Job Id using the following query:

SELECT release_id, release_name
  FROM execution_jobs
  WHERE id = '<job_id>'

Note: Replace <job_id> in the where condition before running.

 

Finally, review the deployment by finding it by name from the Dashboard Running, Long Running, or Error State widgets. Or, by accessing the release using the following URL - replacing the releaseID at the end of the URL with the ReleaseID identified by the previous SQL Query: http://nolioservername:8080/datamanagement/#/main/deployments/<release_id_value_from_query>

 

Use the UI

One of the following ways may help locate and stop the process utilizing the agent in question. 

Via the ROC, go to Environments -> Process Execution -> Expand the Environment -> Expand the Process Category -> Expand the Process -> Select the "Latest" tag.

If that process is running then it should look something like the screenshot below - where it shows you things like:

  • A dropdown menu to chose from the currently running processes. 
  • An option to stop the selected running process. 
  • A link (ex: RunTest1) to the deployment job where that process is running. If it is a pre-plan process that is running as a part of a deployment plan then the link may not work properly. 

 

Alternatively, go to Environments -> Execution Overview to get a quick High Level overview of the processes running for that application. If you find a potential process, select it. It will bring you to the screen above where you can get more details. Once in a suspected process you will need to select the Details tab and expand the Server Type to see which agents the process is running on. This should give you the information needed to know whether this process should be stopped or not.

 

Another possible way to see what instances of this process are running/hanging is to use the Process Report from the Dashboard. From the Online Processes report you should be able to select the application column filter to narrow the scope of the report and/or the search option in the upper right corner of the report to search for your process name. Finding the process you're looking for and selecting it will bring you to the Process Execution area explained above where you can stop, pause, etc.

 

 

JMX

If you are interested in using the JMX then the following KB article describes the steps in its resolution section. JMX can be used to cancel a process, one by one using a specific job id using the removeProcessRuns MBean. It can also be used to end all jobs/processes using the removeAllActiveRuns MBean. The KB Article can be found here: Deployment Blocked by Another Deployment