From c530a654610e040d6dec6d56ec4acc4f9c154e7f Mon Sep 17 00:00:00 2001 From: Peter Hormanns Date: Wed, 13 Sep 2023 19:43:17 +0200 Subject: [PATCH] client_ack --- .../java/de/hsadmin/servlets/QueueStatusReceiverServlet.java | 2 +- qserv/src/main/java/de/hsadmin/core/model/Transaction.java | 2 +- qserv/src/main/java/de/hsadmin/core/qserv/QueueClient.java | 5 +++-- qserv/src/main/java/de/hsadmin/core/qserv/QueueServer.java | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hsarback/src/main/java/de/hsadmin/servlets/QueueStatusReceiverServlet.java b/hsarback/src/main/java/de/hsadmin/servlets/QueueStatusReceiverServlet.java index 9cd33bb..8399887 100644 --- a/hsarback/src/main/java/de/hsadmin/servlets/QueueStatusReceiverServlet.java +++ b/hsarback/src/main/java/de/hsadmin/servlets/QueueStatusReceiverServlet.java @@ -72,7 +72,7 @@ public class QueueStatusReceiverServlet extends HttpServlet try { queueConnection = mqConnectionFactory.createQueueConnection(jmsUser, jmsPass); queueConnection.setExceptionListener(this); - queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + queueSession = queueConnection.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE); Queue queue = queueSession.createQueue(jmsStatusQueue); queueConnection.start(); QueueReceiver receiver = queueSession.createReceiver(queue); diff --git a/qserv/src/main/java/de/hsadmin/core/model/Transaction.java b/qserv/src/main/java/de/hsadmin/core/model/Transaction.java index 4685a49..e02820c 100644 --- a/qserv/src/main/java/de/hsadmin/core/model/Transaction.java +++ b/qserv/src/main/java/de/hsadmin/core/model/Transaction.java @@ -62,7 +62,7 @@ public class Transaction { public Queue lookupJMSQueue(String queueName) { try { final QueueConnection queueConnection = queueConnectionFactory.createQueueConnection(jmsUsername, jmsPassword); - final QueueSession session = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); + final QueueSession session = queueConnection.createQueueSession(false, QueueSession.CLIENT_ACKNOWLEDGE); final Queue queue = session.createQueue(queueName); return queue; } catch (JMSException e) { diff --git a/qserv/src/main/java/de/hsadmin/core/qserv/QueueClient.java b/qserv/src/main/java/de/hsadmin/core/qserv/QueueClient.java index ff8ef1a..d989ed1 100644 --- a/qserv/src/main/java/de/hsadmin/core/qserv/QueueClient.java +++ b/qserv/src/main/java/de/hsadmin/core/qserv/QueueClient.java @@ -36,7 +36,7 @@ public class QueueClient { String jmsUser = config.getProperty("hsadmin.jms.username", "hsadmin"); String jmsPass = config.getProperty("hsadmin.jms.password", "hsadmin-pw"); jmsConnection = jmsConnectionFactory.createQueueConnection(jmsUser, jmsPass); - jmsSession = jmsConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); + jmsSession = jmsConnection.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE); jmsSender = jmsSession.createSender(jmsSystemQueue); } @@ -44,6 +44,7 @@ public class QueueClient { try { ObjectMessage jmsMessage = jmsSession.createObjectMessage(task); jmsSender.send(jmsMessage); + jmsMessage.acknowledge(); } catch (JMSSecurityException secExc) { secExc.printStackTrace(); throw new ProcessorException("Not allowed to send to queue " @@ -55,7 +56,7 @@ public class QueueClient { } } - private String queueName(Queue jmsSystemQueue2) { + private String queueName(Queue jmsSystemQueue) { try { return jmsSystemQueue.getQueueName(); } catch (Exception exc) { diff --git a/qserv/src/main/java/de/hsadmin/core/qserv/QueueServer.java b/qserv/src/main/java/de/hsadmin/core/qserv/QueueServer.java index add34b1..6431211 100644 --- a/qserv/src/main/java/de/hsadmin/core/qserv/QueueServer.java +++ b/qserv/src/main/java/de/hsadmin/core/qserv/QueueServer.java @@ -176,7 +176,7 @@ public class QueueServer implements MessageListener, ExceptionListener { try { queueConnection = mqConnectionFactory.createQueueConnection(jmsUsername, jmsPassword); queueConnection.setExceptionListener(this); - session = queueConnection.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); + session = queueConnection.createQueueSession(false, QueueSession.CLIENT_ACKNOWLEDGE); final Queue queue = session.createQueue(jmsStatusQueue); queueConnection.start(); producer = session.createProducer(queue);