My application asynchronously listen messages on Uniform Distributed Queue which receives messages from interfacing system SOA (queue) via JMS message bridge.
The problem is intermittent, Sometimes it has few pending messages in Queue which are actually being consumed by my application listener already and processed them. Surprisingly these duplicate messages are being consumed by my app listener again and again every hour and creating a record in db(unwanted operation). Ideally they should get deleted from destination once the consumer received and my consumer is async and doesn't hold any transaction / commit / rollback operation.
Question is: Why the messages are duplicated as pending and sitting in queue ? (when they are already consumed and processed).
Additional info: The messages are "PERSISTENT" and there is persistence store configured at both source and destination domains.
My app listener is non-transactional and no acknowledgement mode configured.
All other settings are WLS defaults for Delivery limit, TimeToLive etc.