Author |
Message
|
Urizen |
Posted: Fri Sep 13, 2013 11:06 am Post subject: Detailed XSL Transform Node Stack Trace |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Hi everyone,
I'm developing a message flow in Websphere Message Broker version 7.0.0.4 (fixpack ia91). I have the need to use the "XSL Transform Node" and, from a stylesheet, call a custom java function.
The XSL works fine in the toolkit, but when I deploy it to the Broker, it fails with a message saying that the stylesheet could not be compiled.
I've already checked the classpath and added the required libraries to the shared-classes folder.
I've activated the user trace and, also, checked the file XMLTTrace.log for the flow, but can't find any useful information.
Is there a way to activate some kind of full stack trace for java Exceptions?, I need more information about who's throwing the original exception, and the possible causes too.
The traces I've been reading only have this:
Code: |
com.ibm.xsl.exmlt.TransformRequestException: Transformation failure when processing Stylesheet deployed:./Transformations/massiveSelectCustomerOperationByExampleCanonic/Channel2Backend.xsl
javax.xml.transform.TransformerConfigurationException: No se ha podido compilar la hoja de estilos
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:863)
at com.ibm.xsl.exmlt.StylesheetCache.preprocessStylesheet(StylesheetCache.java:740)
at com.ibm.xsl.exmlt.StylesheetCache.getPreprocessedStylesheet(StylesheetCache.java:644)
at com.ibm.xsl.exmlt.StylesheetSelector.getTransformer(StylesheetSelector.java:372)
at com.ibm.xsl.exmlt.StylesheetSelector.performSelection(StylesheetSelector.java:677)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformDocument(EnhancedXMLTransform.java:615)
at com.ibm.xsl.mqsi.XMLTransformData.transformData(XMLTransformData.java:547)
at com.ibm.xsl.mqsi.XMLTransformNode.evaluate(XMLTransformNode.java:954)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:107)
at net.technisys.multichannel.wmb.InitializerNode.evaluate(InitializerNode.java:64)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:232)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469) |
[/code]
Last edited by Urizen on Fri Sep 13, 2013 11:32 am; edited 1 time in total |
|
Back to top |
|
 |
Urizen |
Posted: Fri Sep 13, 2013 11:09 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
I forgot to say that using a trace node in the failure terminal of the XSL Tranform Node does not help me... the information is almost the same:
Code: |
( ['MQROOT' : 0xa4f2780]
(0x01000000:Name):RecoverableException = (
(0x03000000:NameValue):File = 'F:\build\S700_P\src\DataFlowEngine\ImbDataFlowNode.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 1073 (INTEGER)
(0x03000000:NameValue):Function = 'ImbDataFlowNode::createExceptionList' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmXslMqsiNode' (CHARACTER)
(0x03000000:NameValue):Name = 'QueryServiceFlow/QueryServiceFlow#FCMComposite_1_2.SubFlows/QSFSubFlow#FCMComposite_1_7' (CHARACTER)
(0x03000000:NameValue):Label = 'QueryServiceFlow.QueryServiceFlow.QSFSubFlow.XSL Request' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 2230 (INTEGER)
(0x03000000:NameValue):Text = 'Node throwing exception' (CHARACTER)
(0x01000000:Name ):RecoverableException = (
(0x03000000:NameValue):File = 'XMLTransformNode.java' (CHARACTER)
(0x03000000:NameValue):Line = 984 (INTEGER)
(0x03000000:NameValue):Function = 'transformData' (CHARACTER)
(0x03000000:NameValue):Type = '' (CHARACTER)
(0x03000000:NameValue):Name = '' (CHARACTER)
(0x03000000:NameValue):Label = '' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 4447 (INTEGER)
(0x03000000:NameValue):Text = 'Error during transformation' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'QSFSubFlow.XSL Request' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'Transformation failure when processing Stylesheet deployed:./Transformations/massiveSelectCustomerOperationByExampleCanonic/Channel2Backend.xsl
javax.xml.transform.TransformerConfigurationException: No se ha podido compilar la hoja de estilos
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:863)
at com.ibm.xsl.exmlt.StylesheetCache.preprocessStylesheet(StylesheetCache.java:740)
at com.ibm.xsl.exmlt.StylesheetCache.getPreprocessedStylesheet(StylesheetCache.java:644)
at com.ibm.xsl.exmlt.StylesheetSelector.getTransformer(StylesheetSelector.java:372)
at com.ibm.xsl.exmlt.StylesheetSelector.performSelection(StylesheetSelector.java:677)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformDocument(EnhancedXMLTransform.java:615)
at com.ibm.xsl.mqsi.XMLTransformData.transformData(XMLTransformData.java:547)
at com.ibm.xsl.mqsi.XMLTransformNode.evaluate(XMLTransformNode.java:954)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:107)
at net.technisys.multichannel.wmb.InitializerNode.evaluate(InitializerNode.java:64)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:232)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
' (CHARACTER)
)
)
)
)
|
Thanks in advance.[/code][/quote]
Last edited by Urizen on Fri Sep 13, 2013 11:33 am; edited 1 time in total |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri Sep 13, 2013 11:29 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Please edit your posts to use code tags, above.
It seems your stylesheet has a typographical error. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Urizen |
Posted: Fri Sep 13, 2013 11:39 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Sorry for not using code tags, it's already done.
By the other hand, I'm 100% sure that my stylesheet does not have typographical errors. In fact, I'm pretty sure the error is related to class loading and that kind of stuff, that's why I need a mechanism to deep trace the execution of the node... is there any jvm parameter or something like that?.
Thanks.ode tags, it's already done. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Fri Sep 13, 2013 11:47 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
What value is in Stylesheet name for the XSLTransform node as the principal sheet?
Note : The identified principal style sheet and all its relatively-referenced descendant style sheets are added automatically to the BAR file when you add a message flow to a BAR file (if both they and their parent style sheets are available).
This means you need all descendants in a relative directory that is accessible by your bar file build process, which I hope is driven by a command-line or a script. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Urizen |
Posted: Mon Sep 16, 2013 4:29 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Hi,
My stylesheet is not established in the node properties, it's dynamically established in the environment using ESQL in a previous node.
Besides that, I'm sure that's not the problem: when I remove the call to the java function from the XSLT everything works just fine, and when I use another simple java function it works fine too.
The problem is with the java complex function I need to use, that's why I need more log level from the broker.
So I must ask again: is there any way to get more logs or more detailed info from the broker when this particular node fails?. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Sep 16, 2013 4:38 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Urizen wrote: |
Hi,
My stylesheet is not established in the node properties, it's dynamically established in the environment using ESQL in a previous node.
Besides that, I'm sure that's not the problem: when I remove the call to the java function from the XSLT everything works just fine, and when I use another simple java function it works fine too.
The problem is with the java complex function I need to use, that's why I need more log level from the broker.
So I must ask again: is there any way to get more logs or more detailed info from the broker when this particular node fails?. |
User trace is a good place to start for this particular problem.
But of course you already knew this because you read this article. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Urizen |
Posted: Mon Sep 16, 2013 4:47 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Hi,
Of course I read that article, and all that I found in the official documentation. None of them gave me a solution or a tip for increasing the log level, I would not have created this thread if they did... don't you think?. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Sep 16, 2013 5:00 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Urizen wrote: |
Hi,
Of course I read that article, and all that I found in the official documentation. None of them gave me a solution or a tip for increasing the log level, I would not have created this thread if they did... don't you think?. |
So you did not learn how to turn on User trace ? _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Urizen |
Posted: Mon Sep 16, 2013 5:06 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Are you kidding me?. I know how to use the user trace and I turned it on before creating this topic, I've already told that I need more detailed information than that. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Sep 16, 2013 5:13 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Urizen wrote: |
Are you kidding me?. I know how to use the user trace and I turned it on before creating this topic, I've already told that I need more detailed information than that. |
The only other more detailed trace is Service trace; although you have to be good at scanning voluminous output.
User trace gives you quite alot of information. Service trace probably too much. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
lancelotlinc |
Posted: Mon Sep 16, 2013 5:18 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
The log info you posted gives you what you need to know: the fact that your XSL files cannot be located or cannot be loaded or that there is a typo in one of them.
"Transformation failure when processing Stylesheet deployed:./Transformations/massiveSelectCustomerOperationByExampleCanonic/Channel2Backend.xsl"
Does Channel2Backend.xsl exist ? Does it pass XML validation ? _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Tibor |
Posted: Mon Sep 16, 2013 5:27 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
Sometimes you can find more info in stdout and stderr files of your execution group, e.g. on a Unix platform:
Code: |
find $MQSI_WORKPATH/ -name std* -ls |
|
|
Back to top |
|
 |
Urizen |
Posted: Mon Sep 16, 2013 5:30 am Post subject: |
|
|
Novice
Joined: 11 Jul 2013 Posts: 22
|
Hi,
Yeah, it exists, it's valid and it pass XML validation. It's a problem of class loading and calling java functions from XSLT, I'm sure of it; the thing it's that I can not find where it's failing because the trace does not contain the full stack trace of the java classes used by broker.
The file XMLTrace.log has this:
Code: |
com.ibm.xsl.exmlt.TransformRequestException: Transformation failure when processing Stylesheet deployed:./Transformations/massiveSelectCustomerOperationByExampleCanonic/Channel2Backend.xsl
javax.xml.transform.TransformerConfigurationException: No se ha podido compilar la hoja de estilos
at org.apache.xalan.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:863)
at com.ibm.xsl.exmlt.StylesheetCache.preprocessStylesheet(StylesheetCache.java:740)
at com.ibm.xsl.exmlt.StylesheetCache.getPreprocessedStylesheet(StylesheetCache.java:644)
at com.ibm.xsl.exmlt.StylesheetSelector.getTransformer(StylesheetSelector.java:372)
at com.ibm.xsl.exmlt.StylesheetSelector.performSelection(StylesheetSelector.java:677)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformDocument(EnhancedXMLTransform.java:615)
at com.ibm.xsl.mqsi.XMLTransformData.transformData(XMLTransformData.java:547)
at com.ibm.xsl.mqsi.XMLTransformNode.evaluate(XMLTransformNode.java:954)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:107)
at net.technisys.multichannel.wmb.InitializerNode.evaluate(InitializerNode.java:64)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:232)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
at com.ibm.xsl.exmlt.StylesheetSelector.getTransformer(StylesheetSelector.java:455)
at com.ibm.xsl.exmlt.StylesheetSelector.performSelection(StylesheetSelector.java:677)
at com.ibm.xsl.exmlt.EnhancedXMLTransform.transformDocument(EnhancedXMLTransform.java:615)
at com.ibm.xsl.mqsi.XMLTransformData.transformData(XMLTransformData.java:547)
at com.ibm.xsl.mqsi.XMLTransformNode.evaluate(XMLTransformNode.java:954)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
at com.ibm.broker.plugin.MbOutputTerminal._propagate(Native Method)
at com.ibm.broker.plugin.MbOutputTerminal.propagate(MbOutputTerminal.java:107)
at net.technisys.multichannel.wmb.InitializerNode.evaluate(InitializerNode.java:64)
at com.ibm.broker.javacompute.MbRuntimeJavaComputeNode.evaluate(MbRuntimeJavaComputeNode.java:232)
at com.ibm.broker.plugin.MbNode.evaluate(MbNode.java:1469)
|
But it does not shows WHY it's failing on compile the stylesheet, the stack trace is missing the part "Caused by" and that stuff. Generally, in Java, the full stack trace has all the information that you need to diagnose the problem. |
|
Back to top |
|
 |
Tibor |
Posted: Mon Sep 16, 2013 5:33 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
|
Back to top |
|
 |
|