Occasionally, the Openfire server will crash or go offline or the database server hosting its database will go offline or crash. The crashing almost never happens, but what does usually happen is these servers will go offline (mostly for updates) and come back online.
When this happens, many of our uses have Spark configured to automatically reconnect. It seems when this happens some of the users rosters don’t update properly. As such, after an update cycle on the servers, we’ll often have a lot of users showing connected and online or away from the servers perspective (sessions tab in Openfire), but those users show as offline in other users rosters.
The only fix for this is to have the users that are showing offline in the Spark roster, but connected in Openfire, to logout and reconnect.
An example would be USER1 and USER2 auto-reconnect to the Openfire server after being disconnected due to either the Openfire server or DB server restarting from updates or a crash. Both users show online and connected in the sessions tab of Openfire, but USER2 appears offline to USER1. Both users are able to message. USER1 logging out and back in to his client makes no difference. However, USER2 logging out and back in resolves the issue and USER1 now shows USER2’s proper presence in his roster.
This is strange, because I would expect the sessions tab in Openfire to be the controlling authority as to who is online and not. And I would also expect, as in the previous example, that USER1 logging out and back in to resolve the issue. But, this is not the case.
Any insight to this problem would be great. I am posting this here, because all of our clients are Spark, but I feel like this might actually be an Openfire issue.
- Openfire is version 4.4.1 on Windows Server 2019 Standard with Active Directory enabled for client authentication.
- Openfire database is hosted on Microsoft SQL Server Standard 2014 on Windows Server 2016 Standard.
- Spark is version 2.8.3 on Windows 10 1809. All clients use this Spark version on this Windows version.