Example: after the invocation of a Person insertPerson() method on a @Stateless or
@Service, i would like to broadcast this new person to a jms topic. But this notification
should only happen if the transaction commits, not if it rolls back.
EJB3 interceptors are always inbetween the container tx interception and the
implementation, so they dont know whether the tx committed, since it has not yet been
committed when they get control again, after the invocation.
1. I read about the SessionSynchronisation interface, but it's for @Stateful ejbs
only. Any particular way i could enable this on @Service?
2. Perhaps the jms-sender code needs to be transaction-aware, and postpone the send until
the tx commits? Is this possible?
3. I could insert an ejb3 handcoded transaction interceptor, (and annotate the ejb
"supports") so that i can order it after my jms-sending interceptor. Can i
re-use jboss code, or do i have to reimplement this transaction-interceptor as ejb3
interceptor?
4. Or i can make a "NotifyingEJB3" that has "supports", and takes care
of forwarding to the actual implementation ("required"), and then sends out the
jms message.
Other possibilities?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160840#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...