Debugging with Java Stack Traces Daryl Banttari Analytics, Inc.
About Daryl IT Professional since 1986 ColdFusion since 1997 Java since 2003 Allaire/Macromedia Consulting 2000-2005 Webapper (SeeFusion!) Current: Analytics, Inc.
Agenda Java and ColdFusion What is a "Stack Trace"? Reading a Stack Trace Debugging with Stack Traces Gathering Stack Traces
Java and ColdFusion ColdFusion is a Java J2EE Application Servlet Engine (JRun) ColdFusion (cfmservlet) Request Threads (your application)
Java Stack Traces Snapshot in Time Shows Calls, Not Data Multiple Needed to Show Motion
"jrpp-352" runnable at java.lang.Double.parseDouble(Double.java:220)? at coldfusion.runtime.CFDouble.parseDouble(CFDouble.java:23)? at coldfusion.runtime.CfJspPage.internalIsBoolean(CfJspPage.java:707)? at coldfusion.runtime.CfJspPage._compare(CfJspPage.java:273)? at cfApplication2ecfm726408707._factor5(D:\Websites\redacted.com\Application.cfm:3)? at cfApplication2ecfm726408707.runPage(D:\Websites\redacted.com\Application.cfm:521)? at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:147)? at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:357)? at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:62)? at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:30)? at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:93)? at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)? at coldfusion.filter.PathFilter.invoke(PathFilter.java:80)? at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:47)? at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)? at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:35)? at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:43)? at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)? at coldfusion.CfmServlet.service(CfmServlet.java:105)? at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)? at com.seefusion.Filter.doFilter(Filter.java:49)? at com.seefusion.SeeFusion.doFilter(SeeFusion.java:1494)? at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)? at jrun.servlet.FilterChain.service(FilterChain.java:101)? at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)? at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)? at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)? at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)? at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)? at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)? at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)? at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)? at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)?
Debugging with Stack Traces Examples
Recognizing Stack Elements Jrun.* - Jrun Ignore: jrun.servlet.jrpp.ProxyEndpoint.readFully Suspect: jrun.servlet.jrpp.JrppOutputStream$SpillStream.write Coldfusion.* Functions: coldfusion.runtime.CfJspPage.* Tags: coldfusion.tagext.sql.QueryTag Probably Innocent Java java.util.* java.lang.* Suspicious Java java.net.* java.io.* Your Code! cfApplication2ecfm726408707.runPage(D:\Websites\redacted.com\Application.cfm:577)?
Gathering Stack Traces SeeFusion / SeeStack CF8 Enterprise Server Monitor jstack
Summary Stack Traces are snapshots of threads Multiple traces may be needed to diagnose slow/hung threads Read thread stacks from bottom to top Look for code line numbers and keywords
Q&A Daryl Banttari Analytics, Inc.

Java Stack Traces

  • 1.
    Debugging with JavaStack Traces Daryl Banttari Analytics, Inc.
  • 2.
    About Daryl ITProfessional since 1986 ColdFusion since 1997 Java since 2003 Allaire/Macromedia Consulting 2000-2005 Webapper (SeeFusion!) Current: Analytics, Inc.
  • 3.
    Agenda Java andColdFusion What is a "Stack Trace"? Reading a Stack Trace Debugging with Stack Traces Gathering Stack Traces
  • 4.
    Java and ColdFusionColdFusion is a Java J2EE Application Servlet Engine (JRun) ColdFusion (cfmservlet) Request Threads (your application)
  • 5.
    Java Stack TracesSnapshot in Time Shows Calls, Not Data Multiple Needed to Show Motion
  • 6.
    "jrpp-352" runnable atjava.lang.Double.parseDouble(Double.java:220)? at coldfusion.runtime.CFDouble.parseDouble(CFDouble.java:23)? at coldfusion.runtime.CfJspPage.internalIsBoolean(CfJspPage.java:707)? at coldfusion.runtime.CfJspPage._compare(CfJspPage.java:273)? at cfApplication2ecfm726408707._factor5(D:\Websites\redacted.com\Application.cfm:3)? at cfApplication2ecfm726408707.runPage(D:\Websites\redacted.com\Application.cfm:521)? at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:147)? at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:357)? at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:62)? at coldfusion.filter.CfincludeFilter.include(CfincludeFilter.java:30)? at coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:93)? at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48)? at coldfusion.filter.PathFilter.invoke(PathFilter.java:80)? at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:47)? at coldfusion.filter.ClientScopePersistenceFilter.invoke(ClientScopePersistenceFilter.java:28)? at coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:35)? at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:43)? at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)? at coldfusion.CfmServlet.service(CfmServlet.java:105)? at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)? at com.seefusion.Filter.doFilter(Filter.java:49)? at com.seefusion.SeeFusion.doFilter(SeeFusion.java:1494)? at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)? at jrun.servlet.FilterChain.service(FilterChain.java:101)? at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:91)? at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)? at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:249)? at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:527)? at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:192)? at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:348)? at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:451)? at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:294)? at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)?
  • 7.
    Debugging with StackTraces Examples
  • 8.
    Recognizing Stack ElementsJrun.* - Jrun Ignore: jrun.servlet.jrpp.ProxyEndpoint.readFully Suspect: jrun.servlet.jrpp.JrppOutputStream$SpillStream.write Coldfusion.* Functions: coldfusion.runtime.CfJspPage.* Tags: coldfusion.tagext.sql.QueryTag Probably Innocent Java java.util.* java.lang.* Suspicious Java java.net.* java.io.* Your Code! cfApplication2ecfm726408707.runPage(D:\Websites\redacted.com\Application.cfm:577)?
  • 9.
    Gathering Stack TracesSeeFusion / SeeStack CF8 Enterprise Server Monitor jstack
  • 10.
    Summary Stack Tracesare snapshots of threads Multiple traces may be needed to diagnose slow/hung threads Read thread stacks from bottom to top Look for code line numbers and keywords
  • 11.
    Q&A Daryl BanttariAnalytics, Inc.