Question
Rodrigo Souza · Oct 8, 2020

Report Render Server Error

Hi everyone, i'm using a render server to make pdf output with zen report and everything was fine till recently i've been getting this error message and i have no idea what it means, i'd be very thankfull if someone could help or got into the same situation.

Error message:

ERROR #5001: net.sf.saxon.trans.XPathException: org.apache.fop.fo.ValidationException: "fo:table-body" is missing child elements. 
Required content model: marker* (table-row+|table-cell+) (See position 817:-1)

 

This error seems to be "random" if i try to render the same report without changing a single thing it works. I wonder if could be a memory issue. And another thing i notice is that in the "Reports  Render Server" page if i click on "Activity" looks like i'm not using the Render Server:

 

 

Please someone help me !

00
0 4 53 3

Replies

Show your code.  See: "fo:table-body" is missing child elements )"

Thats the thing, why would be the code if when i try to generate it again without changing the information it works normally. 

Hello,

The management portal defines the basic structure of render servers, but you'll need to make sure that two additional details are set (and these will need to be done manually).

%SYS("zenreport","renderserverport") is set to your render server port in order for it to pass report generation.

%SYS("zenreport","transformerpath") is set to your renderer

For example, I setup render server like this:

Name = FOP-HotJVM

Port = 54321

Ping port = 12345

Renderer = FOP

Render configuration file = <cache install>\fop\conf\fop.xconf

Then I would need to set the following:

%SYS("zenreport","renderserverport")=54321

%SYS("zenreport","transformerpath")=<cache install>\fop\fop

These 2 settings will need to be done while the renderer is not running. So stop the render server, set these values, and then restart the render server. This should now allow your reports to be going through the render server instead of directly.

The default memory size for FOP rendering is 512 - so if you think you need a larger amount you'll need to edit the MEMSIZE associated to it. Using render servers that would be under the <cacheinstall>\ lib\renderserver area - specifically the runwithfop  or if using the on demand fop rendering then that would be <cacheinstall>\fop

One thing to note if you are using IRIS then you would be using FOP 2.0 which has had some changes to table outputs so you may need to check on your code in order to produce consistent results.

Thanks

Thank you so much for the help. I'm not sure if thats the case, but one thing i'm sure is that i was not using the render server before. So i'm gonna make the changes mentioned and test it again.