Hi,
Question:
Can someone familiar with the source of / running FastPath let me know if FastPath is expected to function in a cluster or not?
Background:
I have a loadbalanced openfire cluster of two servers that I wish to deploy Fastpath on. I have Fastpath installed on both boxes but the workgroup I have set up does not appear to cluster.
If I direct my client to log into server A the Fastpath service on Server A will show the workgroup as open, and a FastPath webchat connected to Server A will show that agents are available. However FastPath on server B will still think that no agents are available and its webchat client will show the workgroup as closed (offline).
The source code for fastpath appears to support clustering in some respects but not others. For example the FastPath jspf pages include a check-cluster.jspf to redirect to the senior cluster member for configuration (not that this actually works but that is another issue).
I have got a copy of the source debugging in eclipse in on Server C hooked to the cluster. Stepping through the source it appears that FastPath maintains its own local in memory cache of online users which is updated by processing presence packets:
org.jivesoftware.xmpp.workgroup:
/**
-
Simple stand-alone implementation of an in-memory agent session list.
-
@author Derek DeMoro
*/
public class AgentSessionList {private Map<AgentSession, String> sessionList = new ConcurrentHashMap<AgentSession, String>();
private Queue listenerList = new ConcurrentLinkedQueue();
As far as I can make out presence packets are not sent directly to other cluster members, they are expected to pick up session status from the clustered caches, thus the local cache never knows about agents connected to other servers.
Please let me know if I have misunderstood anythign here as I am very new to this code.
Thanks you in advance for any help / answers you can give.
Ben