Increase Print Timeout

Is there a way to increase the timeout wait for which printing waits for network activity to be idle? We have a very large pdf output that is not loading all the data it needs and I believe it is because the printing engine is not waiting long enough, in this case, for network activity to be idle. We have tried settings printerOnPageNavigationWaitForKeyword to “networkIdle” from “networkAlmostIdle”, which does help, but still does not wait long enough.

Tyler

Hi @tyler_salminen,

How big is the PDF? There is also a parameter for the maximum size of the PDF and it is at 10Mb.

You could check and tests with the following parameters to see which one can help:

  • printerPauseBeforePrint (default is 500 in millisecond) - Time before issuing the PDF Request generation from the Printer Engine
  • printerPollerInterval (default is 100 in millisecond) - Requests between check of status within the Printer Engine
  • printerMaxPageSizeInMB (default is 10 in MB)

And while working it out, it should help to enable the following loggers:

  • log4j.logger.ChromiumPrinter=DEBUG
  • log4j.logger.ChromiumResponseTask=DEBUG

Lastly, here is the article to help out with the other parameters:

Let us know how it goes.


Paul

I can do some more tests tomorrow with the debug parameters. But in the mean time, I should note that we are indeed receiving a pdf document that is showing the web page. It is just that only about half of the cell data has been loaded. We have a load animation that shows when cells are loading and that loader is literally being printed on the pdf which led me to believe that the printer is not waiting for all the network activity to finish. I should also say that this is occurring on a particularly slow server we have that takes a while to respond to clients for each request.

Hi @tyler_salminen,

I see, it could be due to a few things and the loggers should help out as well.

And another thing is to look at refactoring the printing by enabling/disabling items while printing. This post should be a good place to start:


Paul

Hi tyler_salminen,
The reason for the data not loading is because the table has dbrs
The best performance you will get with one namedMDX call to retrieve all the data needed for the table and display just the data returned from the mdx call.
This way there is one call to grab all the data, not many calls after page is loaded and print mechanism has fired.
This way there is no lag between the page finish to render and the dbrs populate with information after the page has rendered.
Thanks
Ilia

@tyler_salminen

I can confirm that the same technique described by @ishapiro resolved the issue at another client of mine.

Jack

1 Like

@ishapiro and @jtuckerman thank you for the suggestions but we do not use any of the built in canvas directives or components, we have our own UI that simply use the $tm1ui service.

@plim increasing the printerPollerInterval to 2000 worked. I will let you know if the issue pops up again. I could see a situation where the printer just happens to check at a time when the network is idle but the page is just rendering and going to query the network soon after

Hi Tyler
Thanks for reply, glad Paul’s suggestion fixed it.
Ilia