powered by Jive Software

Does FastPath Cluster?

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

I think u are right

Fastpath cluster related code is used to avoid issues in cluster so the check-cluster.jspf and clusterlistener implemention is make sure there alwarys run one single fastpath server , if the server is not mark as the seniornode the workgroupManagerStop() will be called

in addition the WorkgroupManager has some error in shutdown , it set the workgroupComparator to null and never set it right again for the workgroupComparator 's default value is set in a static block unless u restart the fastpath plugin …if u install the webchat(the right version,the offical download privode an error version) in the openfire server then the fastpath plugin may never show again…