Guillaume,
Personally, I find myself using the logging to track down issues most of
the time as well. Very rarely, I have to rely on remote debugging to
really see the thing going astray step by step. If we would really want
to make this debug flow useful, it would require quite a few features
and I'm not sure this is the right time to invest that amount of time --
there still is a lot of other work to be done with more benefit for the
users in my mind.
On the other hand, I think we could invest some time in improving the
possibilities for logging/auditing problematic message exchanges (or
entire 'flows' by looking at the correlation id). I'm thinking of
- console commands to enable on-the-fly auditing (based on message
properties, exceptions being thrown, ...) to isolate the message
exchanges that have gone wrong
- a command to create an error report (with useful information such as
thread dumps, errors in messages, a subset of the log messages belonging
to the same message flow, ...) -- could also be useful if we want them
to provide more information on the mailing list
Gert
Guillaume Nodet wrote:
I've created the following JIRA issue for ServiceMix NMR.
Do you think it's worth doing it ? Would it help people finding
problems ? I usually use the log file, but having something more
dynamic may be helpful.
On Tue, Mar 11, 2008 at 10:36 AM, Guillaume Nodet (JIRA)
<[EMAIL PROTECTED]> wrote:
Debugging flows
---------------
Key: SMX4NMR-21
URL: https://issues.apache.org/activemq/browse/SMX4NMR-21
Project: ServiceMix NMR
Issue Type: New Feature
Reporter: Guillaume Nodet
Create a set of console commands / OSGi service / NMR listeners to be able to:
* add / remove / disable breakpoints (with conditional evaluation on
exchanges)
* list paused exchanges
* inspect / modify a paused exchange
* resume execution for a exchange
A breakpoint is basically a condition that filters an exchange. If the filter
match, the breakpoint is activated and the flow for the given exchange is
paused. Simple breakpoints include:
* exchanges originated from a given endpoint
* exchanges targeted at a given endpoint
* exchanges in an ERROR status
* ...
Using an ExchangeListener, it should be easy to intercept all the exchanges.
I think the problem is that currently, the only way is to suspend the calling
thread and wait for a signal that would be set by a command when resuming an
exchange. This is not really scalable. Maybe using a flow is a better
option, but I think it would be more intrusive, so that entering / exiting
debug mode may not be easy.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.