YES, the access to EJB is serialized! When C1 calls x.a() EJB container will not allow other client to use the same EJB instance until first client not finish with it. But, C2 will not wait until C1 finish with this EJB x instance to offer it to other client, EJB container will offer to C2 another instance of the same x EJB. EJB container in instance pool does have or could have more instances of the same x EJB. EJB container will activate new instance of x EJB if it is needed by additional client (instance pooling).