BTW, would be nice to have a summary of various audit requirements
(also see a thread that started last night on the user list). There's
SQL-level audit, object-level audit, anything else?
For object-level audit, the simplest thing is to track DataChannel
graph events. Unlike lifecycle events that we borrowed from JPA, those
actually contain all object deltas (this is why I sometimes call
Cayenne "the git of ORM").
(Now there's too many events / interceptors / delegates accumulated in
the framework over the years... almost feel like going tapestry5 by
dumping all backwards compatibility at some point and designing
something consistent end to end :-/ )
Andrus
On Feb 11, 2009, at 9:01 AM, Andrus Adamchik wrote:
On Feb 11, 2009, at 8:50 AM, Aristedes Maniatis wrote:
Would Cayenne keep aggregate statistics (min/av/max/count) tracked
internally? That would make it easy for a user to monitor for slow
selects without writing a listener at all.
The main goal is to to expose enough raw data via JMX. So all events
will be stored in an MBean ("MBean" is a JMX term for managed
object), but no statistical postprocessing is planned at this level.
More advanced aggregation and reporting should be done via custom
extensions (which we may or may not include in Cayenne). This is the
most flexible pattern from my past JMX experience.
Is there a symmetry between Lifecycle events which track the
progress of an object entity, and these QueryLogger events which
track what happens to the database (although not db entities?)?
Due to potential ORM complexities (things often don't map one to one
between DB rows and objects), I'd say there will be a substantial
mismatch.
Would QueryLogger listeners be something to be configured in the
modeler?
No plans for that yet.
Andrus