Expand my Community achievements bar.

Identifying long running waits/workflows

Avatar

Level 3

Hi all,

 

We have already established that having too many Wait activities (waiting for 1+ hour) in multiple workflows can leave the underlying runwf process running unnecessarily on the server thus taking a hit on performance.  With that in mind, I'm trying to search for workflows that ran for too long, say 4 hours eg: it started at say 10:00 and finished at 14:00.  The workflow may have waited (Wait activity) for 3.5 hours and so have actually taken just 0.5 hour to finish.  What's the best possible way to search for such workflows? 

 

-wALF

6 Replies

Avatar

Level 5

Hi Harsha, 

 

I think we have a OOTB query monitoring jssp page (if you have installed the acx package). 

 

https://<yourServer>/acx/queryMonitor.jssp

 

which will give a update of the workflows that are currently running with the PID attached for the same. 

 

Hope this helps.

 

Thanks,
Adithya

Avatar

Level 3

Hiya, 

 

We have that package installed.  However, it only provides you with what is currently running on your DB server (innit?).  Moreover, it won't list if your workflow is waiting (via Wait activity) and with every refresh, it'll flush out those that have completed and list down only the ones currently running.

 

-wALF

Avatar

Community Advisor

Hello Walf,

 

Just keep in mind that if a workflow is in "stand by" (wait activity), even if it is marked as "running", it doesn't mean that a server process (runwf) is running ! A waiting workflow with a scheduler or wait activity is just awake when necessary.

You can verify this with one particular attribute of the xkt:workflow schema : the @processId. This is the identifier of "runwf" process on the machine (the one you could use to kill a proces, with "kill -9 processid" command for example). If the worklfow has this attribute with 0, it means that no process is runing. You can check the list of your running workflow, displaying this attribute value to see wich ones are really running a process.

Also, if you run a V7 ( at least build 18.11) you can see on the Home page of the console the workflow heatmap, a very usefull view of the real load of the instance : https://experienceleague.adobe.com/docs/campaign-classic-learn/tutorials/monitoring/workflow-heatmap...

Otherwise, if you really need to check deeper, I suggest you to look at the xtk:workflowTask schema : those are the instances of each activity in each workflow that have been executed. You will find several infos like start time, end time etc.

 

Cédric

Avatar

Level 3
Thanks Cedric, as this is certainly helpful. However, the Heatmap feature crashes and is about to be fixed in upcoming releases. Even if we agree the underlying runwf process doesn't run (with a Wait activity), the temp tables (workflow or delivery) will continue to be held by the tool, innit? So, some resources continue to be consumed and can be released.

Avatar

Community Advisor
Hello Walf, Yes, you are right about the temp tables. The thing is : if you'll need the data/ informations from those tables later, it's normal to keep them. If not, you have to think in the conception of the workflow : ACC will delete all the uneeded temporary table. If you put correct "end" activities in the right place, the temporary table will be deleted, even if the workflow is up and will be awaked later. Also, be sure to unchek the option that keep temporary table : Properties -> General -> Segmentation -> keep results (sorry I don't have the exact label). Just to see if the table are delete : go to the last blue transition you see, right click and attemp to "show the target...", you'll see an error message (refresh the list to be sure). Cedric

Avatar

Administrator
Hi @wALF, Thanks for your feedback! I will be escalating this further among our SMEs to get you more help here. Thanks!


Sukrity Wadhwa