public class TimerMessage implements MessageListener {

  @Resource
  private MessageDrivenContext mdc;

   ...

  public void onMessage(Message message) {
    ObjectMessage msg = null;
    try {
      if (message instanceof ObjectMessage) {
        msg = (ObjectMessage) message;
        TimerDetailsEntity e = (TimerDetailsEntity) msg.getObject();
        TimerService timerService = mdc.getTimerService();
        Timer timer = timerService.createTimer(e.Date, e);
      }
    } catch (JMSException e) {
      e.printStackTrace();
      mdc.setRollbackOnly();
    } catch (Throwable te) {
      te.printStackTrace();
    }
  } 
... 
