<?xml version="1.0" encoding="UTF-8"?>
<!--
 This file is part of the Meeds project (https://meeds.io/).

 Copyright (C) 2020 - 2025 Meeds Association contact@meeds.io

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 3 of the License, or (at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public License
 along with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<config xmlns="urn:org:jgroups"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:org:jgroups file:schema/JGroups-3.0.xsd">
  <TCP
      singleton_name="gatein-tcp-ispn"
      bind_addr="${jgroups.tcp.address:127.0.0.1}"
      bind_port="${gatein.jgroups3.tcp.port:7800}"
      loopback="true"
      port_range="30"
      recv_buf_size="20m"
      send_buf_size="640k"
      max_bundle_size="64000"
      max_bundle_timeout="30"
      enable_bundling="true"
      use_send_queues="true"
      enable_diagnostics="false"
      bundler_type="old"

      thread_naming_pattern="pl"

      thread_pool.enabled="true"
      thread_pool.min_threads="2"
      thread_pool.max_threads="30"
      thread_pool.keep_alive_time="60000"
      thread_pool.queue_enabled="true"
      thread_pool.queue_max_size="100"
      thread_pool.rejection_policy="Discard"

      oob_thread_pool.enabled="true"
      oob_thread_pool.min_threads="2"
      oob_thread_pool.max_threads="30"
      oob_thread_pool.keep_alive_time="60000"
      oob_thread_pool.queue_enabled="false"
      oob_thread_pool.queue_max_size="100"
      oob_thread_pool.rejection_policy="Discard"
      />

  <!-- Ergonomics, new in JGroups 2.11, are disabled by default in TCPPING until JGRP-1253 is resolved -->
  <!--
  <TCPPING timeout="3000"
           initial_hosts="localhost[7800],localhost[7801]"
           port_range="5"
           num_initial_members="3"
           ergonomics="false"
       />
  -->

  <MPING bind_addr="${jgroups.bind_addr:127.0.0.1}" break_on_coord_rsp="true"
         mcast_addr="${jgroups.mping.mcast_addr:228.2.4.6}"
         mcast_port="${jgroups.mping.mcast_port:43366}"
         ip_ttl="${jgroups.udp.ip_ttl:2}"
         num_initial_members="3"/>

  <MERGE2 max_interval="30000" min_interval="10000"/>
  <FD_SOCK/>
  <FD timeout="3000" max_tries="3"/>
  <VERIFY_SUSPECT timeout="1500"/>
  <pbcast.NAKACK
      use_mcast_xmit="false"
      retransmit_timeout="300,600,1200,2400,4800"
      discard_delivered_msgs="false"/>
  <UNICAST2 stable_interval="5000"
            max_bytes="1m"
            max_msg_batch_size="100"
            xmit_table_num_rows="20"
            xmit_table_msgs_per_row="10000"
            xmit_table_max_compaction_time="10000" />
  <pbcast.STABLE stability_delay="500" desired_avg_gossip="5000" max_bytes="1m"/>
  <pbcast.GMS print_local_addr="true" join_timeout="3000" view_bundling="true"/>
  <UFC max_credits="200k" min_threshold="0.20"/>
  <MFC max_credits="200k" min_threshold="0.20"/>
  <FRAG2 frag_size="60000"/>
  <RSVP timeout="60000" resend_interval="500" ack_on_delivery="false"/>
</config>