我正在处理采购订单的应用程序。
此应用程序构建于EJB1上并在IBM Websphere上运行。
我有一个需要解决的场景/问题。EJB 2中的Ashiving Singleton功能会话Bean
有一个Stateless Session Bean
其中处理大量的订单(通常订单数量约为5K)。我想让这个功能同步。
即,如果其中一个用户激活订单处理,则在第一次处理完成之前,没有其他用户应该能够发起该过程。
由于一些限制,我无法将其升级到EJB3。
有没有任何有效的方法来解决这个问题?
我希望在任何提供的解决方案需要更少的代码改变以及..
否不存在多个服务器实例。只有一个。关于订单,它们将作为未处理的订单存储在数据库中。管理员用户将每天或几天批量处理它们。处理实际上将记录从一个表移动到另一个表。但是单击一个调用EJB方法的按钮。它有点耗时的过程,可能需要3-4分钟。我想避免的是另一个管理员用户启动流程,而一个启动的流程将持续进行。 –
所以,像向无状态bean添加一个静态字段,然后在该方法中对其进行同步那样简单的事情应该能够做到。 'private static final Object syncObj = new Object();' – Tracy