tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Radhakrishna Kalyan <nrkkal...@gmail.com>
Subject Exception while running openejb application
Date Sat, 01 Nov 2014 20:22:36 GMT
Hi,

Yesterday we had deployed our application in our production for the first
time which was developed using OpenEJB standalone.
But we got an exception after a while when we tried to perform certain
operation.
Please find the attached exception file.

The application shall read certain data from a table(Invoice) in database
and create an entry in an another table (BatchOrder). After that it shall
create an xml message using that data
and send to a jms queue.
In the console log everything looks fine and the jms message has been sent.
In the console log the id of the newly created BatchOrder record is
printed, but at the end when we check the database no record has been
created in the table BatchOrder.

The classes involved are 3:
BatchManager
BatchOrderDao
OverdueBatchTimerService

Here is the following code snippet of my application.

---------------------------------------------------------------------------------------------------------------------------
@Stateless
public class BatchManager{
    @EJB
    private BatchOrderDao batchOrderDao;

    @Asynchronous
    @Lock(LockType.READ)
    public void createBatchMessage(...){
        ...Some code to read Invoice table...

        batchOrderDao.create(batchOrder);

        ...Some more code to send jms message...

    }
}

---------------------------------------------------------------------------------------------------------------------------
@Stateless
public class BatchOrderDao{

    @PersistenceContext(unitName = "datasource")
    private EntityManager entityManager;

    public void create(BatchOrder entity){
        entityManager.persist(entity);
        entityManager.flush();
    }

    @SuppressWarnings("unchecked")
    public List<Long> findBatchesWithOverdueReceipts(final Date date) {
        final Criteria criteria =
getSession().createCriteria(BatchOrder.class);

criteria.setProjection(Projections.distinct(Projections.property("iId")));
        criteria.add(Restrictions.isNull("iAlarmed"));
        ....Some more Restrictions.....
        return criteria.list();
    }

}

---------------------------------------------------------------------------------------------------------------------------
@Entity
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Table(name = "BATCH_ORDER")
public class BatchOrder {
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "IdSeq")
  @SequenceGenerator(name = "IdSeq", sequenceName = "BOID_SEQ",
allocationSize = 1)
  @Column(name = "BO_ID", unique = true, nullable = false, updatable =
false)
  private Long iId;

  @Column(name = "BO_ALARMED", unique = false, nullable = true, updatable =
true)
  private Date iAlarmed;

  .... Some more fields....

}
---------------------------------------------------------------------------------------------------------------------------
@Singleton
@Startup
@Lock(LockType.READ)
private class OverdueBatchTimerService{
    @Inject
    private BatchOrderDao dao;
    @Resource
    private TimerService timerService;
    private static final long _5MINUTES_IN_MILLISECONDS = 5l * 60l * 1000l;

    @PostConstruct
    public void initialize() throws Exception {
        timerService.createSingleActionTimer(_5MINUTES_IN_MILLISECONDS, new
TimerConfig());
    }

    @Timeout
    public void onTimeout(final Timer timer) {
        try{
            .. Some Code....
            dao.findBatchesWithOverdueReceipts(time);
            .... Some more code....
        } catch (final Exception ignore) {
            LOG.error("Some exception occured while excecuting onTimeout,
but IGNORED.", ignore);
        } finally {
            timerService.createSingleActionTimer(_5MINUTES_IN_MILLISECONDS,
new TimerConfig());
        }
    }
}
---------------------------------------------------------------------------------------------------------------------------

Please let me know if I am making any mistake.


-- 
Thanks and Regards
N Radhakrishna Kalyan

P:  +46 733 312 584
http://about.me/nrkkalyan
<http://about.me/nrkkalyan>

Mime
  • Unnamed multipart/mixed (inline, None, 0 bytes)
View raw message