cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2208
Views
0
Helpful
9
Replies

How to log the stack trace for CVP database element?

asadullah.s
Level 1
Level 1

Hello there,

I am new to CVP, correct me if I am wrong. I have a database element in my CVP application. And I have an event DB_Error created to handle Java Exception, and its Event list is (.) dot to capture all the exception, I want to know to how to log the stack trace (in CVP activity logs) that is generated when this DB_Error event occurs. Kindly do assist me

cvp_question.png

Thanks in advance.

9 Replies 9

janinegraves
Spotlight
Spotlight

You should change the error that you're catching to . to catch all

java exceptions.

The stack trace will be in the error log by default in

C:\Cisco\VxmlServer\applications\appname\logs\ErrorLog\

Hi Janine,

If you see my screenshot I already have dot(.) there, but it is not logging the stack trace whenever the DB_Error event occurs. It directly enters the Subflow_DB_update_outbound element. Can you please provide me another solution?

Change the error that you're catching to star dot star (*.*) --- For some reason, the stars were omitted from the response I sent you.

Then post both your activity log and your error log.

Have you changed any of the activity or error logging properties?

Also - are you using the Cisco Database element? Or a custom element?

I tried using (*.*) as well, still no trace in activity or error logs and yes it is a database element.

What if you remove the event handling. Then do you see an error log

under applications/appname/logs/ErrorLog?

Well that needs to be tested, the actual requirement is to log the stack trace of the error that is being handled. But you have a point there, I need to see what type of error, it throws when it is not handled.

Hi Janine,

As discussed I have removed the error handling just to obtain the stack trace in error log, so this is what I get,

172.29.21.162.1514985444925.160167.Callback_1_6,01/03/2018 13:18:12.381,A VoiceXML error occurred of type "error.badfetch"
172.29.21.162.1514985444925.160167.Callback_1_6,01/03/2018 13:18:12.444,An error has occurred.

172.29.21.162.1514985444925.160167.Callback_1_6,01/03/2018 13:18:24.612, The error was: Another thread is currently working on this session.  This means the original thread took too long to complete what it was doing.  To prevent abnormal behaviour the original thread will exit immediately.  The call should not be affected.
com.audium.server.MultipleThreadException: Another thread is currently working on this session.  This means the original thread took too long to complete what it was doing.  To prevent abnormal behaviour the original thread will exit immediately.  The call should not be affected.
     at com.audium.server.session.ControllerData.isCurrentThreadOwner(ControllerData.java:5087)
     at com.audium.server.voiceElement.SubflowCallElement.service(SubflowCallElement.java:380)
     at com.audium.server.controller.Controller.goToSubflowCall(Controller.java:4198)
     at com.audium.server.controller.Controller.goToElement(Controller.java:3569)
     at com.audium.server.controller.Controller.continueCall(Controller.java:3272)
     at com.audium.server.controller.Controller.handleError(Controller.java:3058)
     at com.audium.server.controller.Controller.handleError(Controller.java:3068)
     at com.audium.server.controller.Controller.handleError(Controller.java:3068)
     at com.audium.server.controller.Controller.doPost(Controller.java:981)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
     at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
     at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1600)
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
     at java.lang.Thread.run(Thread.java:744)


So I there any other way to trace the same even when the error is being handled? Many thanks

1) I've noticed that if you are catching VoiceXML events, they no longer

display as logged in the error log.

2) I don't know if you can get the stack trace to display when catching

VoiceXML events, however you can log to the ActivityLog the information

that's contained in the Session Variable named lastException - so at

least you'll know the name of the event and where it occurred and the

type of event.  But this variable doesn't exist if you use the HotEvent

element to catch VXML events. Instead you can use the Events tab of the

Start of Call to catch VXML Events.  By the way, you can find these

variables in the Studio User's Guide.

When you catch VoiceXML Events at the Start of Call element, you can

connect to an AppModifier element and use its General Tab to add the

following to the Activity Log:

Name of the exception: {Data.Session.lastException.code}

Type of exception:  {Data.Session.lastException.type}

Location of exception:  {Data.Session.lastException.source}

3) Or you can skip catching the VXML Events, and instead use an Error

Element to return data to ICM upon an error. Then you will get the stack

trace in the error log.

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: