[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=296278&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-296278 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 16/Aug/19 13:20 Start Date: 16/Aug/19 13:20 Worklog Time Spent: 10m Work Description: jbertram commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-522006385 I just sent #2800 which is based on your work here, @michaelandrepearce. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 296278) Time Spent: 5.5h (was: 5h 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 5.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=296274&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-296274 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 16/Aug/19 13:18 Start Date: 16/Aug/19 13:18 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2800: ARTEMIS-2451 eliminate knownDestinations cache URL: https://github.com/apache/activemq-artemis/pull/2800 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 296274) Time Spent: 5h 20m (was: 5h 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 5h 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295497&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295497 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 15:30 Start Date: 15/Aug/19 15:30 Worklog Time Spent: 10m Work Description: jbertram commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521683921 It's *possible* that `tempQueues` could grow like `knownDestinations`. However, entries are only added to `tempQueues` for temporary destinations that the client actually creates and entries from `tempQueues` get removed when the corresponding temporary destination is deleted from the broker. An entry is added to `knownDestinations` for every unique destination to which a client sends a message and those entries *never* get removed unless they are temporary destinations which the client itself deletes. In my mind these facts make the pathological growth much less likely. Also, in JMS terms the lifetime of a temporary destination is actually the lifetime of the *connection* that created it, not the session. The temporary destinations need to be tracked somehow so that the client implementation can delete them implicitly when the connection is closed in the case that the application doesn't delete them explicitly. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295497) Time Spent: 5h 10m (was: 5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 5h 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295313&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295313 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:41 Start Date: 15/Aug/19 08:41 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521563091 @jbertram re: > BTW, the issue I saw wasn't a leak, per se. It was simply unwanted accumulation based on the way it was designed. Won't we get similar issue on the tempoary queue set thats used to track temp queues in connection? I guess that could probably move into the session object, so theyre cleaned up as a session is closed, which is anyhow the lifetime of a temporary queue anyhow. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295313) Time Spent: 5h (was: 4h 50m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295312&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295312 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:40 Start Date: 15/Aug/19 08:40 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521563091 @jbertram re: > BTW, the issue I saw wasn't a leak, per se. It was simply unwanted accumulation based on the way it was designed. Won't we get similar issue on the tempoary queue set thats used to track temp queues? I guess that could probably move into the session object, so theyre cleaned up as a session is closed, which is anyhow the lifetime of a temporary queue anyhow. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295312) Time Spent: 4h 50m (was: 4h 40m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4h 50m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295308&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295308 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:39 Start Date: 15/Aug/19 08:39 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521563091 @jbertram re: > BTW, the issue I saw wasn't a leak, per se. It was simply unwanted accumulation based on the way it was designed. Won't we get similar issue on the tempoary queue set thats used to track temp queues? This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295308) Time Spent: 4.5h (was: 4h 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295310&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295310 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:39 Start Date: 15/Aug/19 08:39 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521563091 @jbertram re: > BTW, the issue I saw wasn't a leak, per se. It was simply unwanted accumulation based on the way it was designed. Won't we get similar issue on the tempoary queue set thats used to track temp queues? I guess that could probably move into the session object, so theyre cleaned up as a session is closed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295310) Time Spent: 4h 40m (was: 4.5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4h 40m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295303&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295303 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:37 Start Date: 15/Aug/19 08:37 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521562542 @jbertram this was a quick scrap togeather of what i was trying to describe in review comment on your pr. Im happy to complete it fully for you, but it wont be till next week. Im more than happy if you wish to just take it and complete it (e.g. dont worry about keeping my authorship) This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295303) Time Spent: 4h 10m (was: 4h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4h 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=295305&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-295305 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 15/Aug/19 08:37 Start Date: 15/Aug/19 08:37 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521562542 @jbertram this was a quick scrap togeather of what i was trying to describe in review comment on your pr. Im happy to complete it fully for you, but it wont be till next week. Im more than happy if you need this done faster and wish to just take it and complete it (e.g. dont worry about keeping my authorship) This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 295305) Time Spent: 4h 20m (was: 4h 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4h 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294999&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294999 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 20:08 Start Date: 14/Aug/19 20:08 Worklog Time Spent: 10m Work Description: jbertram commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521398981 BTW, the issue I saw wasn't a leak, per se. It was simply unwanted accumulation based on the way it was designed. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294999) Time Spent: 4h (was: 3h 50m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 4h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294997&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294997 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 20:07 Start Date: 14/Aug/19 20:07 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294997) Time Spent: 3h 50m (was: 3h 40m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3h 50m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294996&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294996 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 20:07 Start Date: 14/Aug/19 20:07 Worklog Time Spent: 10m Work Description: jbertram commented on issue #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#issuecomment-521398595 Closing in favor of #2796. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294996) Time Spent: 3h 40m (was: 3.5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3h 40m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294964&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294964 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 19:28 Start Date: 14/Aug/19 19:28 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#discussion_r314044808 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/amqp/QueueAutoCreationTest.java ## @@ -23,10 +23,7 @@ import org.apache.activemq.artemis.core.server.ActiveMQServer; import org.apache.activemq.artemis.core.server.JournalType; import org.apache.activemq.artemis.core.settings.impl.AddressSettings; -import org.apache.activemq.artemis.jms.client.ActiveMQConnection; -import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; -import org.apache.activemq.artemis.jms.client.ActiveMQQueue; -import org.apache.activemq.artemis.jms.client.ActiveMQTopic; +import org.apache.activemq.artemis.jms.client.*; Review comment: Star imports are a check-style violation. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294964) Time Spent: 3.5h (was: 3h 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294960&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294960 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 19:27 Start Date: 14/Aug/19 19:27 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#discussion_r314044552 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -81,7 +82,7 @@ public void testTemporaryQueueLeak() throws Exception { tempQueue.delete(); - assertFalse(conn.containsKnownDestination(SimpleString.toSimpleString(tempQueue.getQueueName(; + assertFalse(((ActiveMQDestination) tempQueue).isCreated()); Review comment: This test fails because `ActiveMQDestination.delete()` doesn't call `setCreated(false)`. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294960) Time Spent: 3h 10m (was: 3h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3h 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294962&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294962 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 19:27 Start Date: 14/Aug/19 19:27 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#discussion_r314044717 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/AutoCreateJmsDestinationTest.java ## @@ -41,12 +41,8 @@ import org.apache.activemq.artemis.core.security.Role; import org.apache.activemq.artemis.core.server.Queue; import org.apache.activemq.artemis.core.settings.impl.AddressSettings; -import org.apache.activemq.artemis.jms.client.ActiveMQConnection; -import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory; -import org.apache.activemq.artemis.jms.client.ActiveMQQueue; -import org.apache.activemq.artemis.jms.client.ActiveMQTemporaryTopic; -import org.apache.activemq.artemis.jms.client.ActiveMQTopic; -import org.apache.activemq.artemis.tests.util.Wait; +import org.apache.activemq.artemis.jms.client.*; Review comment: Star imports are a check-style violation. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294962) Time Spent: 3h 20m (was: 3h 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3h 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294959&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294959 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 19:26 Start Date: 14/Aug/19 19:26 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#discussion_r314044316 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -227,45 +228,6 @@ public void testForTempQueueCleanerUpperLeak() throws Exception { } } - @Test Review comment: These tests are still valid and shouldn't be removed. They are testing the server-side accumulation of address info. The changes in this PR are for the client-side. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294959) Time Spent: 3h (was: 2h 50m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 3h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294922&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294922 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 18:33 Start Date: 14/Aug/19 18:33 Worklog Time Spent: 10m Work Description: jbertram commented on issue #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796#issuecomment-521365341 At first glance this looks like a clever solution and better than the one I came up with. Let me review it in more detail. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294922) Time Spent: 2h 50m (was: 2h 40m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2h 50m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294604&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294604 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 08:42 Start Date: 14/Aug/19 08:42 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313765154 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: ive very quickly tried to code up what im trying to explain here as an alternative approach: https://github.com/apache/activemq-artemis/pull/2796 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294604) Time Spent: 2h 40m (was: 2.5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2h 40m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294603&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294603 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 08:41 Start Date: 14/Aug/19 08:41 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313765154 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: ive very quickly tried to code up what im trying to explain here: https://github.com/apache/activemq-artemis/pull/2796 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294603) Time Spent: 2.5h (was: 2h 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294602&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294602 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 08:41 Start Date: 14/Aug/19 08:41 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2796: ARTEMIS-2451 remove need for knownDestination Cache URL: https://github.com/apache/activemq-artemis/pull/2796 @jbertram this is partially what i was trying to explain as an alternative approach to simply remove the need for the cache https://github.com/apache/activemq-artemis/pull/2794. I assume you've hit some client side memory leak issue, that you're trying to resolve This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294602) Time Spent: 2h 20m (was: 2h 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2h 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294560&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294560 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:37 Start Date: 14/Aug/19 07:37 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313740128 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: similar could be done for method void checkDestination(ActiveMQDestination destination) throws JMSException just check if the connection was the one that created the destination object, and then inside the destination object hold a flag if its been created broker side or not (which is what the cache was doing) This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294560) Time Spent: 2h 10m (was: 2h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2h 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294559&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294559 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:35 Start Date: 14/Aug/19 07:35 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313740128 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: similar could be done for method void checkDestination(ActiveMQDestination destination) throws JMSException just check if the connection was the one that created the destination object, and thus remove need for cache This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294559) Time Spent: 2h (was: 1h 50m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 2h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294556&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294556 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:33 Start Date: 14/Aug/19 07:33 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313739151 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: it seems we already have session inside destination as such this would be relatively easy. expose the session on ActiveMQDestination e.g. ``` public ActiveMQSession getSession() { return session; } ``` And then in this check: ``` if (jbdest.isTemporary() && (jbdest.getSession() == null || connection != jbdest.getSession().getConnection())) { ``` lastly just clean up bits that we adding and removing temp address into the cache, as redundent. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294556) Time Spent: 1h 50m (was: 1h 40m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1h 50m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294555&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294555 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:32 Start Date: 14/Aug/19 07:32 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313739151 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: it seems we already have session inside destination as such this would be relatively easy. expose the session on ActiveMQDestination e.g. ``` public ActiveMQSession session() { return session; } ``` And then in this check: ``` if (jbdest.isTemporary() && (jbdest.session() == null || connection != jbdest.session().getConnection())) { ``` lastly just clean up bits that we adding and removing temp address into the cache, as redundent. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294555) Time Spent: 1h 40m (was: 1.5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1h 40m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294543&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294543 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:19 Start Date: 14/Aug/19 07:19 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313734672 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: An alternative solution to this problem is remove knownDestination entirely, and have a reference to the session & connection in the Destination itself, and then it will no longer be needed, as we can do the check directly on the destination, e.g. something like ` jbdest.getConnection == connection` Removing the need for the set This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294543) Time Spent: 1h 20m (was: 1h 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1h 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294544&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294544 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:19 Start Date: 14/Aug/19 07:19 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313734672 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: An alternative solution to this problem is remove knownDestination entirely, and have a reference to the session & connection in the Destination itself, and then it will no longer be needed, as we can do the check directly on the destination, e.g. something like ` jbdest.getConnection == connection` Removing the need for the set / cache for this check This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294544) Time Spent: 1.5h (was: 1h 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294538&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294538 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:15 Start Date: 14/Aug/19 07:15 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313731994 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: e.g. where you make a temp dest for a reply from for other services, that is set in the replyto on the produced message, and then setup the consumer to listen to, currently if > 100 other services it would need to co-ordinate with, it will now break, due to the below check, in session which will break the ability to make a consumer for temp destination (when more the 100) if (jbdest.isTemporary() && !connection.containsTemporaryQueue(jbdest.getSimpleAddress())) { throw new JMSException("Can not create consumer for temporary destination " + destination + " from another JMS connection"); } This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294538) Time Spent: 1h (was: 50m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294539&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294539 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:15 Start Date: 14/Aug/19 07:15 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313731994 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: e.g. where you make a temp dest for a reply from for other services, that is set in the replyto on the produced message, and then setup the consumer to listen to, currently if > 100 other services it would need to co-ordinate with, it will now break, due to the below check, in session which will break the ability to make a consumer for temp destination (when more than100) if (jbdest.isTemporary() && !connection.containsTemporaryQueue(jbdest.getSimpleAddress())) { throw new JMSException("Can not create consumer for temporary destination " + destination + " from another JMS connection"); } This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294539) Time Spent: 1h 10m (was: 1h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 1h 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294535&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294535 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:11 Start Date: 14/Aug/19 07:11 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313731994 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: e.g. where you make a temp dest for a reply from for other services, that is set in the replyto on the produced message, and then setup the consumer to listen to, currently if > 100 other services it would need to co-ordinate with, it will now break. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294535) Time Spent: 50m (was: 40m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 50m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294532&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294532 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:09 Start Date: 14/Aug/19 07:09 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313731309 ## File path: tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/jms/client/TemporaryDestinationTest.java ## @@ -266,6 +266,24 @@ public void testForTempQueueTargetInfosSizeLimit() throws Exception { } } + @Test + public void testForKnownAddressSizeLimit() throws Exception { + try { + conn = createConnection(); + Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); + for (int i = 0; i < 200; i++) { +TemporaryQueue temporaryQueue = s.createTemporaryQueue(); +MessageProducer producer = s.createProducer(temporaryQueue); +producer.send(s.createMessage()); + } + assertTrue(((ActiveMQConnection)conn).getKnownDestinations().size() <= 100); Review comment: Need a test case where a temporary dest is created first and then later consumers are created on it, currently with this change the existing behaviour which allows this and will mean on create consumer for the temp dest will throw error as will be not a known dest. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294532) Time Spent: 40m (was: 0.5h) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 40m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294530&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294530 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 07:06 Start Date: 14/Aug/19 07:06 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313730591 ## File path: artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnection.java ## @@ -97,7 +98,7 @@ private final Set tempQueues = new ConcurrentHashSet<>(); - private final Set knownDestinations = new ConcurrentHashSet<>(); + private final ConcurrentMaxSizeCache knownDestinations = new ConcurrentMaxSizeCache<>(100); Review comment: this will actually cause issues if someone is using temp destinations, and has say more than 100 legitimately. and creates the consumers later, as the consumer will check it its known, which now it wont and will throw an error. This will at least mean people can increase that setting if they need. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294530) Time Spent: 0.5h (was: 20m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 0.5h > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=294526&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-294526 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 14/Aug/19 06:52 Start Date: 14/Aug/19 06:52 Worklog Time Spent: 10m Work Description: michaelandrepearce commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794#discussion_r313726708 ## File path: artemis-jms-client/src/main/java/org/apache/activemq/artemis/jms/client/ActiveMQConnection.java ## @@ -97,7 +98,7 @@ private final Set tempQueues = new ConcurrentHashSet<>(); - private final Set knownDestinations = new ConcurrentHashSet<>(); + private final ConcurrentMaxSizeCache knownDestinations = new ConcurrentMaxSizeCache<>(100); Review comment: Can we make this configurable (e.g. a setting in the CF), 100 is a bit of a magic number. This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 294526) Time Spent: 20m (was: 10m) > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Work logged] (ARTEMIS-2451) Limit size of destination cache
[ https://issues.apache.org/jira/browse/ARTEMIS-2451?focusedWorklogId=293970&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-293970 ] ASF GitHub Bot logged work on ARTEMIS-2451: --- Author: ASF GitHub Bot Created on: 13/Aug/19 15:39 Start Date: 13/Aug/19 15:39 Worklog Time Spent: 10m Work Description: jbertram commented on pull request #2794: ARTEMIS-2451 limit size of destination cache URL: https://github.com/apache/activemq-artemis/pull/2794 This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking --- Worklog Id: (was: 293970) Time Spent: 10m Remaining Estimate: 0h > Limit size of destination cache > --- > > Key: ARTEMIS-2451 > URL: https://issues.apache.org/jira/browse/ARTEMIS-2451 > Project: ActiveMQ Artemis > Issue Type: Improvement >Reporter: Justin Bertram >Assignee: Justin Bertram >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > This is the client-side version of ARTEMIS-2449. Simply put, there is no > limit on the destination cache for a core JMS client. For a long-lived > connection sending to lots of different destinations (e.g. in a request-reply > use-case involving temporary queues) this can present a significant problem. -- This message was sent by Atlassian JIRA (v7.6.14#76016)