Code, sure thing:
| @Local
| public interface OrderProcessor {
| @Asynchronous
| public void process(@Duration long startInMS, String id);
| }
|
| @Stateless
| @Name("OrderProcessor")
| @Interceptors(SeamInterceptor.class)
| public class OrderProcessorImpl implements OrderProcessor, Serializable {
| private static final long serialVersionUID = -8591335166721681758L;
| private static final Log LOG =
LogFactory.getLog(OrderProcessorImpl.class);
|
| @In(value="bright", create=true)
| private transient EntityManager em;
|
| public void process(long initialStartMS, String id) {
| LOG.info("Processing transaction: " + id);
|
| AcquisitionTransaction acquisition =
em.find(AcquisitionTransaction.class, id);
|
| OrderUtil.process(em, acquisition);
|
| LOG.info("Finished processing txn: " + id + " = " +
acquisition.getLifecycle());
| }
| }
|
So obviously there's a bunch of work going on in the static OrderUtil.process
method. OrderProcessor.process(String id) is called from a JSF action method
on another stateless Seam component.
If I leave "@Asynchronous" on the interface, and therefore give it to the timer
service, it blows up with the flush error, rolls back, etc.
If I comment out the @Asynchronous on the interface, and therefore just execute
this inline with the JSF request, then everything works just as it has been
(fine). Transaction commits, no errors, etc.
Since all I'm doing to make it work / not work is comment / uncomment
@Asynchronous, it's almost like there's a difference of environment going on
between a Seam / facelets request lifecycle, and a timer environment wtr to
hibernate?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3981934#3981934
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3981934
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user