Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in RPA by (5.3k points)

I have a automation done in blue prism whice is scheduled to run every 15 minutes. With lighter loads it completes within about 10 minutes. But depending on the work load sometimes a single run might take few hours. The issue is, when such a long run is encountered, the resource pc gets itself killed during the automation after few hours. It doesn't even wait for the completion of that run.

How can I stop the resource pc shutdown? Is there a maximum time limit in blue prism where it expects a single run should last and if not completed it kills the resource pc? If so how can I increase it?

Edit:

After analyzing bit more I found out that the Blue Prism resource PC crashes during my automation run. Seems like a problem between Blue Prism and Java access bridge. Following are the exception details from Windows event log. Is there a way to prevent this crash and continue to run my automation?

Application: Automate.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.AccessViolationException at BluePrism.ApplicationManager.JAB.WAB32.getAccessibleContextFromHWND(Int32, Int32 ByRef, Int64 ByRef) at BluePrism.ApplicationManager.JAB.WAB.getAccessibleContextFromHWND(Int32, Int32 ByRef, Int64 ByRef) at BluePrism.ApplicationManager.JAB.JABWrapper.GetContextFromWindow(Int32) at BluePrism.ApplicationManager.clsUIModel.GetJABObjects(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery, BluePrism.ApplicationManager.JAB.JABWrapper, Int32) at BluePrism.ApplicationManager.clsUIModel.GetJABObject(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery, BluePrism.ApplicationManager.JAB.JABWrapper) at BluePrism.ApplicationManager.clsLocalTargetApp.ProcessCommand_JABCheckExists(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery)

Exception Info: System.Reflection.TargetInvocationException at System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[]) at System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) at BluePrism.ApplicationManager.clsLocalTargetApp.ExecuteQuery(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery) at BluePrism.ApplicationManager.clsLocalTargetApp.ProcessCommand_Wait(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery)

Exception Info: System.Reflection.TargetInvocationException at System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean) at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[]) at System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo) at BluePrism.ApplicationManager.clsLocalTargetApp.ExecuteQuery(BluePrism.ApplicationManager.ApplicationManagerUtilities.clsQuery) at BluePrism.ApplicationManager.clsLocalTargetApp.ProcessQuery(System.String, System.TimeSpan) at BluePrism.ApplicationManager.clsLocalTargetApp.ProcessQuery(System.String) at BluePrism.AMI.clsAMI.DoWait(System.Collections.Generic.List`1, Int32, clsAMIMessage ByRef) at BluePrism.AutomateProcessCore.Stages.clsWaitStartStage.Execute(System.Guid ByRef) at BluePrism.AutomateProcessCore.clsProcess.RunStep(BluePrism.AutomateProcessCore.clsProcessBreakpointInfo ByRef, Boolean) at BluePrism.AutomateProcessCore.clsProcess.RunAction(RunActions, BluePrism.AutomateProcessCore.clsProcessBreakpointInfo ByRef, Boolean) at BluePrism.AutomateProcessCore.clsVBO.DoDoAction(System.String, BluePrism.AutomateProcessCore.clsProcessStage, BluePrism.AutomateProcessCore.clsArgumentList, BluePrism.AutomateProcessCore.clsArgumentList ByRef) at BluePrism.AutomateProcessCore.clsBusinessObject.DoAction(System.String, BluePrism.AutomateProcessCore.clsProcessStage, BluePrism.AutomateProcessCore.clsArgumentList, BluePrism.AutomateProcessCore.clsArgumentList ByRef) at BluePrism.AutomateProcessCore.Stages.clsActionStage.Execute(System.Guid ByRef) at BluePrism.AutomateProcessCore.clsProcess.RunStep(BluePrism.AutomateProcessCore.clsProcessBreakpointInfo ByRef, Boolean) at BluePrism.AutomateProcessCore.clsProcess.RunAction(RunActions, BluePrism.AutomateProcessCore.clsProcessBreakpointInfo ByRef, Boolean) at BluePrism.AutomateProcessCore.clsProcess.RunAction(RunActions)

at BluePrism.AutomateAppCore.RunnerRecord.RunnerMethod() at System.Threading.ThreadHelper.ThreadStart_Context(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at System.Threading.ThreadHelper.ThreadStart()

1 Answer

0 votes
by (9.5k points)

the resource pc can meet with an unhandled exception. 

You should have  Recover & Resume block in your master process and on Resume, log an error message with the exception details and continue on with the next run.

This might prevent the crash but you will still have to analyze your java app and the BP java access bridge to identify the root cause.

Browse Categories

...