Stack trace depth in RME message

Posted by Admin on 14-Jul-2009 09:38

Hello.

Does anyone know if I can somehow change the depth of the stack trace that is included in the RME message? Right now it includes the full stack of the top exception and a few lines from the nested exception (if any) and then truncates it with something like "...15 more".

For example like this:

com.sonicsw.esb.service.rdbms.DatabaseServiceException: Service call failed.
    at com.sonicsw.esb.service.rdbms.DatabaseService.serviceConnection(DatabaseService.java:816)
    at com.sonicsw.esb.service.rdbms.DatabaseService.service(DatabaseService.java:707)
    at com.sonicsw.xqimpl.service.ServiceMessageHandler.callService(ServiceMessageHandler.java:413)
    at com.sonicsw.xqimpl.service.ServiceMessageHandler.handleMessage(ServiceMessageHandler.java:182)
    at com.sonicsw.xqimpl.service.ProcessMessageHandler.doHandleMessage(ProcessMessageHandler.java:308)
    at com.sonicsw.xqimpl.service.ProcessMessageHandler.handleMessage(ProcessMessageHandler.java:90)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:422)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToService(MessageSendingHelper.java:328)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:76)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendEnvelopes(MessageSendingHelper.java:951)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:493)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToService(MessageSendingHelper.java:328)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:76)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:827)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:845)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:80)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendEnvelopes(MessageSendingHelper.java:951)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:493)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToService(MessageSendingHelper.java:328)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:76)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:827)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:845)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:80)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendEnvelopes(MessageSendingHelper.java:951)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:493)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToService(MessageSendingHelper.java:328)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:76)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendEnvelopes(MessageSendingHelper.java:951)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:493)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToService(MessageSendingHelper.java:328)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:76)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:827)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToProcess(MessageSendingHelper.java:845)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendToAddress(MessageSendingHelper.java:80)
    at com.sonicsw.xqimpl.service.MessageSendingHelper.sendEnvelopes(MessageSendingHelper.java:951)
    at com.sonicsw.xqimpl.service.XQDispatcher.onMessage(XQDispatcher.java:493)
    at com.sonicsw.xqimpl.endpoint.container.EndpointContextContainer.onMessage(EndpointContextContainer.java:84)
    at com.sonicsw.xq.connector.jms.JMSEndpoint$JMSEndpointListener.onMessage(JMSEndpoint.java:570)
    at progress.message.jimpl.Session.deliver(Session.java:2998)
    at progress.message.jimpl.Session.run(Session.java:2390)
    at progress.message.jimpl.Session$SessionThread.run(Session.java:2775)
Caused by: com.sonicsw.esb.service.rdbms.script.DatabaseScriptEngineException: Failed to execute callable statement: '{call BLA_BLA_BLA)}'.
    at com.sonicsw.esb.service.rdbms.script.DatabaseScriptCommand.executeCallableStatement(DatabaseScriptCommand.java:370)
    at com.sonicsw.esb.service.rdbms.script.DatabaseScriptCommand.execute(DatabaseScriptCommand.java:273)
    at com.sonicsw.xqimpl.script.Command.executeScriptCommand(Command.java:319)
    at com.sonicsw.xqimpl.script.Command.execute(Command.java:275)
    at com.sonicsw.xqimpl.script.ScriptEngine.executeCommand(ScriptEngine.java:66)
    at com.sonicsw.esb.service.rdbms.DatabaseService.serviceConnection(DatabaseService.java:771)
    ... 40 more

What I actually need is the text message from the exception that caused

com.sonicsw.esb.service.rdbms.script.DatabaseScriptEngineException: Failed to execute callable statement: '{call BLA_BLA_BLA)}'.

Would be most gratefully for any suggestions!

All Replies

Posted by Bill Wood on 01-Oct-2009 08:57

I cannot think of a way to do this in Sonic ESB 7.6.2, but it will be possible to deal with it in the next release.  In particular, you will be able to add custom Java code to the Database service in order to catch the database exception.  Then you could reformat the message and rethrow it (if that is what you want).

[The intent of this feature was to allow custom code to handle specific database exceptions in custom ways.  For example, some DB exceptions might be 'OK',  some you might like to 'wait and retry'.  Some you might want to shut down the instance of the DB Service, .... and some you might want to reformat into a different message.]

Posted by Admin on 01-Oct-2009 10:07

Thanks fot your reply. When is the next release planned for?

Posted by Bill Wood on 01-Oct-2009 12:05

The release is 8.0.  I think it is at or around the sales kickoff which is early next year.

This thread is closed