0

We want to set up Orbeon Forms PE replication but we cannot use multicasting as proposed in the docs.

We have two nodes - 172.13.238.241 and 172.13.238.242 and the problem seems to be with the EhCache part. I open the form, load balancer (haproxy) directs me to a node, I turn of the second node and then for several minutes all the requests in the brower fail. Eventually the request start to work again but they are very slow. This is what I have in node 1 (another node has same config with IP-s replaced with each other and it has a different uniqueId value):

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
         channelSendOptions="asynchronous"
         channelStartOptions="3">
  <Manager className="org.apache.catalina.ha.session.DeltaManager"
           expireSessionsOnShutdown="false"
           notifyListenersOnReplication="true"/>
    <Channel className="org.apache.catalina.tribes.group.GroupChannel">
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
        <Member className="org.apache.catalina.tribes.membership.StaticMember"
                port="4100"
                host="172.13.238.242"
                uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2}" />
      </Interceptor>
      <Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
                address="172.13.238.241"
                port="4100"
                autoBind="0"
                maxThreads="6"
                selectorTimeout="5000" />
      <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
        <Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
      </Sender>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor"/>
      <Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
    </Channel>
    <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
    <ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>

I wonder if anyone could spot some mistakes in my ehcache configuration.

Master Drools
  • 728
  • 6
  • 18
  • Could you tell us more about why you cannot use multicasting? Is that a limitation of your network? If so, could you share more information about that setup that prevent multicasting from working? -Alex – avernet Jun 17 '22 at 21:03
  • Yes, unfortunately it is the limitation of our network that the multicasting is not available between the two sites. – Master Drools Jun 20 '22 at 05:27
  • If by using the term "site" you imply that there is quite a bit of distance between the servers, then indeed a cluster might not be the solution you're looking for, as my understanding is that this clustering is designed with the expectations that the machines on the cluster are very close, typically on the same network. If the sites you're referring to are indeed at quite a distance, say one on the East Coast and one on the West Coast, would having a separate cluster on each site + synchronization at the database level between the databases in each site make sense? -Alex – avernet Jun 21 '22 at 05:26
  • Hi @MasterDrools, just curious, do you have any additional thoughts on your multicasting setup, based on some the questions in my previous comment? – avernet Jun 27 '22 at 20:11
  • The distance between "sites" is a few buildings, not more. – Master Drools Jun 28 '22 at 10:06
  • Got it, then indeed, it should be fine to enable replication between those servers. Have you tried using the TCP Unicast configuration (instead of UDP Multicast)? See for instance page 19 of this document (https://www.ehcache.org/generated/2.10.0/pdf/Ehcache_Replication_Guide.pdf). -Alex – avernet Jun 30 '22 at 16:46
  • Hi @MasterDrools, did you get a chance to try the TCP Unicast configuration, or have you maybe found another way to make this work? – avernet Jul 11 '22 at 20:52

0 Answers0