You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/04/08 15:07:17 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2186] more work
on cluster stability
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new 64b8fe7 [OPENMEETINGS-2186] more work on cluster stability
64b8fe7 is described below
commit 64b8fe7dbcd52789f85639c09a597fca63934882
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Apr 8 22:07:02 2020 +0700
[OPENMEETINGS-2186] more work on cluster stability
---
.../apache/openmeetings/web/app/ClientManager.java | 25 ++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 562bb0e..fd62743 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -102,13 +102,17 @@ public class ClientManager implements IClientManager {
@PostConstruct
void init() {
+ log.debug("Cluster:: PostConstruct");
+ onlineClients.putAll(map());
+ onlineRooms.putAll(rooms());
+ onlineServers.putAll(servers());
map().addEntryListener(new ClientListener(), true);
rooms().addEntryListener(new RoomListener(), true);
servers().addEntryListener(new EntryUpdatedListener<String, ServerInfo>() {
@Override
public void entryUpdated(EntryEvent<String, ServerInfo> event) {
- log.trace("ServerListener::Update");
+ log.debug("Cluster:: Server was updated {} -> {}", event.getKey(), event.getValue());
onlineServers.put(event.getKey(), event.getValue());
}
}, true);
@@ -189,9 +193,12 @@ public class ClientManager implements IClientManager {
}
public void serverAdded(String serverId, String url) {
- ServerInfo si = new ServerInfo(url);
- servers().put(serverId, si);
- onlineServers.put(serverId, si);
+ if (!onlineServers.containsKey(serverId)) {
+ ServerInfo si = new ServerInfo(url);
+ servers().put(serverId, si);
+ log.debug("Cluster:: server with id '{}' was added", serverId);
+ onlineServers.put(serverId, si);
+ }
}
public void serverRemoved(String serverId) {
@@ -201,6 +208,7 @@ public class ClientManager implements IClientManager {
exit(e.getValue());
}
}
+ log.debug("Cluster:: server with id '{}' was removed", serverId);
servers().remove(serverId);
onlineServers.remove(serverId);
}
@@ -237,6 +245,7 @@ public class ClientManager implements IClientManager {
private void addRoomToServer(String serverId, Room r) {
if (!onlineServers.get(serverId).getRooms().contains(r.getId())) {
+ log.debug("Cluster:: room {} was not found for server '{}', adding ...", r.getId(), serverId);
IMap<String, ServerInfo> servers = servers();
servers.lock(serverId);
ServerInfo si = servers.get(serverId);
@@ -372,6 +381,7 @@ public class ClientManager implements IClientManager {
public String getServerUrl(Room r, Function<String, String> inGenerator) {
if (onlineServers.size() == 1) {
+ log.debug("Cluster:: The only server found");
return null;
}
Function<String, String> generator = inGenerator == null ? baseUrl -> {
@@ -463,12 +473,14 @@ public class ClientManager implements IClientManager {
public void add(Room r) {
if (rooms.add(r.getId())) {
+ log.debug("Cluster:: room {} is added to server, whole list {}", r.getId(), rooms);
capacity += r.getCapacity();
}
}
public void remove(Room r) {
if (rooms.remove(r.getId())) {
+ log.debug("Cluster:: room {} is removed from server, whole list {}", r.getId(), rooms);
capacity -= r.getCapacity();
}
}
@@ -484,6 +496,11 @@ public class ClientManager implements IClientManager {
public Set<Long> getRooms() {
return rooms;
}
+
+ @Override
+ public String toString() {
+ return "ServerInfo[rooms: " + rooms + "]";
+ }
}
public static class InstantToken implements Serializable {