[seam-dev] Transaction Events

Dave Oxley dave at daveoxley.co.uk
Thu Jan 5 03:09:37 EST 2012


Hi Stuart,

Thanks for that. It works correctly for 7.1.CR1b.

Cheers,
Dave.

On 05/01/12 17:47, Stuart Douglas wrote:
>
> Can you try with 7.1.CR1b ? 
>
> There was a bug around this in the 7.0 series that could be causing this.
>
> Stuart
>
> On 05/01/2012, at 5:37 PM, Dave Oxley wrote:
>
>> Yes, with: @Observes(during = TransactionPhase.AFTER_SUCCESS)
>>
>> The relevant methods in the booking example (with my added logging) are:
>>     @End
>>     @TransactionAttribute(TransactionAttributeType.REQUIRED)
>>     public void confirm() {
>>         LOG.info("confirm begin");
>>         em.persist(booking);
>>         bookingConfirmedEventSrc.fire(booking);
>>         LOG.info("confirm end");
>>     }
>>
>>     public void onBookingComplete(@Observes(during =
>> TransactionPhase.AFTER_SUCCESS) @Confirmed final Booking booking) {
>>         LOG.info("onBookingComplete begin");
>>         log.bookingConfirmed(booking.getHotel().getName(),
>> booking.getUser().getName());
>>         messages.info(new
>> DefaultBundleKey("booking_confirmed")).defaults("You're booked to
>> stay at the {0} {1}.")
>>                 .params(booking.getHotel().getName(), new
>> PrettyTime(locale).format(booking.getCheckinDate()));
>>         LOG.info("onBookingComplete end");
>>     }
>>
>> Cheers,
>> Dave.
>>
>> On 05/01/12 17:32, Jason Porter wrote:
>>> These are events you're observing?
>>>
>>> On Wed, Jan 4, 2012 at 23:27, Dave Oxley <dave at daveoxley.co.uk
>>> <mailto:dave at daveoxley.co.uk>> wrote:
>>>
>>>     Hi,
>>>
>>>     I've been attempting to add persistence to the seam-cron module for
>>>     which I need to use transaction events. Unfortunately I cannot
>>>     get them
>>>     to work. They always get called immediately rather than when the
>>>     transaction is completed. So I turned to the seam-booking example
>>>     (https://github.com/seam/examples/tree/master/booking) which I
>>>     saw was
>>>     using transaction events and added some logging (attached), but this
>>>     appears to have the same issue. The output from the log is:
>>>
>>>     17:13:16,580 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingAgent]
>>>     (http--127.0.0.1-8080-1) confirm begin
>>>     17:13:16,587 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingHistory]
>>>     (http--127.0.0.1-8080-1) Adding new booking to user's cached
>>>     booking history
>>>     17:13:16,588 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingAgent]
>>>     (http--127.0.0.1-8080-1) onBookingComplete begin
>>>     17:13:16,589 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingAgent]
>>>     (http--127.0.0.1-8080-1) New booking at the W New York - Union
>>>     Square
>>>     confirmed for Shane Bryzak.
>>>     17:13:16,599 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingAgent]
>>>     (http--127.0.0.1-8080-1) onBookingComplete end
>>>     17:13:16,600 INFO
>>>     [org.jboss.seam.examples.booking.booking.BookingAgent]
>>>     (http--127.0.0.1-8080-1) confirm end
>>>
>>>     But in theory the order of the logging should be:
>>>     confirm begin
>>>     confirm end
>>>     onBookingComplete begin
>>>     onBookingComplete end
>>>
>>>     I did note that there was nothing specifying a transaction was
>>>     required
>>>     for the entirety of the confirm method so I also added
>>>     @TransactionAttribute(TransactionAttributeType.REQUIRED) to the
>>>     method
>>>     (also in attached patch), but that had the same result.
>>>
>>>     I've been trying this in jboss-as-web-7.0.2.Final. I'm probably
>>>     doing
>>>     something wrong but I don't know what. Does anyone have any ideas?
>>>
>>>     Cheers,
>>>     Dave.
>>>
>>>     _______________________________________________
>>>     seam-dev mailing list
>>>     seam-dev at lists.jboss.org <mailto:seam-dev at lists.jboss.org>
>>>     https://lists.jboss.org/mailman/listinfo/seam-dev
>>>
>>>
>>>
>>>
>>> -- 
>>> Jason Porter
>>> http://lightguard-jp.blogspot.com <http://lightguard-jp.blogspot.com/>
>>> http://twitter.com/lightguardjp
>>>
>>> Software Engineer
>>> Open Source Advocate
>>> Author of Seam Catch - Next Generation Java Exception Handling
>>>
>>> PGP key id: 926CCFF5
>>> PGP key available at: keyserver.net <http://keyserver.net/>,
>>> pgp.mit.edu <http://pgp.mit.edu/>
>>
>> _______________________________________________
>> seam-dev mailing list
>> seam-dev at lists.jboss.org <mailto:seam-dev at lists.jboss.org>
>> https://lists.jboss.org/mailman/listinfo/seam-dev
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/seam-dev/attachments/20120105/f597c36f/attachment.html 


More information about the seam-dev mailing list