Can you set a debugger breakpoint in one of the methods of the broker's
initialization process and then trigger the behavior? Then you'll have
access to the call stack (including the values of all variables at each
call in the stack) that resulted in the decision to start a new broker, and
hopefully by walking up the stack you'll be able to see what caused
initialization to occur when it otherwise wouldn't be expected to.

Tim

On Fri, Dec 11, 2020, 11:11 AM Martijn Brinkers <martijn.l...@gmail.com>
wrote:

> On 11-12-2020 18:37, Jean-Baptiste Onofre wrote:
> > Do you use the vm connector in your broker service ?
>
> Yes that is correct. I only use it for internal JMS messaging. The
> transportConnector is therefore set vm://localhost
>
> Kind regards,
>
> Martijn Brinkers
>
>
> >> Le 11 déc. 2020 à 16:17, Martijn Brinkers (list) <
> martijn.l...@gmail.com> a écrit :
> >>
> >> Unfortunately it looks like it's not easy (for me) to replicate in a
> >> simple application.
> >>
> >> It looks like the issue is related to a shutdown hook somehow
> >> resurrecting the broker after the broker was stopped.
> >>
> >> Unfortunately the logging lines are a bit long so I hope it's somewhat
> >> readable.
> >>
> >> The shutdown logging shows that ActiveMQ is shutting down but then just
> >> after the shutdown hook, a new instance of the BrokerService is created
> >> with the default values. For example it reports a warning about max
> >> memory 1024mb. In the spring config however the max memory is set to
> >> 20MB.
> >>
> >> INFO  Apache ActiveMQ 5.16.0 (localhost, ID:martijn-laptop-45763-
> >> 1607698489325-0:1) is shutting
> >> down    (org.apache.activemq.broker.BrokerService) [ActiveMQ
> >> ShutdownHook]
> >>
> >> INFO  Connector vm://localhost
> >> stopped    (org.apache.activemq.broker.TransportConnector) [ActiveMQ
> >> ShutdownHook]
> >>
> >> INFO  PListStore:[/home/martijn/git/ciphermail-core/var/jms-
> >> data/localhost/tmp_storage]
> >> stopped    (org.apache.activemq.store.kahadb.plist.PListStoreImpl)
> >> [ActiveMQ ShutdownHook]
> >>
> >> INFO  Stopping async queue
> >> tasks    (org.apache.activemq.store.kahadb.KahaDBStore) [ActiveMQ
> >> ShutdownHook]
> >>
> >> INFO  Stopping async topic
> >> tasks    (org.apache.activemq.store.kahadb.KahaDBStore) [ActiveMQ
> >> ShutdownHook]
> >>
> >> INFO  Stopped KahaDB    (org.apache.activemq.store.kahadb.KahaDBStore)
> >> [ActiveMQ ShutdownHook]
> >>
> >> WARN  Memory Usage for the Broker (1024mb) is more than the maximum
> >> available for the JVM: 455 mb - resetting to 70% of maximum available:
> >> 318 mb    (org.apache.activemq.broker.BrokerService)
> >> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1]
> >>
> >> INFO  Using Persistence Adapter:
> >> KahaDBPersistenceAdapter[/home/martijn/git/ciphermail-core/activemq-
> >> data/localhost/KahaDB]    (org.apache.activemq.broker.BrokerService)
> >> [org.springframework.jms.listener.DefaultMessageListenerContainer#0-1]
> >>
> >> INFO  Apache ActiveMQ 5.16.0 (localhost, ID:martijn-laptop-45763-
> >> 1607698489325-0:1) uptime 7.446
> >> seconds    (org.apache.activemq.broker.BrokerService) [ActiveMQ
> >> ShutdownHook]
> >>
> >> INFO  Apache ActiveMQ 5.16.0 (localhost, ID:martijn-laptop-45763-
> >> 1607698489325-0:1) is
> >> shutdown    (org.apache.activemq.broker.BrokerService) [ActiveMQ
> >> ShutdownHook]
> >>
> >> A simple test application does not show this issue.
> >>
> >> If I disable (i.e., comment out) the following
> >> DefaultMessageListenerContainer, then the shutdown works normally.
> >>
> >> <bean
> >> class="org.springframework.jms.listener.DefaultMessageListenerContainer
> >> " >
> >>    <property name="connectionFactory" ref="connectionFactory"/>
> >>    <property name="destination" ref="certificateCreatedTopic"/>
> >>    <property name="sessionTransacted" value="true" />
> >>    <property name="pubSubDomain" value="true"/>
> >>    <property name="subscriptionDurable" value="true" />
> >>    <property name="clientId" value="ciphermail.gateway" />
> >>    <property name="durableSubscriptionName" value="certificate-
> >> created-listener" />
> >> </bean>
> >>
> >> For some reason adding DefaultMessageListenerContainer instance somehow
> >> results in restarting and instance of BrokerService which is then
> >> shutdown.
> >>
> >> Any idea?
> >>
> >> Kind regards,
> >>
> >> Martijn Brinkers
> >>
> >> On Fri, 2020-12-11 at 06:09 -0700, Tim Bain wrote:
> >>> This sounds like a bug. Please submit a bug in JIRA, ideally
> >>> attaching a
> >>> minimal reproducer.
> >>>
> >>> Thanks,
> >>> Tim
> >>>
> >>> On Fri, Dec 11, 2020, 5:58 AM Martijn Brinkers (list) <
> >>> martijn.l...@gmail.com> wrote:
> >>>
> >>>> I have embedded ActiveMQ inside a spring application.
> >>>>
> >>>> The broker is configured in XML and I explicitly set the
> >>>> dataDirectory:
> >>>>
> >>>> <amq:broker useJmx="false" persistent="true"
> >>>> dataDirectory="var/jms">
> >>>>    <amq:transportConnectors>
> >>>>        <amq:transportConnector uri="vm://localhost" />
> >>>>    </amq:transportConnectors>
> >>>> </amq:broker>
> >>>>
> >>>> When I startup my application, the var/jms directory is created and
> >>>> JMS
> >>>> messages are stored when required. If however I shutdown my
> >>>> application, an addtional directory "activemq-
> >>>> data/localhost/KahaDB" is
> >>>> created. This only happens if "useShutdownHook" is true (which is
> >>>> the
> >>>> default).
> >>>>
> >>>> It looks like the shutdownhook tries to create the "data directory"
> >>>> but ignores the configured value and therefore uses the default
> >>>> data
> >>>> directory name.
> >>>>
> >>>> Is this a bug? Or did I make a configuration error?
> >>>>
> >>>> Kind regards,
> >>>>
> >>>> Martijn Brinkers
> >>>>
> >>>>
> >>
> >
>
>

Reply via email to