Java, EJB, Concurrency lock for all methods
concurrency, ejb, java, locking
Solution
@Lock(LockType.WRITE) locks ALL EJB methods of the bean, so it already does what you want.
Stateless beans only handle one client at a time, so concurrency should rarely be a problem there.
Problem
I have EJB with two methods ``` @Singleton(name = "RatingCalculatorEJB") public class RatingCalculatorBean { public void countRating() {} public void countRating(int someID) {} } ``` By default all methods has concurrency lock: @Lock(LockType.WRITE) If method invoked by any thread - another thread will wait to invoke this method. But I need more - if any method invoked by a thread, all other threads that call any method of EJB should wait. Does I have any way to do it? The same question for @Stateless beans