mqsistopmsgflow command

Use the mqsistopmsgflow command to stop integration servers, applications, and message flows.

Purpose

You can use the mqsistopmsgflow command for the following purposes:
  • To stop a specific message flow in an integration server
  • To stop all message flows in the integration server
  • To stop a specific integration server
  • To stop all integration servers
  • To stop a message flow in a specific application or library or both
  • To stop all message flows in a specific application or library or both
  • To stop a specific application
  • To stop all applications

To use this command, you must have already deployed message flows, if specified, to the integration node in a BAR file.

The integration node processes all inflight messages and associated transactions for each message flow before the integration node stops. For information about how outstanding units of work are handled in this situation, see Message flow transactions.

Syntax

Read syntax diagramSkip visual syntax diagrammqsistopmsgflowintegrationNodeSpec  -e integrationServerName -g  -f restartExecutionGroup -m  flowName -j  -k  applicationName -z  -v traceFileName -w timeoutSecs -y libraryName
integrationNodeSpec
Read syntax diagramSkip visual syntax diagram integrationNodeName  -n integrationNodeFileName -i ipAddress -p port -i ipAddress -p port

Parameters

integrationNodeSpec
(Required) You must specify at least one parameter to identify the target integration node for this command, in one of the following forms:
integrationNodeName
This parameter identifies the name of a specified integration node. To connect to a remote integration node, you must also specify -i and -p.
-n integrationNodeFileName
This parameter identifies the name of a .broker file that contains the connection details for a local or remote integration node. Include the location (path) and file name when you specify this parameter. You must ensure that the location is accessible when you run this command.

Use this option if multiple users want to connect to the same integration node, or if you are using advanced connection parameters such as SSL. To learn more about creating and using a .broker file, see Connecting to an integration node by creating a .broker file.

If you want to run a command that uses SSL to administer a remote integration node over a secured channel, you must specify the keystore and truststore password for the connection that is using the IBM_JAVA_OPTIONS environment variable. For more information, see Resolving problems when running commands.

-i ipAddress, -p port
These parameters identify the connection details for the integration node.

Use this option for connections to remote integration nodes that do not require advanced connection parameters.

If you are connecting to a remote integration node, you can additionally prefix integrationNodeName to explicitly set which integration node to connect to. You cannot use -n integrationNodeFileName in the same command.

Parameters that you omit assume default values:

  • -i ipAddress: The host name or IP address of the computer on which the integration node is running. If you do not specify this parameter, a value that represents the local computer is used.

    If you want to connect to a secured integration server as a specific user, provide the security credentials as a URI in the following format: tcp://user:password@hostname. If your password contains URI Reserved characters, you must convert these characters to the percent-encoded format. For more information, see A correct URL and password returns error BIP1939 when you attempt to connect to a remote host name in Resolving problems when running commands.

  • -p port: The port on which the web user interface HTTP connection listener is listening. If you do not specify this parameter, the value 4414 is used.
-e integrationServerName
(Optional) The name of the integration server for which to stop message flows. You must specify either -e or -g.

If you specify -e without -m or -j, the integration server is stopped. The state of every message flow (stopped or started) is retained, and started message flows are started when the integration server is started again.

If you specify -e with -m or -j, the integration server must be running. If the integration server is stopped, the request is rejected.

-f

(Optional) Used with the -m, -e, and -k parameters to force the named message flow to stop within the named integration server or the named application.

The -f parameter specifies how the named message flow is stopped. Currently, restartExecutionGroup is the only option that can be specified, which causes the named message flow to be flagged as stopped and then restarts the named integration server. When the integration server restarts, the message flow is in the stop state.

-g
(Optional) The specified message flow or flows are stopped on all integration servers on the specified integration node. You must specify either -e or -g.

If you specify -g without -m or -j, all integration servers are stopped. The state of every message flow (stopped or started) is retained for each integration server, and started message flows are started when the integration server is started again.

If you specify -g with -m or -j, the specified message flow or flows are stopped only if the integration server is running. The request checks all integration servers, and stops message flows on integration servers that are currently running. Error BIP2851 is reported for each integration server that is not running.

-j

(Optional) All message flows in the specified integration server are stopped; the integration server is not stopped.

If you set this parameter, all message flows in the integration server are stopped, regardless of whether they are at the integration server level, in an application, or in a library. No applications are stopped. If you set the -j parameter with the -z parameter, all applications in the integration server are stopped, and the message flows that are at the integration server level or in libraries at the integration server level are stopped. The combination of -j and -z parameters does not stop message flows inside applications, or message flows inside libraries inside applications.

If you do not specify -j or -m, the integration server that is identified by -e (if specified), or all integration servers on this integration node, are stopped.

-k applicationName
(Optional) The name of an application to which to target a stop request.

If you set the -k parameter, you must also set the -e parameter. If you set the -k parameter but do not set the -m parameter, the application is stopped. When an application is stopped, the message flows that it contains do not run. If you set the -m parameter, the named message flow in the application is stopped.

If you set the -j parameter with the -k parameter, all message flows in the specified application are stopped, including the message flows in referenced libraries. Message flows in other applications or at integration server level are not stopped. The application is not stopped.

If you set the -k parameter with the -m or -j parameters, ensure that the application that is specified by the -k parameter is running. You cannot stop message flows in an application that is not started.

You cannot set both the -k parameter and the -z parameter.

-m flowName
(Optional) The name of the message flow being stopped.

You can specify only one message flow in a single command. If you want to stop all message flows deployed to the integration node, or to the integration server identified by -e, specify -j.

If you do not specify -m or -j, the integration server identified by -e (if specified), or all integration servers on this integration node, are stopped.
-v traceFileName
(Optional) This parameter sends internal debug trace information to the specified file.
-w timeoutSecs
(Optional) This parameter specifies the time in seconds that the utility waits to ensure that the command completed; the default value is 60.
-y libraryName
(Optional) The name of a library to which to target a stop request.

If you set the -y parameter, you must also set the -e parameter. If you set the -m parameter, the named message flow in the library is stopped.

If you set the -j parameter with the -y parameter, all message flows in the specified library are stopped. Message flows in other libraries or at integration server level are not stopped.

To stop all flows in a specific library in an application, use the -y parameter with the -k parameter. When you use a combination of the -y and -k parameters, only the flows in the named library in the named application are stopped. No flows are stopped at the application level, or in any other libraries in the application. No flows are stopped in any other application or at integration server level. The application is not stopped.

-z
(Optional) The -z parameter indicates that all applications in an integration server are to be stopped.

If you set the -j parameter with the -z parameter, all applications in the integration server are stopped, and the message flows that are at the integration server level or in libraries at the integration server level are stopped. The combination of -j and -z parameters does not stop message flows inside applications, or message flows inside libraries inside applications.

Deprecation of the -q parameter

In previous versions of IBM® Integration Bus, you might have used the -q parameter for this command to define a connection to a queue manager. A queue manager connection is no longer used to connect to an integration node. The -q parameter is now deprecated, and is ignored if used. If you use the -q parameter, a BIP1922 warning is displayed.

Responses

This command returns the following responses:
0
The command completed successfully.
2
(Failure) The integration node received the deployment request but was unable to process it successfully. See the messages issued from the utility (or the Administration log) for more information.
9
(Failure) The request has been submitted to the integration node, but no response was received before the timeout expired.
10
(Failure) Another user or application canceled the request operation before the integration node was able to process it.
98
The integration node is not running.
99
One or more of the parameters that you specified is invalid.

Examples

Stop a named integration server on integration node IBNODE:
mqsistopmsgflow IBNODE -e eg2
Stop all integration server processes on the local integration node IBNODE:
mqsistopmsgflow IBNODE -g

Stop the message flow myFlow1 in the application myApplication in the default integration server:

mqsistopmsgflow IBNODE -e default -k myApplication -m myFlow1

Stop the message flow myFlow1 in the default integration server and restart the default integration server:

mqsistopmsgflow IBNODE -e default -m myFlow1 -f restartExecutionGroup

Stop the message flow myFlow1 in the library myLibrary, which is referenced by the application myApplication, in the default integration server:

mqsistopmsgflow IBNODE -e default -k myApplication -y myLibrary -m myFlow1

Stop all message flows and stop all applications in the default integration server:

mqsistopmsgflow IBNODE -e default -z -j