Expand my Community achievements bar.

Applications for the 2024-2025 Adobe Experience Manager Champion Program are open!
SOLVED

Tips to improve XFA forms performance

Avatar

Level 2

In our business case we are rendering the XFA based form using AEM Forms 6.5 OSGI Output service. The rendering is taking around 2 minutes to complete. 

The size of XDP is around 8 Mb. It contains a repeatable sub-form which works fine and do the conversion in 20-25 sec if the iteration is around 5. For more iterations it takes longer time.

What are option by which we can optimize performance?

How can we improve server side performance with Output service?

What are caching options with Output service?

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

@AbhinavDi 

Recently we have observed some performance gains for some customers w.r.t XMLform service conversions when the XMLFormService.maxreusecount is reduced (by 50% or lesser) and increasing the XMLFormService.poolmax based on the number of cores on the server.

 

Also, you may want to establish whether template resolution or data merge is taking the maximum time. So running the standalone XML form command[0] and enabling performance debug logging[1] will help.

[0]

xmlformcmd -pa formname=xxxxxxx.xdp xdcFile=xxxxxx.xdc dataFile=xxxxx.xml renderType="pdf" resultFile=output.pdf -log output.log -time time.log

[1] - https://experienceleague.adobe.com/docs/experience-manager-learn/forms/troubleshooting/how-to-enable...

View solution in original post

6 Replies

Avatar

Community Advisor

Check the script in the forms if you have one. If the script code is put in the individual fields, then put it at the subform level. 

 

 

Avatar

Level 2

Hi @Vijay_Katoch Thanks for the response, we have tried it and identified the places where the individual script nodes are there and we have optimized it. Our requirement is to reduce the conversion time between 30-50 seconds. 

After trying suggested option conversion time is still more then a minute. 

Can you suggest other options?

 

Avatar

Correct answer by
Employee Advisor

@AbhinavDi 

Recently we have observed some performance gains for some customers w.r.t XMLform service conversions when the XMLFormService.maxreusecount is reduced (by 50% or lesser) and increasing the XMLFormService.poolmax based on the number of cores on the server.

 

Also, you may want to establish whether template resolution or data merge is taking the maximum time. So running the standalone XML form command[0] and enabling performance debug logging[1] will help.

[0]

xmlformcmd -pa formname=xxxxxxx.xdp xdcFile=xxxxxx.xdc dataFile=xxxxx.xml renderType="pdf" resultFile=output.pdf -log output.log -time time.log

[1] - https://experienceleague.adobe.com/docs/experience-manager-learn/forms/troubleshooting/how-to-enable...

Avatar

Level 2

Hi @Pulkit_Jain_ 

I followed the debug with performance and got below result for the form specific:

<perflog>
<Total-generatePDFOutput-URLInput time='172392ms' isTagged='false' acrotbatVersion='Acrobat_11' isLinearized='false' contentRoot='crx:///content/dam/formsanddocuments' userXci='false' form='TestXdpForm.xdp' >
<resolveTemplate time='4ms' >
</resolveTemplate>
<NonInteractivePDFRenderService-render time='172387ms' >
<paExecuteTotal time='172385ms' >
<PAExecute-CorbaCall time='172385ms' >
</PAExecute-CorbaCall>
</paExecuteTotal>
</NonInteractivePDFRenderService-render>
</Total-generatePDFOutput-URLInput>
</perflog>

Can you please suggest more options on how can we optimize the 

"<NonInteractivePDFRenderService-render time='172387ms' >" this seems to be time taken by Output service "generatePDFOutput" method.

Can you suggest more debug packages to capture more details?

 

Also can you please confirm the path for the executable 

xmlformcmd

from where we can execute the command?

Avatar

Employee Advisor

@AbhinavDi 

Template resolution didn't take any time, and almost all the time was taken by the XMLForm service CORBA call. This could be due to the size (8MB) of the XDP file or the prefilled data. You can invoke the service without data to narrow down the root cause, either data is huge or the form needs more restructuring. 

<NonInteractivePDFRenderService-render time='172387ms' >
<paExecuteTotal time='172385ms' >
<PAExecute-CorbaCall time='172385ms' >

 I have shared some additional information on the xmlform command via DM. Please check.