我正在處理採購訂單的應用程序。
此應用程序構建於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