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 !
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.