[jboss-user] [EJB3] - Re: JBoss 6.1.0.Final SFSB concurrency issue
Octavian Pop [https://community.jboss.org/people/PopOctavian] created the discussion Re: JBoss 6.1.0.Final SFSB concurrency issue To view the discussion, visit: https://community.jboss.org/message/830287#830287 -- No one experienced this? Below I posted the ContainerManagedConcurrencyInterceptor implementation which is invoked when a method from statefull beans is invoked. public Object invoke(Invocation invocation) throws Throwable { Lock lock = getLock(invocation); long time = DEFAULT_MAX_TIMEOUT_VALUE; TimeUnit unit = DEFAULT_MAX_TIMEOUT_UNIT; AccessTimeoutEffigy timeout = getAccessTimeout((MethodInvocation) invocation); if (timeout != null) { if (timeout.getTimeout() 0) { // for any negative value of timeout, we just default to max timeout val and max timeout unit. // violation of spec! But we don't want to wait indefinitely. logger.debug(Ignoring a negative @AccessTimeout value: + timeout.getTimeout() + and timeout unit: + timeout.getUnit().name() + . Will default to timeout value: + DEFAULT_MAX_TIMEOUT_VALUE + and timeout unit: + DEFAULT_MAX_TIMEOUT_UNIT.name()); } else { time = timeout.getTimeout(); unit = timeout.getUnit(); } } boolean success = lock.tryLock(time, unit); if (!success) { throw new ConcurrentAccessTimeoutException(EJB 3.1 PFD2 4.8.5.5.1 concurrent access timeout on + invocation + - could not obtain lock within + time + unit.name()); } try { return invocation.invokeNext(); } finally { lock.unlock(); } } The invocations on incrementNumber from GenericSFB are serialized at boolean success = lock.tryLock(time, unit); It does not make sens to have mutual exclusion for statefull beans invocatins, as it looks to be implemented. -- Reply to this message by going to Community [https://community.jboss.org/message/830287#830287] Start a new discussion in EJB3 at Community [https://community.jboss.org/choose-container!input.jspa?contentType=1containerType=14container=2029] ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB3] - Re: JBoss 6.1.0.Final SFSB concurrency issue
Octavian Pop [https://community.jboss.org/people/PopOctavian] created the discussion Re: JBoss 6.1.0.Final SFSB concurrency issue To view the discussion, visit: https://community.jboss.org/message/828952#828952 -- It is the community JBoss AS 6.1.0.Final. -- Reply to this message by going to Community [https://community.jboss.org/message/828952#828952] Start a new discussion in EJB3 at Community [https://community.jboss.org/choose-container!input.jspa?contentType=1containerType=14container=2029] ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB3] - JBoss 6.1.0.Final SFSB concurrency issue
Octavian Pop [https://community.jboss.org/people/PopOctavian] created the discussion JBoss 6.1.0.Final SFSB concurrency issue To view the discussion, visit: https://community.jboss.org/message/828891#828891 -- Hi, I am trying to run a test to investigate a performace issue after upgrading from JBoss 4.0.5 to 6.1. For this I use a simple test application with a service which starts threads, each thread looks-up a SFSB instace and execute a method to increment a number. From this test I notticed that SFSB method calls in the multi-threaded test are serialized - one execution after the other. Investigating in more detail I found that this serialization is caused by CMC interceptor from server/current/deploy/ejb3-interceptors-aop.xml. If I commented out CMC, performance increased significantly. Is this a known behavior? What are the implications if I comment CMC? Thanks. Below are code snippets from test: @Service public class TestingService { public static int numberOfThreads=2; public static void start() throws Exception { startTest(numberOfThreads); } public static void startTest(int threadNumber) throws InterruptedException { Thread [] threads = new Thread[threadNumber]; for (int i=0;i threadNumber;i++) { Thread t = new Thread() { public void run() { Client testClient = new Client(); testClient.processNumber(Math.round(Math.random()*1000)); testClient.destroy(); } }; t.start(); threads[i] = t; } for(int i=0; ithreadNumber; i++) { threads[i].join(); } } } public class Client { IGenericSFB genericSFB; public Client() { genericSFB = (IGenericSFB) ServiceLocator.getLocalService(GenericSFB.class.getSimpleName()); System.out.println(This address + genericSFB + + genericSFB.hashCode()); } public void processNumber(Long number) { System.out.println(Client - Start incrementing + number); genericSFB.incrementNumber(number); System.out.println(Client - Finish incrementing + number); } ... @Stateful public class GenericSFB implements IGenericSFB, Serializable { private int number; private String stuff; private String someOtherStuff; public Long incrementNumber(Long number) { System.out.println(SFB - start incrementing number + number + by + this); try { Thread.currentThread().sleep(1); } catch (InterruptedException e){} System.out.println(SFB - finish incrementing number + number); return 0L; } ... -- Reply to this message by going to Community [https://community.jboss.org/message/828891#828891] Start a new discussion in EJB3 at Community [https://community.jboss.org/choose-container!input.jspa?contentType=1containerType=14container=2029] ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [EJB3] - Re: JBoss tmp filder increased size
Octavian Pop [http://community.jboss.org/people/PopOctavian] created the discussion Re: JBoss tmp filder increased size To view the discussion, visit: http://community.jboss.org/message/573241#573241 -- I managed to control the size of .ser files by calling the @Remove method when handling exception thrown sfbs. -- Reply to this message by going to Community [http://community.jboss.org/message/573241#573241] Start a new discussion in EJB3 at Community [http://community.jboss.org/choose-container!input.jspa?contentType=1containerType=14container=2029] ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user