[ 
https://issues.apache.org/jira/browse/ARTEMIS-2719?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Praveen updated ARTEMIS-2719:
-----------------------------
    Attachment: JiraIssue.txt

> Closing TopicConnection is removing the Topic
> ---------------------------------------------
>
>                 Key: ARTEMIS-2719
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2719
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>    Affects Versions: 2.8.1
>            Reporter: Praveen
>            Priority: Critical
>         Attachments: JiraIssue.txt
>
>
> Short Summary:  
>                 In Wildlfy17 which has ActiveMQ artemis 2.8.1, when I connect 
> to the topic and disconnect, it is removing the Topic.
> Details:
> standalone.xml has the below configuration;
> <subsystem xmlns="urn:jboss:domain:messaging-activemq:7.0">
>  <server name="default">
>  <journal type="ASYNCIO" file-size="102400" min-files="2"/>
>  <shared-store-master/>
>  <security-setting name="#">
>  <role name="User" send="true" consume="true" create-non-durable-queue="true" 
> delete-non-durable-queue="true"/>
>  </security-setting>
>  <address-setting name="#" dead-letter-address="jms.queue.DLQ" 
> expiry-address="jms.queue.ExpiryQueue" redelivery-delay="0" 
> max-size-bytes="10485760" page-size-bytes="5485760" 
> address-full-policy="PAGE" message-counter-history-day-limit="10" 
> redistribution-delay="0"/>
>  <remote-connector name="netty" socket-binding="messaging"/>
>  <remote-connector name="netty-throughput" 
> socket-binding="messaging-throughput">
>  <param name="batch-delay" value="50"/>
>  </remote-connector>
>  <in-vm-connector name="in-vm" server-id="0"/>
>  <remote-acceptor name="netty" socket-binding="messaging"/>
>  <remote-acceptor name="netty-throughput" 
> socket-binding="messaging-throughput">
>  <param name="batch-delay" value="50"/>
>  <param name="direct-deliver" value="false"/>
>  </remote-acceptor>
>  <in-vm-acceptor name="in-vm" server-id="0"/>
>  <jms-topic name="LCSTopic" entries="LCSTopic topic/LCSTopic 
> java:jboss/exported/jms/topic/LCSTopic"/>
>  <connection-factory name="InVmConnectionFactory" 
> entries="java:/ConnectionFactory" connectors="in-vm"/>
>  <connection-factory name="RemoteConnectionFactory" 
> entries="java:jboss/exported/jms/RemoteConnectionFactory" connectors="netty" 
> ha="true" client-failure-check-period="10" retry-interval="1000" 
> reconnect-attempts="10" failover-on-initial-connection="true" 
> use-global-pools="false" thread-pool-max-size="100"/>
>  <pooled-connection-factory name="activemq" entries="java:/JmsXA" 
> connectors="in-vm" block-on-non-durable-send="false" 
> block-on-durable-send="false" transaction="xa" min-pool-size="2" 
> use-auto-recovery="false" max-pool-size="100"/>
>  </server>
>  </subsystem>
>  
> The program that is deleting the Topic:
> public class JMSTest {    Logger log = Logger.getLogger(JMSTest.class); 
> private TopicConnection mTopicConnection;
>  public static void main(String[] args) \{ JMSTest test = new JMSTest(); if 
> (args.length == 1) { try { test.doTest(args[0]); } catch (Exception e) \{ 
> e.printStackTrace(); } } else \{ System.out.println("JMSTest FQDN:port"); 
> System.out.println("    test out JMS queue persistance on given EDMServer"); 
> System.err.println("    Plese provide a FSDN:port of the EDMServer"); } }
>  private void doTest(String hostName) throws Exception { log.debug("Starting 
> doTest, get new LoginData");
>  Connector connector = null; try {             Login login = new Login(); 
> log.debug("--> start Login.doBatchLogin");            connector = 
> login.doBatchLogin(org.apache.log4j.Logger.getLogger(JMSTest.class), "admin", 
> "admin".toCharArray(), hostName,                    "JMSTest", 
> (SessionEndedHandler)null);
>  initNotificationListener("Client_"+(new Random().nextInt())); 
> removeNotificationConsumer(); } catch (Exception e) \{ log.error("Could not 
> authenticate: Exception: " + e.getClass().getName() + ", " + e.getMessage()); 
> } finally \{ connector.logout(); } }
>  private void initNotificationListener(String clientId) throws Exception {
>  try { Connector connector = Connector.getInstance(); mTopicConnection = 
> connector.createTopicConnection(); mTopicConnection.setExceptionListener(new 
> JMSExceptionListener()); TopicSession topicSession = 
> mTopicConnection.createTopicSession(false, QueueSession.AUTO_ACKNOWLEDGE); 
> mTopicConnection.start();
>  Topic lcsTopic = connector.createTopic("LCSTopic"); 
> topicSession.createConsumer(lcsTopic, "JMSCorrelationID = '" + clientId + 
> "'"); } catch (Exception e) \{ System.err.println("Internal error: " + 
> e.getMessage()); e.printStackTrace(); try { if (mTopicConnection != null) { 
> mTopicConnection.close(); } } catch (JMSException e1) \{ 
> System.err.println("Topic close error: "+ e1.getMessage()); 
> e.printStackTrace(); }
>  throw new Exception(e.getMessage(), e); } }
>  public void removeNotificationConsumer() {
>  if (mTopicConnection != null) {
>  try \{ mTopicConnection.close(); mTopicConnection = null; } catch 
> (JMSException e) \{ System.err.println("Internal error: " + e.getMessage()); 
> e.printStackTrace(); } }
>  }    public class JMSExceptionListener implements ExceptionListener {
>         @Override        public void onException(JMSException e) \{           
>  System.err.println("Internal error: " + e.getMessage());            
> e.printStackTrace();        }    } }
> This line is removing the topic:
>                               mTopicConnection.close();
> If you go to Management HTTP in Wildfly, you will see errors.
> After successfully createTopic and disconnection, topics created in 
> standalone.xml stops became permanent topics and are removed from server 
> which causes printing errors in Wildfly's server.log.
> 2020-04-10 10:02:34,220 ERROR [org.jboss.as.controller.management-operation] 
> (management-handler-thread - 2) WFLYCTL0013: Operation ("read-attribute") 
> failed - address: ([
>     ("subsystem" => "messaging-activemq"),
>     ("server" => "default"),
>     ("jms-topic" => " LCSTopic")
> ]) - failure description: "WFLYCTL0216: Management resource '[
>     (\"subsystem\" => \"messaging-activemq\"),
>     (\"server\" => \"default\"),
>     (\"jms-topic\" => \"LCSTopic\")
> ]' not found"



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to