I think Darren's note here may have been a reply to Snake's earlier
questions about requests being in a thread state that was locked.
As to the question below, Russ (who goes by the nickname Snake, for those
following along), no. FR does not "have a way to breakdown memory usage and
find out what requests and what variable scopes are consuming how much
memory, like the
CF8 server monitor does".
I'll offer the answer as I understand it, and FR folks can chime in with
follow up.
There are a couple of things to understand about this matter. First, the CF8
monitor's ability to do that (which some should be told is available only in
CF8 Enterprise) is based on the fact that CF8 enterprise has enabled hooks
into itself to report that info. FusionReactor itself doesn't weave itself
into CF the same way, so doesn't have access to that info. More on that in a
moment.
Second, it's worth noting that the CF 8 monitor feature to provide that
memory info ("start memory tracking") is in fact an expensive operation, and
one that has even brought some servers down when enabled by users. (Some of
you know that I've written as extensively on the CF8 monitor as I have on
FusionReactor, so I'm speaking from experience. Not just trying to pick on
the CF8 Monitor. Each tool has its strengths.) So that feature is optional
and can be enabled/disabled.
Third, the fact that the CF 8 monitor shows that info is simply because CF8
Enterprise exposes that info in an Admin API. Anyone can get it. You don't
need to use the CF8 monitor (though most typically do.) My point is that
FusionReactor *could* in fact get access to the info, and show it. But FR's
designed as a tool that works the same on any J2EE server. Since the API is
CF-specific, it's not a feature in FR to present that info (for now, though
perhaps that may change.)
But you may well be asking this from the perspective that you do NOT run CF8
Enterprise, and therefore wish you could have access to the info. Again,
the problem is that FR does not weave itself into the internals of CF the
way the "memory tracking" feature can. That took Adobe engineers to enable
that. It would be difficult (if not impossible) for Intergral to enable that
without Adobe's involvement, and naturally Adobe regard this as a benefit
for upgrading to Enterprise.
So we on the outside (no running CF 8 Enterprise) are indeed left out in the
cold. The closest you can come, in my opinion, is that it may be very
valuable for people to at least know how many CF sessions they have. In my
experience, a great deal of memory can be lost to an unepectedly high number
of sessions. I blogged about a simple tool that can report that for you
(
http://www.carehart.org/blog/client/index.cfm/2009/1/22/tracking_count_of_s
essions_per_application). I highly recommend folks get and run that code
(free, and simple to use). And it reports the same whether you're using CF
or J2EE sessions (an option many may not notice in the CF Admin session mgt
settings).
Actually, something we might ask FR to add would be a means to track the
number of J2EE sessions. They could do that and still have it work for all
J2EE app servers. The only negative is that those using CF without enabling
J2EE sessions could be confused. I'd argue the info should only be shown if
in fact J2EE sessions are enabled, and not left showing 0 (the way the Jrun
Metrics do) if J2EE sessions are not enabled.
Hope that's helpful, Russ.
On Behalf Of Darren Pywell [FusionDebug Team]
Sent: Monday, March 09, 2009 11:38 AM
To: FusionReactor