Longer stacks are generally longer running..
Use multiple stack traces to view "motion" over time.
(Native Method)
When java hands things off to C and allowing native system to handle things..
Example: java.net.SocietInputStream.socketRead0 (Native Method)
May say "runnable" but JVM doesn't really know, because its handed things off to the system to handle..
jrpp
Threads that start with this are all jrun worker threads.
EX: "jrpp-1234"
When jrun talks to the web server it uses jrpp.
Ex: jrun.servlet.jrpp.JRunProxyService.createRunnable or jrun.servlet.jrpp.JRunProxyService.accept (missed that part)
CfmServlet.service is the ColdFusion service
_factor indicates a decision point (like cfif, cfcase etc..)
macromedia.jdbc.base.BaseStatement = SQL Server JDBC driver
TDSRequest - Way to communicate with db. (Wire protocol for SQL Server)
99% of time when its the SQL Server, its because there's not a good index on the table, and a full table scan needs to be performed.
If we see a lot of coldfusion.runtime near the top of the stack, its probably that the CPU is busy, vs there being an I/O issue.
SeeFusion Demo:
http://demo.seefusion.net:8999/
You can look at sample stack traces from there..
Recognizing Stack Elements
Look for "runnable" threads to find busy processes..
Jrun.* - Jrun
Ignore: jrun.servliet.jrpp.ProxyEndpoint.readyFully
Suspect: jrun.servliet.jrpp.JrppOutputStream$SpillStream.write
Coldfusion.*
Functions: coldfusion.runtime.CfJspPage.*
Tags: coldfusion.sql.tagText.sql.QueryTag
Probably Innocent Java
java.util.*
java.lang.*
Suspicious Java
java.net.*
java.io.*
Your Code!
cfApplication2ecfm726408707.runPage(D:\Websites\blah.cfm\Application.cfm:577)
If the error contains 'bin' its very possible that its the JVM that's taken a dump.
More info will be posted tonight on http://www.darylb.net/
Should have bailed on Promiscuous models and come to the stack trace one.
ReplyDelete