You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2021/01/04 17:26:00 UTC

[jira] [Work logged] (ARTEMIS-3031) Add SERVER_STOP_CALLED Notification

     [ https://issues.apache.org/jira/browse/ARTEMIS-3031?focusedWorklogId=530775&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-530775 ]

ASF GitHub Bot logged work on ARTEMIS-3031:
-------------------------------------------

                Author: ASF GitHub Bot
            Created on: 04/Jan/21 17:25
            Start Date: 04/Jan/21 17:25
    Worklog Time Spent: 10m 
      Work Description: jbertram opened a new pull request #3396:
URL: https://github.com/apache/activemq-artemis/pull/3396


   The existing deactivation callback happens *after* several important
   services are shutdown (e.g. the remoting service which allows client
   connectivity). This commit adds a new callback which is invoked *before*
   any services are stopped. This is useful for embedded use-cases where
   applications want to stop gracefully before any part of the broker is
   stopped.
   
   A default, empty method implementation is provided so that existing
   callback implementations don't need to change.


----------------------------------------------------------------
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:
users@infra.apache.org


Issue Time Tracking
-------------------

            Worklog Id:     (was: 530775)
    Remaining Estimate: 0h
            Time Spent: 10m

> Add SERVER_STOP_CALLED Notification
> -----------------------------------
>
>                 Key: ARTEMIS-3031
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3031
>             Project: ActiveMQ Artemis
>          Issue Type: New Feature
>          Components: Broker
>            Reporter: Aaron Steigerwald
>            Priority: Minor
>         Attachments: Artemis_Camel_shutdown_with_SERVER_STOP_CALLED_Notification.txt, Artemis_Camel_shutdown_without_SERVER_STOP_CALLED_Notification.txt
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> There doesn't appear to be a way to tell when the Artemis server is starting to stop. This is needed to communicate with some web applications running inside the server's JVM. For example, it is needed to suspend or stop Camel before much of the Artemis server shuts down. Currently, most of the Artemis server's components shutdown before the WebServerComponent does, which contains web applications like Camel. A SERVER_STOP_CALLED Notification can be used to suspend or stop Camel via JMX before the Artemis server's acceptors shutdown.
> One way to accomplish this is to:
> 1) Add a new SERVER_STOP_CALLED enum to org.apache.activemq.artemis.api.core.management.CoreNotificationType.
> 2) Send a SERVER_STOP_CALLED Notification in org.apache.activemq.artemis.cli.commands.Run.stop() like the following:
> {noformat}
>          if (server != null) {
>             // Start new code
>             TypedProperties props = new TypedProperties();
>             props.putSimpleStringProperty(new SimpleString("callingClass"), new SimpleString(this.getClass().getName()));
>             props.putSimpleStringProperty(new SimpleString("callingMethod"), new SimpleString("stop"));
>             server.getServer().getManagementService().sendNotification(new Notification(null, SyndeoNotificationType.SERVER_STOP_CALLED, props));
>             // End new code
>             server.stop(true);
>          }{noformat}
> Without this feature, web applications like Camel can take a long time to shutdown depending on the configuration. Also, the shutdown can appear ungraceful and it's unclear what impact it has on inflight messages.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)