[jboss-user] [EJB3] - JBoss 6.1.0.Final SFSB concurrency issue

Octavian Pop do-not-reply at jboss.com
Fri Jul 19 11:19:34 EDT 2013


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; i<threadNumber; 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(10000);
        }
        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=1&containerType=14&container=2029]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20130719/0b766194/attachment-0001.html 


More information about the jboss-user mailing list