> What I meant was maybe the logging would be controlled like Spring, where the package is part of that, such that we could set (made up package name) logger.org.apache.activemq.artemis.messagelistener=DEBUG to get the messagelistener package to log debug without having org.apache.activemq.artemis and ALL of its subpackages logging at debug level.
I mentioned one such package/category in my previous email (i.e. org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl). You can enable TRACE on that to see messages flowing to remote consumers. Did you try that one already? To be clear, on the broker there's no real distinction between a MessageListener implementation and any other kind of consumer. A MessageListener is a *client* component, not a broker component. Ideally you could use the LoggingActiveMQServerPlugin [1], but I'm not sure WildFly exposes a way to configure it. Justin [1] https://activemq.apache.org/components/artemis/documentation/latest/broker-plugins.html#using-the-loggingactivemqserverplugin On Tue, Sep 19, 2023 at 2:10 PM Miller, Michael < michael.mill...@flooranddecor.com> wrote: > From what I have seen, the logging for WildFly is controlled by > logging.properties in our .\jboss\Central\configuration folder. Below is a > copy of our file. When I changed the line from INFO to DEBUG: > logger.org.apache.activemq.artemis.level=DEBUG - I get way too much > logging. What I meant was maybe the logging would be controlled like > Spring, where the package is part of that, such that we could set (made up > package name) logger.org.apache.activemq.artemis.messagelistener=DEBUG to > get the messagelistener package to log debug without having > org.apache.activemq.artemis and ALL of its subpackages logging at debug > level. > > # Additional loggers to configure (the root logger is always configured) > > loggers=sun.rmi,org.jboss.ejb.client,org.jboss.as.config,org.hibernate,org.jboss.naming.remote, > org.jboss.as > .ejb3.remote,com.arjuna,org.apache.activemq.artemis,org.xnio.nio, > org.jboss.as > .controller,org.apache.commons.beanutils,io.undertow.request,org.jboss.jca.core.connectionmanager.pool > > logger.level=INFO > logger.handlers=FILE,CONSOLE > > logger.sun.rmi.level=WARN > logger.sun.rmi.useParentHandlers=true > > logger.org.jboss.ejb.client.level=INFO > logger.org.jboss.ejb.client.useParentHandlers=true > > logger.org.jboss.as.config.level=DEBUG > logger.org.jboss.as.config.useParentHandlers=true > > logger.org.hibernate.level=INFO > logger.org.hibernate.useParentHandlers=true > > logger.org.jboss.naming.remote.level=INFO > logger.org.jboss.naming.remote.useParentHandlers=true > > logger.org.jboss.as.ejb3.remote.level=INFO > logger.org.jboss.as.ejb3.remote.useParentHandlers=true > > logger.com.arjuna.level=WARN > logger.com.arjuna.useParentHandlers=true > > logger.org.xnio.nio.level=ERROR > logger.org.xnio.nio.useParentHandlers=true > > logger.org.apache.activemq.artemis.level=INFO > logger.org.apache.activemq.artemis.useParentHandlers=true > > logger.org.jboss.as.controller.level=INFO > logger.org.jboss.as.controller.useParentHandlers=true > > logger.org.apache.commons.beanutils.level=ERROR > logger.org.apache.commons.beanutils.useParentHandlers=true > > logger.io.undertow.request.level=ERROR > logger.io.undertow.request.useParentHandlers=true > > logger.org.jboss.jca.core.connectionmanager.pool.level=WARN > logger.org.jboss.jca.core.connectionmanager.pool.useParentHandlers=true > > handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler > handler.CONSOLE.level=INFO > handler.CONSOLE.formatter=COLOR-PATTERN > handler.CONSOLE.properties=autoFlush,target,enabled > handler.CONSOLE.autoFlush=true > handler.CONSOLE.target=SYSTEM_OUT > handler.CONSOLE.enabled=true > > handler.FILE=org.jboss.logmanager.handlers.PeriodicSizeRotatingFileHandler > handler.FILE.level=INFO > handler.FILE.formatter=PATTERN > > handler.FILE.properties=append,autoFlush,enabled,suffix,fileName,rotateSize,maxBackupIndex > handler.FILE.constructorProperties=fileName,append > handler.FILE.append=true > handler.FILE.autoFlush=true > handler.FILE.enabled=true > handler.FILE.suffix=.yyyy-MM-dd > handler.FILE.rotateSize=104857600 > handler.FILE.maxBackupIndex=20 > > handler.FILE.fileName=C:/Users/MM090912/code/veras_checkout_base/Application/CentralServer/jboss/Central/log/server.log > > formatter.PATTERN=org.jboss.logmanager.formatters.PatternFormatter > formatter.PATTERN.properties=pattern > formatter.PATTERN.pattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n > > formatter.COLOR-PATTERN=org.jboss.logmanager.formatters.PatternFormatter > formatter.COLOR-PATTERN.properties=pattern > formatter.COLOR-PATTERN.pattern=%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) > %s%e%n > > ________________________________ > From: Justin Bertram <jbert...@apache.org> > Sent: Tuesday, September 19, 2023 1:48 PM > To: users@activemq.apache.org <users@activemq.apache.org> > Subject: Re: [EXTERNAL] Re: Sporadic messageListener > > > .. . the listener never logs the 'onMessage() received' message that > should be called for us to try to put the msg on a remote queue. The > consumer-count, message-count, and delivering-count would be useful metrics > to gather from the relevant > ZjQcmQRYFpfptBannerStart > This Message is From an Unknown or Untrusted Sender > You have not recently corresponded with this external sender. Do not click > links, download attachments or share sensitive information unless you > recognize the sender and know the content is safe. If this email looks > suspicious, please report via “Report Suspicious” button. > < > https://us-phishalarm-ewt.proofpoint.com/EWT/v1/D60pOmjYakNXXA!oq8qymrG5Kcjs_2mrdRfHSODaPkPPS-N7ZBT87V5PJjS3FVw2OCK-aAe8Mut1I4OD8cPlqUs6SavrH1nTUnZCMEuK4z4d_oUAJWD6gNQfPhen3Sc5V9tq7bTLRnsHg-ogLFPUQ$ > > > Report Suspicious > > ZjQcmQRYFpfptBannerEnd > > > ...the listener never logs the 'onMessage() received' message that should > be called for us to try to put the msg on a remote queue. > > The consumer-count, message-count, and delivering-count would be useful > metrics to gather from the relevant queue. Perhaps the message was > dispatched to a consumer that was already stuck for some reason. It's > impossible to say what is happening at this point. > > > Are there any tools that allow me to 'browse the queues' and see the > content and headers for messages on the queues. > > You can use a JMS QueueBrowser [1] to look at messages on the queue which > have not already been dispatched to consumers (i.e. messages which are "in > delivery"). Depending on your operating environment you may not even have > any messages that fit those requirements. There are also several management > operations you could invoke to list the messages on the queue including > messages which are in delivery, but I'm not sure those are exposed by > WildFly. To be clear, WildFly has its own "subsystem" to configure and > manage the broker and it's not the same as it would be if the broker was > running standalone. > > > Are there components to ActiveMQ such that we could turn on some DEBUG > logging around say the broker or whatever handles message listeners but not > for the entire product? > > If you're using ActiveMQ Artemis embedded in WildFly then it will control > what gets logged. There are many distinct logging categories in the broker > for the various components (e.g. > org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl). However, > I'm not sure about the distinction you're making between the broker and the > "entire product." Can you clarify that? > > > Justin > > [1] > https://urldefense.com/v3/__https://docs.oracle.com/javaee/7/api/javax/jms/QueueBrowser.html__;!!D60pOmjYakNXXA!II-Itix-umy3diZ8OdoK04BE8O37J0KBEk3kO06_pNjEMiflvjt8ZDOcx4QB0bzKJz2Jz40zoxcHynNfKNrcIDCbAYQZ$ > > On Tue, Sep 19, 2023 at 12:51 PM Miller, Michael < > michael.mill...@flooranddecor.com> wrote: > > > Thanks again Justin. > > > > I am working on getting access to the Server and the WildFly console to > > see some of the ActiveMQ stats. We have a large amount of logging in our > > code to help track if the message in case of errors and also step-by-step > > 'got here' type of logging to give us a pretty good idea of where we are > in > > the process. I may have mentioned this previously, but we have messages > > right after we put the message on the local queue, but the listener never > > logs the 'onMessage() received' message that should be called for us to > try > > to put the msg on a remote queue. > > > > Once I get access to Central, hopefully I can use the WildFly console to > > check on the queue stats. Are there any tools that allow me to 'browse > the > > queues' and see the content and headers for messages on the queues. I > > seem to remember years ago using QueueBrowser? but haven't spent much > time > > looking at that avenue yet. Someone with access to Central did 'show > me' > > one of the queues in the WildFly console but I believe the only data was > a > > couple properties, not enough to be very helpful. > > > > Our code has its own DLQ and process that just spins looking for new > > messages on our DLQ and also tries to put the msg on the remote queue. > > > > Are there components to ActiveMQ such that we could turn on some DEBUG > > logging around say the broker or whatever handles message listeners but > not > > for the entire product? I say this because we have almost 300 stores and > > each store generally receives around 5-10 files per night. > > > > ________________________________ > > From: Justin Bertram <jbert...@apache.org> > > Sent: Tuesday, September 19, 2023 11:42 AM > > To: users@activemq.apache.org <users@activemq.apache.org> > > Subject: Re: [EXTERNAL] Re: Sporadic messageListener > > > > Based on the code you provided the application is sending a persistent > > message which means it will wait for a response from the broker > confirming > > that it has received the message. This rules out the possibility that a > > failure to send the message > > ZjQcmQRYFpfptBannerStart > > This Message is From an Unknown or Untrusted Sender > > You have not recently corresponded with this external sender. Do not > click > > links, download attachments or share sensitive information unless you > > recognize the sender and know the content is safe. If this email looks > > suspicious, please report via “Report Suspicious” button. > > < > > > https://us-phishalarm-ewt.proofpoint.com/EWT/v1/D60pOmjYakNXXA!oq8qymrG5Kcjs1oATfO6ddEiKlkIQEHpwUtyk2u-CTAWLTHO75lU91SAPhAURoHcHZ5X92CVj08cp6pNQlcpCouq3EcGQpZ0LJjyZ_I0OqfDy2GYDlbpRa2KYGuHwpJi52pvCw$ > > > > > Report Suspicious > > > > ZjQcmQRYFpfptBannerEnd > > > > Based on the code you provided the application is sending a persistent > > message which means it will wait for a response from the broker > confirming > > that it has received the message. This rules out the possibility that a > > failure to send the message is being ignored. However, once the message > > arrives at the broker a number of things can still go wrong. The consumer > > may fail to consume it for some reason resulting either in a message > that's > > stuck "in delivery" or the message may be sent to the dead-letter > address. > > In the latter case there must actually be a dead-letter address > configured > > and there must be a queue on that address to receive the message > otherwise > > the message will just be dropped with a corresponding WARN message in the > > log. A message could also expire after sitting in the queue for too long > at > > which point it may be sent to an expiry address or simply dropped (e.g. > if > > there is no expiry address configured). In order to investigate these > > possibilities you need to get access to the broker's metrics (and > > potentially application logs) to track exactly what's going on at each > step > > in your process. > > > > There is, of course, always the chance you're hitting a bug. As mentioned > > previously, there have been thousands of fixes in the years since the > > version you're using was released. If you exhaust all other possible > > explanations perhaps you can work with your software vendor to upgrade > and > > see if that resolves the issue. > > > > In any event, the ActiveMQ Artemis User Manual [1] has a wealth of > > information about how the broker behaves e.g. with regard to > undeliverable > > messages, expired messages, etc. If you need any clarification don't > > hesitate to ask. > > > > > > Justin > > > > [1] > > > https://urldefense.com/v3/__https://activemq.apache.org/components/artemis/documentation/2.6.0/__;!!D60pOmjYakNXXA!LCO--1drFmPs-boQpi9H64aSEdj-A318i3ybc5dEc84t73h87Co3ksemCWEEEchHr62xPslTFlAsk68BJBGjMBOni6tI$ > > > >On Mon, Sep 18, 2023 at 4:57 PM Miller, Michael < > > michael.mill...@flooranddecor.com> wrote: > > > > > Correct about the code but we do have a copy of the code. > > > > > > I haven't received any stats but I will need to check with someone else > > > and I don't have login access to our Central Server and don't have > access > > > to the Wildfly console to get any numbers. Problem is - this doesn't > > > happen all the time - just sporadically. I also noticed that it does > > > look like we have an ExceptionListener and haven't seen any of that > > classes > > > log entries. > > > > > > > > > > > > Here's an excerpt: so we iterate across a list of files and call our > > > SendToQueue class to send each file to our local queue. > > > > > > > > > sender = new SendToQueue(data.source.getConnectionFactory(), > > > data.source.getTopicJNDIName()); > > > > > > for (String manifestName : data.filesToExportList.keySet()) > > > { > > > for (File xmlFile : data.filesToExportList.get(manifestName)) > > > { > > > //Set up a zip output stream for this file. > > > BytesMessage message = sender.preBuildMessageFromFile(xmlFile); > > > > > > //tell message listeners which remote location to send messages. > > > message.setStringProperty(JMSConstants.STORE_NUMBER, > > > data.source.getLocationNumber()); > > > > > > sender.sendMessageToQueue(message); > > > > > > } > > > > > > //if all the files get sent, record this manifest as a success > > > data.successManifests.add(manifestName); > > > } > > > > > > SendToQueue.java - which does the JMS sending > > > ------------------------------- > > > //imports and package removed... > > > > > > public class SendToQueue > > > { > > > private Context context; > > > private QueueConnectionFactory queueFactory; > > > private QueueConnection connection; > > > private QueueSession session; > > > private QueueSender sender; > > > private String jndiName; > > > private static final String queueDest="Queue_Destination"; > > > > > > public SendToQueue(String connectionFactory, String queueJNDIName) > throws > > > Exception > > > { > > > Properties properties = EJBProperties.getInstance().getEJBProperties(); > > > context = new InitialContext(properties); > > > queueFactory = (QueueConnectionFactory) > > context.lookup(connectionFactory); > > > try { > > > connection = > > > queueFactory.createQueueConnection(JMSUtil.JMS_TOPIC_PRINCIPAL, > > > JMSUtil.JMS_TOPIC_CREDENTIALS); > > > connection.setExceptionListener(new PPOSJMSExceptionListener()); > > > session = connection.createQueueSession(false, > > > Session.CLIENT_ACKNOWLEDGE); > > > jndiName=queueJNDIName; > > > Queue queue = (Queue) context.lookup(queueJNDIName); > > > sender = session.createSender(queue); > > > } catch(JMSException jmse) { > > > cleanup(); > > > throw jmse; > > > } > > > } > > > > > > /** > > > * Build a bytes message from a file and return it to the caller. > > > * > > > * It is done in this way so that properties may be set on the message > > > * besides the contents before the message is sent. > > > * @param file - the file to compress and stream to a message. > > > * @return the BytesMessage containing the file. > > > * @throws Exception > > > */ > > > public BytesMessage preBuildMessageFromFile(File file) throws > > JMSException > > > { > > > try > > > { > > > BytesMessage message = session.createBytesMessage(); > > > message = JMSFileTransformer.fileToBytesMessage(file, message); > > > return message; > > > } > > > catch (Exception e) > > > { > > > cleanup(); > > > JMSException ex = new JMSException(e.toString()); > > > ex.initCause(e); > > > Log.getInstance().error("Error on File: " + ((file == null) ? "null" : > > > file.getName()), ex); > > > throw ex; > > > } > > > > > > } > > > > > > public BytesMessage createMessage() throws JMSException > > > { > > > return session.createBytesMessage(); > > > } > > > > > > public BytesMessage testBuildMessageFromFile(File file) throws > > JMSException > > > { > > > try > > > { > > > BytesMessage message = session.createBytesMessage(); > > > // message = JMSFileTransformer.fileToBytesMessage(file, message); > > > return message; > > > } > > > catch (Exception e) > > > { > > > cleanup(); > > > JMSException ex = new JMSException(e.toString()); > > > ex.initCause(e); > > > Log.getInstance().error("Error on File: " + ((file == null) ? "null" : > > > file.getName()), ex); > > > throw ex; > > > } > > > > > > } > > > /** > > > * Build an object message from a serializable object and return it to > > the > > > caller. > > > * > > > * It is done in this way so that properties may be set on the message > > > * besides the contents before the message is sent. > > > * @param object - The object to include in the message > > > * @return the ObjectMessage containing the object. > > > * @throws Exception > > > */ > > > public ObjectMessage preBuildMessageFromObject(Serializable object) > > throws > > > JMSException > > > { > > > try > > > { > > > ObjectMessage message = session.createObjectMessage(); > > > message.setObject(object); > > > return message; > > > } > > > catch (JMSException e) > > > { > > > cleanup(); > > > Log.getInstance().error(e); > > > throw e; > > > } > > > > > > } > > > > > > /** > > > * Build an object message from a serializable object and return it to > > the > > > caller. > > > * > > > * It is done in this way so that properties may be set on the message > > > * besides the contents before the message is sent. > > > * @param string - The string to include in the message > > > * @return the TextMessage containing the object. > > > * @throws Exception > > > */ > > > public TextMessage preBuildMessageFromString(String string) throws > > > JMSException > > > { > > > try > > > { > > > TextMessage message = session.createTextMessage(string); > > > return message; > > > } > > > catch (JMSException e) > > > { > > > cleanup(); > > > Log.getInstance().error(e); > > > throw e; > > > } > > > > > > } > > > > > > > > > /** > > > * This method is called once a message has been created by the > > > * public BytesMessage preBuildMessageFromFile(File file) method > > > * and properties have been set on the message as desired. > > > * > > > * @param message - the BytesMessage being sent. > > > * @throws Exception any and all messages up to the calling code. > > > */ > > > public void sendMessageToQueue(Message message) throws Exception > > > { > > > try > > > { > > > send(message); > > > } > > > catch (Exception e) > > > { > > > Log.getInstance().error(e); > > > throw new JMSException(e.toString()); > > > } > > > > > > } > > > > > > /** > > > * This method is used to put Portfolio Beans on a JMS Queue for > > > asynchronous transfer between servers > > > * Along with some properties. > > > * > > > * @param object - the serializable object being sent. > > > * @param list - string properties to be attached to message. > > > * @return the message that was sent. > > > * @throws Exception any and all messages up to the calling code. > > > */ > > > public Message sendObjectToQueue(Serializable object, HashMap > > > hashMapStringProps) throws JMSException > > > { > > > try > > > { > > > ObjectMessage message = session.createObjectMessage(object); > > > > > > if (hashMapStringProps != null) > > > { > > > for (Iterator iter = > > > hashMapStringProps.entrySet().iterator();iter.hasNext();) > > > { > > > Map.Entry entry = (Map.Entry) iter.next(); > > > message.setStringProperty((String)entry.getKey(), > > > (String)entry.getValue()); > > > } > > > } > > > send(message); > > > return message; > > > } > > > catch (JMSException e) > > > { > > > cleanup(); > > > Log.getInstance().error(e); > > > throw e; > > > } > > > > > > } > > > > > > /* > > > Common code between the above send methods. > > > */ > > > private void send(Message message) throws JMSException > > > { > > > message.setStringProperty(queueDest, jndiName); > > > > message.setLongProperty(JMSConstants.PROPERTY_MSG_ORIGINAL_CREATE_MILLIS, > > > System.currentTimeMillis()); > > > > > > // SAS01032022 - Add code to log message properties ( this is only for > > > debug purposes) > > > //FDMessageUtil.logMessageProperties(message, "SENDING TO QUEUE", ", > "); > > > -- commented out for POS-13673 > > > > > > try { > > > sender.send(message); > > > //POS-13673 log AFTER the send call to ensure message processed ( this > is > > > only for debug purposes) > > > FDMessageUtil.logMessageProperties(message, "SENT TO QUEUE", ", "); > > > } catch(JMSException e) { > > > cleanup(); > > > throw e; > > > } > > > } > > > > > > /** > > > * Cleanup - closes the connection and session, if exists > > > */ > > > public void cleanup() > > > { > > > if(sender != null){ > > > try { > > > sender.close(); > > > }catch(JMSException e) { > > > Log.getInstance().error("Exception caught while closing Queue sender: > > "+e); > > > } > > > finally > > > { > > > sender = null; > > > } > > > } > > > if (connection != null) > > > { > > > try { > > > connection.close(); > > > } catch(JMSException e) { > > > Log.getInstance().error("Exception caught while closing JMS connection: > > > "+e); > > > } finally { > > > connection = null; > > > } > > > } > > > > > > if (queueFactory != null) > > > { > > > queueFactory = null; > > > } > > > > > > if (session != null) > > > { > > > try { > > > session.close(); > > > } catch(JMSException e) { > > > Log.getInstance().error("Exception caught while closing JMS session: > > "+e); > > > } finally { > > > session = null; > > > } > > > } > > > > > > if (context != null) > > > { > > > try > > > { > > > context.close(); > > > } > > > catch (NamingException e) > > > { > > > Log.getInstance().error("Exception caught while closing context: " + > e); > > > } > > > finally > > > { > > > context = null; > > > } > > > } > > > } > > > } > > > > > > > > > ________________________________ > > > From: Justin Bertram <jbert...@apache.org> > > > Sent: Monday, September 18, 2023 3:26 PM > > > To: users@activemq.apache.org <users@activemq.apache.org> > > > Subject: Re: [EXTERNAL] Re: Sporadic messageListener > > > > > > So the software sending and consuming the messages is not something you > > > (or your company) has written but instead is something from a vendor? > If > > > so, do you have the source-code for this product? Unfortunately a list > of > > > libraries starting with > > > ZjQcmQRYFpfptBannerStart > > > This Message is From an Unknown or Untrusted Sender > > > You have not recently corresponded with this external sender. Do not > > click > > > links, download attachments or share sensitive information unless you > > > recognize the sender and know the content is safe. If this email looks > > > suspicious, please report via “Report Suspicious” button. > > > < > > > > > > https://us-phishalarm-ewt.proofpoint.com/EWT/v1/D60pOmjYakNXXA!oq8qymrG5KcjsxzI5vQQnwE7dlzSJjrHenGFQf-8KnLrzqwDldYdXJL_qtyUthWJNOG9QLNXuNZQku88u9DgpklBMotSLODEjE7l_H0UiZiL_HMP4rUoy0SlE1GF2E3jjQkIxw$ > > > > > > > Report Suspicious > > > > > > ZjQcmQRYFpfptBannerEnd > > > > > > So the software sending and consuming the messages is not something you > > (or > > > your company) has written but instead is something from a vendor? If > so, > > do > > > you have the source-code for this product? > > > > > > Unfortunately a list of libraries starting with "activemq" doesn't > > clarify > > > what the software is actually using. > > > > > > Regarding upgrades...This seems like a false dichotomy. You can't > really > > > get new features without upgrading. There's been over 30 releases of > > > ActiveMQ Artemis since 2.6.3 which have included 4,700+ commits to the > > > code-base. Those commits include bug fixes and features. > > > > > > Couple more questions: > > > > > > - How are you sending the messages? Can you paste the code from the > > > producer? Also, what library are you using to send the messages? > > > - Have you gathered any statistics from the queue where you're sending > > > messages (e.g. Consumer Count, Message Count, Delivering Count, etc.)? > If > > > so, what did they show? If not, could you gather these before and after > > you > > > see the problem? > > > > > > > > > Justin > > > > > > On Mon, Sep 18, 2023 at 2:34 PM Miller, Michael < > > > michael.mill...@flooranddecor.com> wrote: > > > > > > > Thanks for the quick response. I started working on this project > > just a > > > > couple months ago, so not completely sure I will be able to answer > your > > > > questions correctly, but here goes: > > > > We have 1 Central Server and X number of Store servers - all running > > > > WildFly as the app server. I believe Artemis is the version > embedded > > in > > > > WildFly 16.0.0.Final. The message listener is not an MDB, but a > 'task' > > > > that implements MessageListener interface. Not sure how the > > > activemq-core > > > > fits in - I just threw that in just in case it mattered - again these > > are > > > > libraries I found in our Libraries folder. I just searched our > > \Libraries > > > > folder where we store all 3rd party software and supplied any that > > > started > > > > with activemq. 🙂 > > > > > > > > We (including me) are the retailer and the software comes from our > > > > vendor, and I have heard that retailers are never in a hurry to > upgrade > > > > their software, but prefer new features instead. Not much chance > > right > > > > now that we would be able to update any packages. > > > > > > > > > > > > > > > > ________________________________ > > > > From: Justin Bertram <jbert...@apache.org> > > > > Sent: Monday, September 18, 2023 1:55 PM > > > > To: users@activemq.apache.org <users@activemq.apache.org> > > > > Subject: [EXTERNAL] Re: Sporadic messageListener > > > > > > > > Can you elaborate on your application components? What are you using > > as a > > > > broker? Is it ActiveMQ Artemis 2. 6. 3 embedded in WildFly 16. 0. 0. > > > Final? > > > > Are your MessageListener implementations running in WildFly (e. g. as > > > MDBs) > > > > or elsewhere? How does > > > > ZjQcmQRYFpfptBannerStart > > > > This Message is From an Unknown or Untrusted Sender > > > > You have not recently corresponded with this external sender. Do not > > > click > > > > links, download attachments or share sensitive information unless you > > > > recognize the sender and know the content is safe. If this email > looks > > > > suspicious, please report via “Report Suspicious” button. > > > > < > > > > > > > > > > https://us-phishalarm-ewt.proofpoint.com/EWT/v1/D60pOmjYakNXXA!oq8qymrG5Kcjsx0gp5MxPXHKrr6gJs4f2iGQDt7dMh9X7nXrS00QtnLjXq2Yy58U-Uf0zyDwjUHiC4or-Y1ua0EAyhgXgDQghJWlnvqNuoXnUjX9mCSizI4o16qryEQGGh40zg$ > > > > > > > > > Report Suspicious > > > > > > > > ZjQcmQRYFpfptBannerEnd > > > > > > > > Can you elaborate on your application components? What are you using > > as a > > > > broker? Is it ActiveMQ Artemis 2.6.3 embedded in WildFly > 16.0.0.Final? > > > Are > > > > your MessageListener implementations running in WildFly (e.g. as > MDBs) > > or > > > > elsewhere? How does "ActiveMQ core 5.7.0" fit in and what exactly do > > you > > > > mean by "core" in this context? > > > > > > > > Also, these components are pretty old. Both WildFly 16.0.0.Final and > > > > ActiveMQ Artemis 2.6.3 were released in early 2019 and ActiveMQ 5.7.0 > > was > > > > released in late 2012. Has there been any thought given to upgrading > > > these > > > > components? > > > > > > > > > > > > Justin > > > > > > > > On Mon, Sep 18, 2023 at 1:40 PM Miller, Michael < > > > > michael.mill...@flooranddecor.com> wrote: > > > > > > > > > We are encountering a problem where a small number of messages are > > not > > > > > triggering the messageListener. We have a shared folder where our > > host > > > > > drops files to be delivered to all our retail stores. We have a > > process > > > > > that has to collect a full set of files as a set and when the set > is > > > > found, > > > > > we put each file on a local queue on a centralized server. The > > > > > messageListener gets called and we attempt to put the new message > on > > a > > > > > remote queue for retail store. > > > > > > > > > > Generally this works fairly well, but we have started encountering > > > > > problems where, according to our logging, we can see a log message > > that > > > > the > > > > > (file)message was put in the local queue, but in some small > > percentage > > > of > > > > > the cases, we never get the onMessage() for the message listener to > > put > > > > the > > > > > message on the remote store, which breaks our process. > > > > > > > > > > Looking for help/suggestions on how to debug this process to make > > sure > > > > > that our message listener gets called. Is there a way to request > > > activemq > > > > > debug logging without debugging logging that entire application? > > > > Happening > > > > > in production but not in QA or local dev... > > > > > > > > > > We are running WildFly 16.0.0.Final, with ActiveMQ core 5.7.0 and > > > > ActiveMQ > > > > > Artemis 2.6.3. > > > > > > > > > > We have added extra logging around the our executor service and the > > > > > message listener but some files/messages seem to either 1) NOT make > > it > > > > into > > > > > the local queue or 2) the message listener doesn't fire. Based on > the > > > > > logging, it seems like the message gets to the local queue, as we > > found > > > > no > > > > > exceptions around that timeframe, so seems to be the listener. > > > > > > > > > > > > > > > > > > > > Mike Miller > > > > > > > > > > Senior Developer II > > > > > > > > > > Floor & Decor > > > > > > > > > > 214-477-9953 > > > > > > > > > > mailto: michael.mill...@flooranddecor.com > > > > > > > > > > This email and any files transmitted with it are the property of > > Floor > > > & > > > > > Decor, are confidential, and are intended solely for the use of the > > > > > individual or entity to which this email is addressed. If you are > not > > > one > > > > > of the named recipient(s) or otherwise have reason to believe that > > you > > > > have > > > > > received this message in error, please notify the sender at > > > 214.477.9953 > > > > > and delete this message immediately from your computer. Any other > > use, > > > > > retention, dissemination, forwarding, printing, or copying of this > > > email > > > > is > > > > > strictly prohibited. > > > > > > > > > > Please consider the environment before printing this email. > > > > > > > > > > > > > > > > > > > > > > > > >