Content Management and Capture

Content Management and Capture

Come for answers. Stay for best practices. All we’re missing is you.

 View Only
  • 1.  Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted Thu March 27, 2025 02:59 AM
    Edited by dsakai Thu March 27, 2025 03:33 AM

    Have you ever seen Rulerunner skipping all Page nodes producing no error?

    In our project, this has been happening once in a while.

    In our app, normally, Rulerunner processes  Batch open -> Page open -> Page close -> Batch close.

    Once in a while, the same app goes Batch open -> Batch close.

    There is no error, just all page nodes skipped.

    If I execute the same PDF, this issue won't happen.

    My hypothesis is this happens when Rulerunner process cannot use enough CPU or Memory.



    ------------------------------
    dsakai
    ------------------------------



  • 2.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted Tue May 13, 2025 12:25 AM

    The RRProcessor intermittently skips Page Nodes and their associated rules. This issue has been reproduced in version 9.1.9 IF006 in my environment using the client app.

    I have contacted Support regarding this.

    I found an identical case reported in the case database. It was closed, apparently because the frontline engineers were unable to collect the necessary logs.

    I was able to reproduce the issue in my environment.

    Although this product behavior is rare, I believe it can occur more easily than expected. I'm still curious whether other engineers have encountered this issue before.



    ------------------------------
    dsakai
    ------------------------------



  • 3.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted Wed May 14, 2025 02:13 PM

    Hello Dsakai, 

    If a task is being skipped and you can reproduced the issue.  Why not put PageID in it's own thread?  Take a look to see what is happen with that thread.  Review the pageID rrs log and see if there was any issue running the rule.  My guess is most likely it ran out of memory and the batch aborted.  If you are calling any of the recognition rule in PageID, remember to call the release engine.
    If the image header X and Y is tool large, you need to resize and rescale the image.  Find out what is causing pageID to not process correctly or why it's taking resources.

    You can also look into restart after execute.  After you run pageID you can force the thread to restart which will restarting the RRProcess.exe to clear memory.

    Ref: 
    https://www.ibm.com/docs/en/datacap/9.1.9?topic=service-configuring-rulerunner-restart-after-task-execution

    Seeing restart after execute will take a little longer to process batches.  10 seconds is the default interval for the thread to stop and restart after it process a task.   You can control this in the registry and set it to 5 seconds but I wouldn't go lower then 5 seconds.  Instead of controlling it in rulerunner using restart after execute process.  Look into why it's consuming that much more research.  Again it could be your image.  You'll need to fine tune the tiff or examine are you putting too big of a PDF for convert to process.  Are the PDF assembled with mixed images as in huge color page or header size have large X and Y page size.



    ------------------------------
    Duke Lam
    ------------------------------



  • 4.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 30 days ago
    Edited by dsakai 30 days ago

    Hi Duke,

    I'm currently trying to reproduce the issue using only OOTB actions, as part of our ongoing conversation with Tech Support.

    I suspect that the intermittent skipping of Page Rules by RRProcessor may be related to slow disk response.

    You can also look into "restart after execute." After you run PageID, you can force the thread to restart, which restarts RRProcess.exe and clears the memory.

    Thank you.
    If it turns out that RRProcessor's 4GB memory limit is the root cause, I'll try that approach.

    The main issue here is that RRProcessor doesn't throw an error or abort the batch when it performs a serious mistake like skipping Page Rules.

    This might be a different type of RRProcessor hang. In this case, the processor partially hangs—skipping critical logic—but still proceeds through the rest of the workflow without failing or triggering an abort.

    (I've already checked SkipChildrenObjectsAndRules action is not used in the Batch open rule.)



    ------------------------------
    dsakai
    ------------------------------



  • 5.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 24 days ago

    Do you normally place CustomAction.dll in C:\Datacap\<OCRApp>\dco_<OCRApp>\rules,
    or do you put it in C:\Datacap\RRS?

    I'm wondering if RRProcessor loads the DLL differently depending on its location,
    and whether placing it in a particular folder could cause issues like hanging or failures when executing Custom Actions.



    ------------------------------
    dsakai
    ------------------------------



  • 6.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 22 days ago

    According to the ddk on custom action pdf, it goes in the RRX.   See if that still fail.  Else you can put it in both location to see if that changes things.  Depending on the result you need to make a note if you ever have to move the apps somewhere else.

    IBM Datacap provides two different types of action templates. The primary differences are:
    • One action template has a separate DLL and RRX file. The code for the DLL is C# and the RRX contains XML that defines the public actions and contains the help for the actions. The DLL must be registered as described in the development guide. The RRX must exist in the RRS directory within the Datacap install.
    • One action template builds the RRX file into the DLL. The code for the DLL is C# and the RRX contains XML that defines the public actions and contains the help for the actions. The DLL is not registered and must exist in the RRS directory within the Datacap install.
    When a new version of IBM Datacap is released, any custom actions created for versions of IBM Datacap may need to be updated. These updates typically are to update the .NET version to the version currently used by the release of Datacap and dependencies may need to be re-added to a project for it to compile successfully. Follow the instructions in the download package to migrate your existing actions or use the provided template to create a new action library.
    When updating the installed version of Datacap to a new release, it may or may not be required to rebuild the action library. Typically, an action library can be compatible with multiple releases of Datacap but this is not guaranteed. It may be required to rebuild an action to use a newer version of .NET or to access a shared Datacap core component that has been updated in the new release.
    Once placed into a Datacap install, the actions created for a custom action library will be visible within Datacap Studio so they can be used within an application the same way as the predefined actions that are provided with Datacap.
    An action library must follow standard coding rules such as freeing resources that are no longer required.



    ------------------------------
    Duke Lam
    ------------------------------



  • 7.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 22 days ago

    Hi Duke,

    I will try it out.

    I also found this description on the InfoCenter page for version 9.1.9:

    According to the specifications, CustomAction.dll can be placed either in C:\Datacap\<OCRApp>\dco_<OCRApp>\rules or in C:\Datacap\RRS.

    ---

    C# Actions

    The binary files for this kind of custom action can live anywhere. There are two different ways to create a C# action. There can be a single DLL or a DLL with a corresponding RRX. If it is a single DLL, it can reside in the RRS directory or in the application rules directory.

    If the DLL is a combination of a DLL and RRX file, then the RRX resides in the RRS or application rules directory and the DLL can reside in any directory but typically it is placed in the \Datacap\DCShared\Net directory.

    https://www.ibm.com/docs/en/datacap/9.1.9?topic=applications-parts-datacap-application



    ------------------------------
    dsakai
    ------------------------------



  • 8.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 22 days ago

    I moved CustomAction.dll to C:\Datacap\RRS and started RRProcessor, but the Page Skip issue still occurred.
    Changing the location made no difference.



    ------------------------------
    dsakai
    ------------------------------



  • 9.  RE: Sometimes Rulerunner skips all Page nodes. It only processes Batch node.

    Posted 21 days ago

    You put it in both location to see if it can locate your dll.   Check your rrs log to see where it's trying to read the dll from. 



    ------------------------------
    Duke Lam
    ------------------------------