CR-2563 JEChangelogDB removing a synchronized block in a heavily hit path
JEChangelogDB.java:
Used ConcurrentMap for domainToReplicaDBs.
Added shutdown field to better protect various code paths against shutdown.
In getOrCreateReplicaDB(), removed global synchronization block with fined grained synchronization code that is only used on JEReplicaDB creation.
Added getExistingOrNewDomainMap(), getExistingOrNewReplicaDB().
Extracted innerShutdownDomain() from shutdownDomain().
In shutdownDB(), ensured shutdown of all the replicaDBs.
In shutdownDB(), shutdownDomain() and getOrCreateReplicaDB() check whether the DB is shutting down.
In removeDomain() and innerShutdownDomain() ensured the domainMap is removed before shutting down the replicaDBs.
replication.properties:
Added an error message to be used when the DB is shutting down.
Extracted and separated method init() from JEReplicaDB ctor.
JEReplicaDB.java:
In ctor, renamed id parameter to serverId + removed queueSize parameter.
JEReplicaDBTest.java:
Consequence of the change to JEReplicaDB.