<?xml version="1.0" encoding="UTF-8"?>

<router name="router1" kernelpath="../../kernel" release="07.04.00" startorder="sys$log sys$threadpool sys$timer sys$net sys$hacontroller">
  <ha-router>
    <state-transition last="UNKNOWN" current="STANDALONE" operation="start" order="sys$authentication sys$store sys$queuemanager sys$topicmanager sys$mgmt sys$xa sys$routing sys$jndi sys$jms sys$deploy sys$jac sys$scheduler sys$monitor"/>
    <state-transition last="UNKNOWN" current="ACTIVE_SYNC_PREPARE" operation="start" order="sys$authentication sys$store sys$queuemanager sys$topicmanager sys$mgmt sys$xa sys$routing sys$jndi sys$jms sys$deploy sys$jac sys$scheduler sys$monitor"/>
    <state-transition last="UNKNOWN" current="STANDBY_SYNC_PREPARE" operation="standby" order="sys$authentication sys$store sys$queuemanager sys$topicmanager sys$mgmt sys$xa sys$routing sys$jndi sys$jms sys$deploy sys$jac sys$scheduler sys$monitor"/>
    <state-transition last="STANDBY%" current="STANDALONE" operation="resume" order="sys$authentication sys$store sys$queuemanager sys$topicmanager sys$mgmt sys$xa sys$routing sys$jndi sys$jms sys$deploy sys$jac sys$scheduler sys$monitor"/>
  </ha-router>

  <!--  Authentication Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$authentication" authentication-enabled="true">
    <groups>
      <group name="admin">
        <queue-grants>
          <queue-grant name="1FD125740E81F99FE6B3889F038A1DAB"/>
          <queue-grant name="4BC7ACC8A06C21A627C2EAC27DF5305B"/>
          <queue-grant name="4C007D583B8352C85F6E8F97E3B28A48"/>
          <queue-grant name="90E5143BBCC8379B45B09B0BF924B483"/>
          <queue-grant name="9A77FCE4700DA9BF632918B4D6BD4EF9"/>
          <queue-grant name="A1FA0A0D7860EEAD996A5EBAE55B0948"/>
          <queue-grant name="A34C3B6B2461816ED860E7A86B431681"/>
          <queue-grant name="AA58D8284280E8A5781783D7589AB138"/>
          <queue-grant name="B3E6D487D7DC6BE3994076BE9C4558BD"/>
          <queue-grant name="DE8EC4A80C1907CBD54EE17FBA757C78"/>
          <queue-grant name="E10BB9A4ECF0A81D81D57A894A962BB1"/>
          <queue-grant name="NETCOOL"/>
          <queue-grant name="RSCONFIG"/>
          <queue-grant name="RSCONTROL"/>
          <queue-grant name="RSREMOTE"/>
          <queue-grant name="RSSERVER"/>
          <queue-grant name="RSSERVER_EVENT"/>
          <queue-grant name="RSVIEW"/>
          <queue-grant name="RSWIKI"/>
          <queue-grant name="swiftmqmgmt" browse-grant="false" receive-grant="false"/>
          <queue-grant name="swiftmqmgmt@router1" browse-grant="false" receive-grant="false"/>
        </queue-grants>
        <topic-grants>
          <topic-grant name="BROADCAST"/>
          <topic-grant name="NETCOOL_TOPIC"/>
          <topic-grant name="RSACTIONS"/>
          <topic-grant name="RSCONTROLS"/>
          <topic-grant name="RSPROCESS"/>
          <topic-grant name="RSREMOTES"/>
          <topic-grant name="RSSERVERS"/>
          <topic-grant name="RSVIEWS"/>
          <topic-grant name="RSWIKIS"/>
          <topic-grant name="swiftmq.jndi"/>
        </topic-grants>
      </group>
    </groups>
    <resource-limit-groups>
      <resource-limit-group name="public"/>
    </resource-limit-groups>
    <users>
      <user name="admin" group="admin" password="resolve">
        <host-access-list/>
      </user>
    </users>
  </swiftlet>

  <!--  Deploy Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$deploy">
    <deploy-spaces>
      <deploy-space name="extension-swiftlets" path="../../deploy/instance2"/>
      <deploy-space name="jms-app" path="../../jmsapp/instance2"/>
    </deploy-spaces>
  </swiftlet>

  <!--  High Availability Controller Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$hacontroller">
    <configuration-controller>
      <property-substitutions>
        <property-substitution name="sys$jms/listeners/%/bindaddress" substitute-with="bindaddress2"/>
        <property-substitution name="sys$jms/listeners/%/bindaddress2" substitute-with="bindaddress"/>
        <property-substitution name="sys$jms/listeners/%/connectaddress" substitute-with="connectaddress2"/>
        <property-substitution name="sys$jms/listeners/%/connectaddress2" substitute-with="connectaddress"/>
        <property-substitution name="sys$jms/listeners/%/hostname" substitute-with="hostname2"/>
        <property-substitution name="sys$jms/listeners/%/hostname2" substitute-with="hostname"/>
        <property-substitution name="sys$jms/listeners/%/port" substitute-with="port2"/>
        <property-substitution name="sys$jms/listeners/%/port2" substitute-with="port"/>
        <property-substitution name="sys$routing/listeners/%/bindaddress" substitute-with="bindaddress2"/>
        <property-substitution name="sys$routing/listeners/%/bindaddress2" substitute-with="bindaddress"/>
        <property-substitution name="sys$routing/listeners/%/port" substitute-with="port2"/>
        <property-substitution name="sys$routing/listeners/%/port2" substitute-with="port"/>
      </property-substitutions>
      <replication-excludes>
        <replication-exclude name="%/.metadata%"/>
        <replication-exclude name="%/usage%"/>
        <replication-exclude name=".env/hostname"/>
        <replication-exclude name=".env/jre"/>
        <replication-exclude name=".env/os"/>
        <replication-exclude name=".env/release"/>
        <replication-exclude name=".env/router-memory-list%"/>
        <replication-exclude name=".env/startuptime"/>
        <replication-exclude name="sys$deploy%"/>
        <replication-exclude name="sys$hacontroller/configuration-controller%"/>
        <replication-exclude name="sys$hacontroller/connectors%"/>
        <replication-exclude name="sys$hacontroller/listeners%"/>
        <replication-exclude name="sys$hacontroller/preferred-active"/>
        <replication-exclude name="sys$hacontroller/replication-channel%"/>
        <replication-exclude name="sys$hacontroller/replication-tunnels%"/>
        <replication-exclude name="sys$hacontroller/spool%"/>
        <replication-exclude name="sys$log%"/>
        <replication-exclude name="sys$store%"/>
        <replication-exclude name="sys$trace%"/>
      </replication-excludes>
    </configuration-controller>
    <replication-channel>
      <connectors>
        <connector name="1" hostname="192.168.1.212" port="4008"/>
      </connectors>
      <listeners/>
    </replication-channel>
    <replication-tunnels>
      <replication-tunnel name="configuration" tunnel-address="1" versions="600"/>
      <replication-tunnel name="queue" tunnel-address="3" versions="600"/>
      <replication-tunnel name="store" tunnel-address="2" versions="600"/>
    </replication-tunnels>
    <spool directory="../../haspool/instance2"/>
    <threadpool-freezes>
      <threadpool-freeze name="01" poolname="mgmt"/>
      <threadpool-freeze name="02" poolname="jndi"/>
      <threadpool-freeze name="03" poolname="topic"/>
      <threadpool-freeze name="04" poolname="default"/>
      <threadpool-freeze name="05" poolname="queue.timeout"/>
      <threadpool-freeze name="06" poolname="queue.cluster"/>
      <threadpool-freeze name="07" poolname="queue.redispatcher"/>
      <threadpool-freeze name="08" poolname="jms.session"/>
      <threadpool-freeze name="09" poolname="timer.tasks"/>
      <threadpool-freeze name="10" poolname="routing.service"/>
      <threadpool-freeze name="11" poolname="routing.scheduler"/>
      <threadpool-freeze name="12" poolname="routing.exchanger"/>
      <threadpool-freeze name="13" poolname="store.log"/>
    </threadpool-freezes>
  </swiftlet>

  <!--  JMS Application Container Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$jac">
    <static-containers/>
  </swiftlet>

  <!--  JMS Swiftlet (XAASF), Release: 7.4.0  -->

  <swiftlet name="sys$jms">
    <intravm-connection-factories>
      <intravm-connection-factory name="IVMConnectionFactory"/>
      <intravm-connection-factory name="IVMQueueConnectionFactory"/>
      <intravm-connection-factory name="IVMTopicConnectionFactory"/>
    </intravm-connection-factories>
    <listeners>
      <listener name="plainsocket" connectaddress="192.168.1.213" connectaddress2="192.168.1.212" port="4001" port2="4001">
        <connection-factories>
          <connection-factory name="plainsocket@router1"/>
          <connection-factory name="plainsocket_appserver@router1" thread-context-classloader-for-getobject="true"/>
          <connection-factory name="plainsocket_recover@router1" smqp-consumer-cache-size="10"/>
        </connection-factories>
        <host-access-list/>
      </listener>
      <listener name="sslsocket" connectaddress="192.168.1.213" connectaddress2="192.168.1.212" port="4004" port2="4004" socketfactory-class="com.swiftmq.net.JSSESocketFactory">
        <connection-factories>
          <connection-factory name="ConnectionFactory" reconnect-max-retries="60480"/>
          <connection-factory name="QueueConnectionFactory" reconnect-max-retries="60480"/>
          <connection-factory name="TopicConnectionFactory" reconnect-max-retries="60480"/>
          <connection-factory name="sslsocket@router1"/>
          <connection-factory name="sslsocket_appserver@router1" thread-context-classloader-for-getobject="true"/>
          <connection-factory name="sslsocket_recover@router1" smqp-consumer-cache-size="10"/>
        </connection-factories>
        <host-access-list/>
      </listener>
    </listeners>
  </swiftlet>

  <!--  JNDI Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$jndi">
    <aliases>
      <alias name="1FD125740E81F99FE6B3889F038A1DAB" map-to="1FD125740E81F99FE6B3889F038A1DAB@router1"/>
      <alias name="4BC7ACC8A06C21A627C2EAC27DF5305B" map-to="4BC7ACC8A06C21A627C2EAC27DF5305B@router1"/>
      <alias name="4C007D583B8352C85F6E8F97E3B28A48" map-to="4C007D583B8352C85F6E8F97E3B28A48@router1"/>
      <alias name="90E5143BBCC8379B45B09B0BF924B483" map-to="90E5143BBCC8379B45B09B0BF924B483@router1"/>
      <alias name="9A77FCE4700DA9BF632918B4D6BD4EF9" map-to="9A77FCE4700DA9BF632918B4D6BD4EF9@router1"/>
      <alias name="A1FA0A0D7860EEAD996A5EBAE55B0948" map-to="A1FA0A0D7860EEAD996A5EBAE55B0948@router1"/>
      <alias name="A34C3B6B2461816ED860E7A86B431681" map-to="A34C3B6B2461816ED860E7A86B431681@router1"/>
      <alias name="AA58D8284280E8A5781783D7589AB138" map-to="AA58D8284280E8A5781783D7589AB138@router1"/>
      <alias name="B3E6D487D7DC6BE3994076BE9C4558BD" map-to="B3E6D487D7DC6BE3994076BE9C4558BD@router1"/>
      <alias name="DE8EC4A80C1907CBD54EE17FBA757C78" map-to="DE8EC4A80C1907CBD54EE17FBA757C78@router1"/>
      <alias name="E10BB9A4ECF0A81D81D57A894A962BB1" map-to="E10BB9A4ECF0A81D81D57A894A962BB1@router1"/>
      <alias name="NETCOOL" map-to="NETCOOL@router1"/>
      <alias name="RSCONFIG" map-to="RSCONFIG@router1"/>
      <alias name="RSCONTROL" map-to="RSCONTROL@router1"/>
      <alias name="RSREMOTE" map-to="RSREMOTE@router1"/>
      <alias name="RSSERVER" map-to="RSSERVER@router1"/>
      <alias name="RSSERVER_EVENT" map-to="RSSERVER_EVENT@router1"/>
      <alias name="RSVIEW" map-to="RSVIEW@router1"/>
      <alias name="RSWIKI" map-to="RSWIKI@router1"/>
      <alias name="routerdlq" map-to="routerdlq@router1"/>
      <alias name="swiftmqmgmt" map-to="swiftmqmgmt@router1"/>
      <alias name="swiftmqscheduler" map-to="swiftmqscheduler@router1"/>
      <alias name="unroutable" map-to="unroutable@router1"/>
    </aliases>
    <jndi-replications/>
    <remote-queues/>
  </swiftlet>

  <!--  Log Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$log" logfile-error="../../log/instance2/error.log" logfile-info="../../log/instance2/info.log" logfile-warning="../../log/instance2/warning.log"/>

  <!--  Management Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$mgmt">
    <jmx>
      <mbean-server/>
    </jmx>
  </swiftlet>

  <!--  Monitor Swiftlet (HA), Release: 7.4.0  -->

  <swiftlet name="sys$monitor">
    <connection/>
    <ha-state-alerts/>
    <memory/>
    <queue/>
    <settingsmail/>
  </swiftlet>

  <!--  Network Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$net">
    <multicast/>
  </swiftlet>

  <!--  Queue Manager Swiftlet (HA), Release: 7.4.0  -->

  <swiftlet name="sys$queuemanager" max-flowcontrol-delay="0">
    <clustered-queues/>
    <composite-queues/>
    <queue-controllers>
      <queue-controller name="01" persistence-mode="non_persistent" predicate="tmp$%"/>
      <queue-controller name="02" predicate="sys$%"/>
      <queue-controller name="03" predicate="swiftmq%"/>
      <queue-controller name="04" predicate="rt$%"/>
      <queue-controller name="05" predicate="unroutable"/>
      <queue-controller name="06" predicate="%$%"/>
      <queue-controller name="07" predicate="%"/>
    </queue-controllers>
    <queues>
      <queue name="1FD125740E81F99FE6B3889F038A1DAB"/>
      <queue name="4BC7ACC8A06C21A627C2EAC27DF5305B"/>
      <queue name="4C007D583B8352C85F6E8F97E3B28A48"/>
      <queue name="90E5143BBCC8379B45B09B0BF924B483"/>
      <queue name="9A77FCE4700DA9BF632918B4D6BD4EF9"/>
      <queue name="A1FA0A0D7860EEAD996A5EBAE55B0948"/>
      <queue name="A34C3B6B2461816ED860E7A86B431681"/>
      <queue name="AA58D8284280E8A5781783D7589AB138"/>
      <queue name="B3E6D487D7DC6BE3994076BE9C4558BD"/>
      <queue name="DE8EC4A80C1907CBD54EE17FBA757C78"/>
      <queue name="E10BB9A4ECF0A81D81D57A894A962BB1"/>
      <queue name="NETCOOL"/>
      <queue name="RSCONFIG"/>
      <queue name="RSCONTROL"/>
      <queue name="RSREMOTE"/>
      <queue name="RSSERVER"/>
      <queue name="RSSERVER_EVENT"/>
      <queue name="RSVIEW"/>
      <queue name="RSWIKI"/>
    </queues>
  </swiftlet>

  <!--  Routing Swiftlet (Unlimited Connections), Release: 7.4.0  -->

  <swiftlet name="sys$routing">
    <connectors/>
    <filters/>
    <listeners/>
    <static-routes/>
  </swiftlet>

  <!--  Scheduler Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$scheduler">
    <calendars/>
    <schedules/>
  </swiftlet>

  <!--  Store Swiftlet (HA), Release: 7.4.0  -->

  <swiftlet name="sys$store">
    <backup path="../../store/instance2/backup"/>
    <cache/>
    <database path="../../store/instance2/db"/>
    <durable-subscriber path="../../store/instance2/durables"/>
    <swap path="../../store/instance2/swap"/>
    <transaction-log checkpoint-size="10485760" path="../../store/instance2/log"/>
  </swiftlet>

  <!--  Threadpool Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$threadpool">
    <pools>
      <pool name="hacontroller.inbounddispatcher" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$hacontroller.inbounddispatcher"/>
        </threads>
      </pool>
      <pool name="hacontroller.outbounddispatcher" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$hacontroller.outbounddispatcher"/>
        </threads>
      </pool>
      <pool name="hacontroller.stagecontroller" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$hacontroller.stagecontroller"/>
        </threads>
      </pool>
      <pool name="hacontroller.timer" kernel-pool="true" max-threads="2" min-threads="1">
        <threads>
          <thread name="sys$hacontroller.heartbeat"/>
          <thread name="sys$hacontroller.stateregistry"/>
        </threads>
      </pool>
      <pool name="jac.runner" kernel-pool="true">
        <threads>
          <thread name="sys$jac.runner"/>
        </threads>
      </pool>
      <pool name="jms.connection" kernel-pool="true" max-threads="10" min-threads="4" queue-length-threshold="2">
        <threads>
          <thread name="sys$jms.connection.service"/>
        </threads>
      </pool>
      <pool name="jms.ivm.client.connection" kernel-pool="true" max-threads="10">
        <threads>
          <thread name="sys$jms.client.connection.%"/>
        </threads>
      </pool>
      <pool name="jms.ivm.client.session" kernel-pool="true" max-threads="10">
        <threads>
          <thread name="sys$jms.client.session.%"/>
        </threads>
      </pool>
      <pool name="jms.session" kernel-pool="true" max-threads="10" min-threads="4" queue-length-threshold="2">
        <threads>
          <thread name="sys$jms.session.service"/>
        </threads>
      </pool>
      <pool name="jndi" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$jndi.listener"/>
        </threads>
      </pool>
      <pool name="mgmt" kernel-pool="true" max-threads="2">
        <threads>
          <thread name="sys$mgmt.%"/>
        </threads>
      </pool>
      <pool name="net.connection" kernel-pool="true">
        <threads>
          <thread name="sys$net.connection.handler"/>
        </threads>
      </pool>
      <pool name="net.connection.mgr" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$net.connection.mgr"/>
        </threads>
      </pool>
      <pool name="queue.cluster" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$queuemanager.cluster.subscriber"/>
        </threads>
      </pool>
      <pool name="queue.redispatcher" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$queuemanager.cluster.redispatcher"/>
        </threads>
      </pool>
      <pool name="queue.timeout" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$queuemanager.timeoutprocessor"/>
        </threads>
      </pool>
      <pool name="routing.connection.mgr" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$routing.connection.mgr"/>
        </threads>
      </pool>
      <pool name="routing.exchanger" kernel-pool="true" max-threads="1">
        <threads>
          <thread name="sys$routing.route.exchanger"/>
        </threads>
      </pool>
      <pool name="routing.scheduler" kernel-pool="true" max-threads="3" min-threads="3">
        <threads>
          <thread name="sys$routing.scheduler"/>
        </threads>
      </pool>
      <pool name="routing.service" kernel-pool="true" max-threads="3" min-threads="3">
        <threads>
          <thread name="sys$routing.connection.service"/>
        </threads>
      </pool>
      <pool name="routing.throttle" kernel-pool="true" max-threads="3" min-threads="3">
        <threads>
          <thread name="sys$routing.connection.throttlequeue"/>
        </threads>
      </pool>
      <pool name="scheduler.job" kernel-pool="true">
        <threads>
          <thread name="sys$scheduler.runner"/>
        </threads>
      </pool>
      <pool name="scheduler.system" kernel-pool="true" max-threads="2">
        <threads>
          <thread name="sys$scheduler.requestprocessor"/>
          <thread name="sys$scheduler.scheduler"/>
        </threads>
      </pool>
      <pool name="store.log" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$store.logmanager"/>
        </threads>
      </pool>
      <pool name="timer.dispatcher" kernel-pool="true" max-threads="1" min-threads="1">
        <threads>
          <thread name="sys$timer.dispatcher"/>
        </threads>
      </pool>
      <pool name="timer.tasks" kernel-pool="true" max-threads="3" min-threads="3">
        <threads>
          <thread name="sys$timer.task"/>
        </threads>
      </pool>
      <pool name="topic" kernel-pool="true" max-threads="2">
        <threads>
          <thread name="sys$topicmanager.topic.%"/>
        </threads>
      </pool>
    </pools>
  </swiftlet>

  <!--  Timer Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$timer"/>

  <!--  Topic Manager Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$topicmanager">
    <slow-subscriber-conditions/>
    <static-remote-router-subscriptions/>
    <topics/>
  </swiftlet>

  <!--  Trace Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$trace">
    <spaces>
      <space name="kernel">
        <predicates>
          <predicate name="0" filename="../../trace/instance2/manager.trace" value="%Manager"/>
          <predicate name="1" filename="../../trace/instance2/net.trace" value="sys$net"/>
          <predicate name="10" filename="../../trace/instance2/auth.trace" value="sys$auth%"/>
          <predicate name="11" filename="../../trace/instance2/mgmt.trace" value="sys$mgmt%"/>
          <predicate name="12" filename="../../trace/instance2/store.trace" value="sys$store"/>
          <predicate name="13" filename="../../trace/instance2/xa.trace" value="sys$xa"/>
          <predicate name="14" filename="../../trace/instance2/jac.trace" value="sys$jac"/>
          <predicate name="15" filename="../../trace/instance2/timer.trace" value="sys$timer"/>
          <predicate name="16" filename="../../trace/instance2/scheduler.trace" value="sys$scheduler"/>
          <predicate name="17" filename="../../trace/instance2/ha.trace" value="sys$hacontroller"/>
          <predicate name="18" filename="../../trace/instance2/monitor.trace" value="sys$monitor"/>
          <predicate name="2" filename="../../trace/instance2/jms.trace" value="sys$jms"/>
          <predicate name="3" filename="../../trace/instance2/deploy.trace" value="sys$deploy"/>
          <predicate name="4" filename="../../trace/instance2/thread.trace" value="sys$thread%"/>
          <predicate name="5" filename="../../trace/instance2/routing.trace" value="sys$rout%"/>
          <predicate name="6" filename="../../trace/instance2/queuemanager.trace" value="sys$queue%"/>
          <predicate name="7" filename="../../trace/instance2/topic.trace" value="sys$topic%"/>
          <predicate name="9" filename="../../trace/instance2/jndi.trace" value="sys$jndi"/>
        </predicates>
      </space>
      <space name="protocol">
        <predicates>
          <predicate name="1" filename="../../trace/instance2/protocol.trace" value="%"/>
        </predicates>
      </space>
      <space name="queue">
        <predicates>
          <predicate name="1" filename="../../trace/instance2/queue.trace" value="%"/>
        </predicates>
      </space>
      <space name="swiftlet">
        <predicates>
          <predicate name="1" filename="../../trace/instance2/swiftlet.trace" value="%"/>
        </predicates>
      </space>
    </spaces>
  </swiftlet>

  <!--  XA Resource Manager Swiftlet, Release: 7.4.0  -->

  <swiftlet name="sys$xa"/>
</router>
