Author |
Message
|
team |
Posted: Sun May 20, 2007 10:52 pm Post subject: Large XSLTs giving cache problem |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
I'am trying to use XSLT in XML transformation node for performing a transformation requirement.
When I set the Stylesheet Cache Level to any value >0 the messages are failing to process where as with Stylesheet Cache Level = 0 the messages are getting processed succeffuly. Hence I reached the conclusion that the system is unable to cache the compiled XSLT due to its size.
Is there someway to increase the XSLT's cache size ?
Environment used - WINDOWS , WMB 6.0
Thanks in advance. |
|
Back to top |
|
 |
team |
Posted: Sun May 20, 2007 11:25 pm Post subject: |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
Further details that might help-
Size of the XSL file 165 KB
System RAM - 2 GB |
|
Back to top |
|
 |
XZ |
Posted: Mon May 21, 2007 12:09 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
|
Back to top |
|
 |
team |
Posted: Mon May 21, 2007 6:37 am Post subject: |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
Following is the error messages I'am getting.
RecoverableException BIP4447E: XMLT node ''XMLTransformation'' encountered a problem during the transformation. The error message is ''Transformation failure when processing Stylesheet deployed
javax.xml.transform.TransformerConfigurationException: Could not load the translet class .
at org.apache.xalan.xsltc.trax.TemplatesImpl.defineTransletClasses(TemplatesImpl.java:323)
at org.apache.xalan.xsltc.trax.TemplatesImpl.getTransletInstance(TemplatesImpl.java:341)
at org.apache.xalan.xsltc.trax.TemplatesImpl.newTransformer(TemplatesImpl.java:374)
at org.apache.xalan.xsltc.trax.TemplatesImplProxy.newTransformer(TemplatesImplProxy.java:106)
at com.ibm.xsl.exmlt.StylesheetCache.getPreprocessedStylesheet(StylesheetCache.java:659)
at com.ibm.xsl.exmlt.ParseFacilitator.parseXmlStylesheet(ParseFacilitator.java:552)
at com.ibm.xsl.exmlt.ParseFacilitator.parse(ParseFacilitator.java:253)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformWithStylesheet(EnhancedXMLTransform.java:801)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformDocument(EnhancedXMLTransform.java:734)
at com.ibm.xsl.mqsi.XMLTransformData.transformData(XMLTransformData.java:734)
at com.ibm.xsl.mqsi.XMLTransformNode.evaluate(XMLTransformNode.java:940)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1222)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:140)
at com.ibm.mq.supportpacs.XMLValidatorNode.XMLValidatorNode.evaluate(XMLValidatorNode.java:156)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1222)
''.
The transformation could not be completed.
My search says that this is an issue with the XALAN parser when run on jdk1.5. but I'am using jdk1.4 and I'am getting the error still.
This link 'http://w3.xml.ibm.com/xsl/java/dist/xslt4j-2_6_9/docs/extensions_xsltc.html#constraints' is no more available.
Kindly advice. |
|
Back to top |
|
 |
XZ |
Posted: Mon May 21, 2007 7:21 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
|
Back to top |
|
 |
team |
Posted: Mon May 21, 2007 9:51 pm Post subject: |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
Thanks for that link.
I'am going through the same.
Just wanted to mention why I concluded that its could be a cache issue. I have a block in my XSLT that is repeating twice. If I put each instance of this block seperately then the XSLT is getting compiled properly. But when tried to put in together it refuses to compile.
I confirm that we are not delaing with any array instances or CARDINALITY. |
|
Back to top |
|
 |
XZ |
Posted: Mon May 21, 2007 11:58 pm Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
Could be a Xalan bug. Have you tried compiling your style sheet using Xalan directly? _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
team |
Posted: Wed May 23, 2007 4:36 am Post subject: |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
I'am trying to run the transformation outside the broker using the xalan parser.
As per my understanding the WMB6.0 used XALAN 2.2 d11 and the latest version of XALAN available is 2.7
Is it possible to change the verison of the parser used by the XML transformation Node ?  |
|
Back to top |
|
 |
XZ |
Posted: Wed May 23, 2007 6:54 am Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
WMB V6 uses Xalan V2.6. It is very close to V2.7. _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
team |
Posted: Thu May 24, 2007 10:55 pm Post subject: |
|
|
Centurion
Joined: 03 Nov 2006 Posts: 108
|
The XALAN version change is not helping me much with this issue.
Thinking of an alternate workaround using XSL includes or import.
I have now split the big XSL and I'am trying to include these with in a main xsl using the <xsl:include>.
This is working outside the broker but is not working when used with the XMLT node flows and deployed to the broker.
Any ideas if the <xsl:include> works with broker ? |
|
Back to top |
|
 |
XZ |
Posted: Thu May 24, 2007 11:46 pm Post subject: |
|
|
 Apprentice
Joined: 22 May 2006 Posts: 45 Location: IBM Hursley
|
Every thing should work if it works outside broker. Have you deployed the style sheets to be included as well? Which version have you used outside the broker? Make sure you upgrad to the latest service fix pack. I suggest you raise a PMR if this is still a problem. _________________ Regards,
-XZ
WMQI Development |
|
Back to top |
|
 |
nvenkatesh |
Posted: Sat Jul 07, 2007 9:56 am Post subject: |
|
|
Apprentice
Joined: 29 Jan 2007 Posts: 45
|
We do have the same problem. When the xsl size is greater than 45KB approx. and the cache level property is set greater than zero in XMLTransformation node, We are getting the exception "Could not load the translet class" in the event viewer(not to forget mention that the broker version is 6.0.0.3 and the toolkit 6.0.2 with interim fixes. Hope this is the latest). Any further references to APAR's/help on this would be appreciated. |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Jul 07, 2007 10:50 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Did you increase the EG JVM heap size, per the instructions in the reference on the XMLTransformation node in the Info Center? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
nvenkatesh |
Posted: Sun Jul 08, 2007 11:07 pm Post subject: |
|
|
Apprentice
Joined: 29 Jan 2007 Posts: 45
|
Jefflowrey,
I had already kept the JVM heap size to 1GB before executing the flow. Plz see the below output.
C:\Program Files\IBM\MQSI\6.0>mqsireportproperties WBRK6_DEFAULT_BROKER -e default -o ComIbmJVMManager -n jvmMaxHeapSize
1073741824
BIP8071I: Successful command completion. |
|
Back to top |
|
 |
|