rejectedSessions = 0 ;
sessionReplaceCounter = 0 ;
counterNoStateTransfered = 0 ;
- setMaxActive(getActiveSessions());
+ maxActive = getActiveSessions() ;
sessionCounter = getActiveSessions() ;
counterReceive_EVT_ALL_SESSION_DATA = 0;
counterReceive_EVT_GET_ALL_SESSIONS = 0;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.locks.ReadWriteLock;
-import java.util.concurrent.locks.ReentrantReadWriteLock;
import javax.management.MBeanRegistration;
import javax.management.MBeanServer;
protected int sessionCounter=0;
protected int maxActive=0;
- private final ReadWriteLock maxActiveLock = new ReentrantReadWriteLock();
// number of duplicated session ids - anything >0 means we have problems
protected int duplicates=0;
sessions.put(session.getIdInternal(), session);
int size = sessions.size();
-
- maxActiveLock.readLock().lock();
- if (size > maxActive) {
- maxActiveLock.readLock().unlock();
- maxActiveLock.writeLock().lock();
- if (size > maxActive) {
- maxActive = size;
- }
- maxActiveLock.writeLock().unlock();
- } else {
- maxActiveLock.readLock().unlock();
+ if( size > maxActive ) {
+ maxActive = size;
}
}
* @return The highest number of concurrent active sessions
*/
public int getMaxActive() {
- maxActiveLock.readLock().lock();
- int result = maxActive;
- maxActiveLock.readLock().unlock();
- return result;
+ return maxActive;
}
public void setMaxActive(int maxActive) {
- maxActiveLock.writeLock().lock();
this.maxActive = maxActive;
- maxActiveLock.writeLock().unlock();
}