Radek Kraus created AMQ-6925: -------------------------------- Summary: JDBC Store - received messages from durable topic is not removed after unsubscribe Key: AMQ-6925 URL: https://issues.apache.org/jira/browse/AMQ-6925 Project: ActiveMQ Issue Type: Bug Components: JDBC Affects Versions: 5.15.3 Reporter: Radek Kraus Attachments: JdbcStoreDurableTopicDeleteReceivedMessagesTest.java
It seems, that received messages from durable subscriber is not removed from JDBC persistence layer ({{ACTIVEMQ_MSGS}}), when {{unsubscribe}} operation is invoked. Let suppose following scenario: * create (register) durable topic subscriber * close durable topic subscriber, but leave it "subscribed" * send 10 messages to topic * check count messages in JDBC store (10 is expected) * create (open) durable topic subscriber again and receive 10 messages (no next messages is prepared) * "unsubscribe" durable topic subscriber ({{session.unsubscribe(...)}}) * check count of messages in JDBC store (0 is expected, but 10 is a reality) IMHO there is a problem, that {{session.unsubscribe()}} only removes entry from {{ACTIVEMQ_ACKS}} table ({{topicStore.deleteSubscription(...)}}). It means that messages, which are currently present in {{ACTIVEMQ_MSGS}} table are never removed, because the delete statement in {{JDBCPersistenceAdapter.cleanup()}} method joins {{ACTIVEMQ_ACKS}} table (but subscription was already removed). The "Removing inactive subscribers" has no effect to this test case, because durable subscription is removed from {{TopicRegion.durableSubscriptions}} field, when {{session.unsubscribe(...)}} method is invoked. Very simple test case is attached. -- This message was sent by Atlassian JIRA (v7.6.3#76005)