Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
None
-
None
-
Undefined
-
---
-
---
Description
Cluster setup :
Server 1 : Master i.e manager console.
Server 2 : Slave 1
Server 3 : Slave 2
From Master single EAR gets deployed on al servers.
When JMS message gets pushed then as per MDB limit it get distrubuted in any of the server 1 or 2 as per RoundRobinPolicy.
Here msg distrubutution is happing properly.
Now from any server when Queue is paused , its also getting reflected.
i.e same queue gets paused from another server.
But
say 10 jms msg is pused on Queue.
it got distrubuted as
Server-1 : 3
Server-2 : 7
now when server-1 looks how many msg are present on Queue it gets only 3
As this setup is in Cluster , why queue count information is not being shared.
subsystem xmlns="urn:jboss:domain:messaging-activemq
<pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="http-connector in-vm" ha="true" auto-group="true" transaction="xa" "/>
Here tried both
connectors="http-connector in-vm"
connectors="http-connector"
Note :
connectors="http-connector ---------> This controls start/pause across servers.
connectors="in-vm" ---------> This controls start/pause on Local servers.
Here what should be the setting so count can be same across servers in cluster
<subsystem xmlns="urn:jboss:domain:messaging-activemq:4.0">
<server name="default">
<security enabled="false"/>
<cluster password="${jboss.messaging.cluster.password:rutu}"/>
<management address="localhost" jmx-enabled="true" jmx-domain="org.apache.activemq.artemis"/>
<message-expiry scan-period="130000"/>
<security-setting name="#">
<role name="guest" send="true" consume="true" create-non-durable-queue="true" delete-non-durable-queue="true"/>
</security-setting>
<address-setting name="#" dead-letter-address="jms.queue.mq.sys.dmq" expiry-address="jms.queue.ExpiryQueue" max-delivery-attempts="2" max-size-bytes="10485760" page-size-bytes="2097152" message-counter-history-day-limit="10"/>
<http-connector name="http-connector" socket-binding="http" endpoint="http-acceptor"/>
<http-connector name="http-connector-throughput" socket-binding="http" endpoint="http-acceptor-throughput">
<param name="batch-delay" value="50"/>
</http-connector>
<in-vm-connector name="in-vm" server-id="0">
<param name="buffer-pooling" value="false"/>
</in-vm-connector>
<http-acceptor name="http-acceptor" http-listener="default"/>
<http-acceptor name="http-acceptor-throughput" http-listener="default">
<param name="batch-delay" value="50"/>
<param name="direct-deliver" value="false"/>
</http-acceptor>
<remote-acceptor name="internal-messaging-acceptor" socket-binding="internal-messaging"/>
<in-vm-acceptor name="in-vm" server-id="0">
<param name="buffer-pooling" value="false"/>
</in-vm-acceptor>
<broadcast-group name="bg-group1" jgroups-cluster="activemq-cluster" connectors="http-connector"/>
<discovery-group name="dg-group1" jgroups-cluster="activemq-cluster"/>
<cluster-connection name="my-cluster" address="jms" connector-name="http-connector" discovery-group="dg-group1"/>
<jms-queue name="ExpiryQueue" entries="java:/jms/queue/ExpiryQueue"/>
<jms-queue name="DLQ" entries="java:/jms/queue/DLQ"/>
<jms-queue name="dummy" entries="java:/queue/dummy java:jboss/exported/jms/queue/dummy"/>
<jms-queue name="mq.sys.dmq" entries="java:/queue/mq.sys.dmq java:jboss/exported/jms/queue/mq.sys.dmq"/>
<jms-queue name="AccountingQueue" entries="java:/queue/AccountingQueue java:jboss/exported/jms/queue/AccountingQueue"/>
<connection-factory name="InVmConnectionFactory" entries="java:/ConnectionFactory" connectors="in-vm"/>
<connection-factory name="RemoteConnectionFactory" entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="http-connector" ha="true" block-on-acknowledge="true" reconnect-attempts="-1"/>
<pooled-connection-factory name="activemq-ra" entries="java:/JmsXA java:jboss/DefaultJMSConnectionFactory" connectors="http-connector" transaction="xa"/>
</server>
</subsystem>