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


Reply via email to