Hello, i'm using the seam-wrapper for EJB3 timers via @Asynchronous. In a 
simple case it works fine:

Timer iface:
@Local
  | public interface TimerTester {
  |     @Asynchronous
  |     public abstract Timer say(String what, @Expiration
  |     Date expireTime, @IntervalDuration
  |     Long intervallDuration,  @Duration Long duration);
  | }

Timer Bean:
@Name("timerTester")
  | @AutoCreate
  | @Stateless
  | public class TimerTesterImpl implements TimerTester{
  |     @In
  |     Timer timer;
  |     @Resource
  |     TimerService timerService;
  |     public Timer say(String what, Date expireTime, Long intervallDuration, 
Long duration) {
  |             System.out.println(what);
  |             return timer;
  |     }
  | }

controller (stateless bean with local iface):

public void sayHello() {
  |             Timer timer =timerTester.say("hello", new 
Date(System.currentTimeMillis()+1000), 10000l,10l); 
  |             log.info(timer, null);
  |     }

Page

  | <h:commandLink value="Say Hello!" action="#{sampleController.sayHello}"/>


My case, which doesn't work anymore: 

SFSB:

  | ...
  | @In(create = true)
  |     OfferLifecycle offerLifecycle;
  | ...
  | if (persistOffer()) {
  |                     if (schedule) {
  | 
  |                     timer = 
offerLifecycle.scheduleOfferStart(inOffer.getId(), inOffer.getStartTimestamp());
  | 
  |                             debug("offer start pending with timer ");
  | 
  |                             timer = 
offerLifecycle.scheduleOfferEnd(inOffer.getId(), inOffer.getEndTimestamp());
  | 
  |                             debug("offer end pending with timer");
  |                     }
Timer bean:

@Local
  | public interface OfferLifecycle {
  |     @Asynchronous
  |     public abstract Timer scheduleOfferStart(Long offerId, @Expiration
  |     Date startTime);
  |     @Asynchronous
  |     public abstract Timer scheduleOfferEnd(Long offerId, @Expiration
  |     Date expireTime);       
  | }

@Stateless
  | @Name("offerLifecycle")
  | public class OfferLifecycleBean implements OfferLifecycle {
  | 
  |     @In(create = true)
  |     OfferDAO offerDAO;
  |     @In
  |     Timer timer;
  |     @Resource
  |     TimerService timerService;
  | 
  |     public Timer scheduleOfferStart(Long offerId, Date startTime) {
  |             offerStart(loadOffer(offerId));
  |             return timer;
  |     }
  |     public Timer scheduleOfferEnd(Long offerId, Date expireTime) {
  | 
  |             offerEnd(loadOffer(offerId));           
  |             return timer;
  |     }
  | private Offer loadOffer(Long offerId) {
  |             return offerDAO.findById(       offerId,
  |                                                                     
LockMode.UPGRADE);
  |     }

persistOffer() has  flushed the session (because of flush mode manual)

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4039778#4039778

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4039778
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to