AnsweredAssumed Answered

OnTimer script consuming CPU cycles

Question asked by duncanbaker on Feb 2, 2017
Latest reply on Feb 2, 2017 by duncanbaker

Hey folks

 

I have a situation where we have a robot machine generating PDFs. It's the classic scenario where an OnTimer script step starts and the machine checks for records that need a PDF making, if it finds some then it proceeds to do that, if not it ends and the process starts again 60 seconds later. The search happens very quickly. It is a hosted file.

 

What's happening is that CPU cycles on the robot machine are being consumed even when the script is not running. The CPU percentage slowly climbs the longer that the file is open running this OnTimer routine. If left for a couple days, FileMaker becomes unresponsive and I have to crash out. And even more than that, if I close the file and have no files open, FileMaker continues to consume the CPU cycles. I've put some screenshots below with explanatory text. This has been tested on multiple robot machines and with the file hosted on different servers and the same occurs.

 

Now I have set up a new file with an OnTimer and done something very simple (Enter Find Mode then Enter Browse Mode), and this does not exhibit the same behavior. That would point to the routine in my problem file but if a script is not running then why would any CPU cycles be used, and if the file is closed then surely no cycles should be used? (I appreciate that occasional polling might result in a few but not maxing out a core.)

 

I'd appreciate any thoughts anyone has one this. Many thanks.

 

This is the file open. Debugger is on and you can see no script is running. FileMaker is consuming 28%. The file is not actually doing anything here.

1.png

 

The file has been closed, I've waited a few minutes. You can see no files are open. CPU is still humming away.

2.png

 

Then I close FileMaker and reopen it. No files open and the CPU is at zero - what one would expect.

3.png

 

So then I open the file again and it starts off at 0% when it's not running the script. The OnTimer has been triggered OnOpen.

4.png

 

And after a few minutes the CPU starts climbing again even though there's no script running. Give it a few hours and we're back to maxing out the core.

5.png

Outcomes