[jboss-user] [EJB3] - How do javax.ejb.Singletons work?
John Lee
do-not-reply at jboss.com
Mon Mar 25 15:47:50 EDT 2013
John Lee [https://community.jboss.org/people/jhn134910] created the discussion
"How do javax.ejb.Singletons work?"
To view the discussion, visit: https://community.jboss.org/message/804718#804718
--------------------------------------------------------------
Are singletons implemented using synchronized methods?
I have an EJB singleton, say:
@Singleton
public void MySingleton {
...
public void receive(final String string) {
x.callMyBlockingMethod(string);
}
}
Consider the scenario, where this is running in JBOSS standalone. This singleton shall be called from multiple threads, with names Thread-1, Thread-2 and Thread-3 in that order. Thread-1 calls the blocking method which doesn't return for 10 seconds. Thread-2 arrives at the receive method shortly after Thread-1, followed shortly by Thread-3 and both wait for the lock to be released by Thread-1. Is there anything in the EJB standard regarding singletons that guarantees that Thread-2 shall aquire the lock before Thread-3 once Thread-1 releases it?
>From my testing with synchronized methods I have verified that synchronized methods provide no such guarantee.
I'm going to test this singleton behaviour but if my test shows that Thread-2 is indeed processed before Thread-3 and order is maintained, it shall not tell me that this is guaranteed behaviour, and is merely a consequence of using a particular OS, JVM or EJB container implementation. So does @Singleton offer any guarantees?
If it does, are there any gotchas about using this behavior to queue up client requests against singleton where they wait to acquire the lock?
--------------------------------------------------------------
Reply to this message by going to Community
[https://community.jboss.org/message/804718#804718]
Start a new discussion in EJB3 at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2029]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130325/496810a3/attachment-0001.html
More information about the jboss-user
mailing list