Announcement Announcement Module
No announcement yet.
Facilitate logging Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Facilitate logging


    Is there something planned (or maybe already made) to easily get traces of all treatments applied to a message from it's entrance in the message bus to it's last treatment ?

    Currently I try to log all the steps in a database with the message headers ,using AOP, but it seems quite complicated to recreate all the workflow, because there is no header id kept through the treatments.

    Don't you thinks it would be interesting to add an unique Id to the firsts

    messages bus entrance/creation and keep it trough cloning and transforming ?
    Last edited by OsoPardo; Nov 18th, 2008, 07:01 AM.

  • #2
    I guess this issue captures this goal most closely:

    I have tentatively scheduled that for 1.1 M2. Please feel free to add comments to the issue.



    • #3
      Thanks for your reply,

      This is a different and interesting approach and perhaps sufficient for my needs :
      I currently try to have some "real time" monitoring, putting interceptors on each channels and using AOP on each transformer and channel adapters to update my database on each action, whereas the header history allow to only make database update when an error is catch or with an interceptor on the last message bus component, maybe it's enough, I don't no yet...

      I see two eventual issues :
      -if there is a crash before having time to update the database with error handler or last interceptor, but after some successful operations, like sending a message copy to distant third application : we have no trace and so send a duplicate message, that might not be correctly handle by third application
      -if we need additional specifics informations only accessible from a channel adapter, transformer or other component we'll have to put them as header property, that is quite borrowing when it's a native spring integration component or/and MessageHeaders is immutable

      In both case I think another relative need will be a getName() method on all component which might need to be monitored.

      Meanwhile I created a simple ChannelInterceptorAdapter to add a "workflow id" but this involved to create new MessageHeaders...

      (Sorry if I too badly hurt english language, I shouldn't write such long sentences :o )