+

Search Tips | Advanced Search

Running MQSC commands from text files

Running MQSC commands interactively is suitable for quick tests, but if we have very long commands, or are using a particular sequence of commands repeatedly, consider redirecting stdin from a text file.

To redirect stdin from a text file, first create a text file containing the MQSC commands using your usual text editor, and then run the runmqsc command. Note: If you run the runmqsc command in client mode by redirecting stdin from a text file, IBM MQ expects the first line of the input file to be a password. When we use the runmqsc command, use the redirection operators. For example, the following command runs a sequence of commands contained in the text file myprog.in:
runmqsc < myprog.in

Similarly, we can also redirect the output to a file. A file containing the MQSC commands for input is called an MQSC command file. The output file containing replies from the queue manager is called the output file.

To redirect both stdin and stdout on the runmqsc command, use this form of the command:
runmqsc < myprog.in > myprog.out

This command invokes the MQSC commands contained in the MQSC command file myprog.in. Because we have not specified a queue manager name, the MQSC commands run against the default queue manager. The output is sent to the text file myprog.out. Figure 1 shows an extract from the MQSC command file myprog.in and Figure 2 shows the corresponding extract of the output in myprog.out.

To redirect stdin and stdout on the runmqsc command, for a queue manager ( saturn.queue.manager) that is not the default, use this form of the command:
runmqsc saturn.queue.manager < myprog.in > myprog.out


MQSC command files

MQSC commands are written in human-readable form, that is, in ASCII text. Figure 1 is an extract from an MQSC command file showing an MQSC command (DEFINE QLOCAL) with its attributes. MQSC commands contains a description of each MQSC command and its syntax.
Figure 1. Extract from an MQSC command file
.
.
.
DEFINE QLOCAL(ORANGE.LOCAL.QUEUE) REPLACE +
DESCR(' ') +
PUT(ENABLED) +
DEFPRTY(0) +
DEFPSIST(NO) +
GET(ENABLED) +
MAXDEPTH(5000) +
MAXMSGL(1024) +
DEFSOPT(SHARED) +
NOHARDENBO +
USAGE(NORMAL) +
NOTRIGGER;
.
.
.

For portability among IBM MQ environments, limit the line length in MQSC command files to 72 characters. The plus sign indicates that the command is continued on the next line.


MQSC command reports

The runmqsc command returns a report, which is sent to stdout. The report contains:

Figure 2. Extract from an MQSC command report file
Starting MQSC for queue manager jupiter.queue.manager.
.
.
12:   DEFINE QLOCAL('ORANGE.LOCAL.QUEUE') REPLACE +
:      DESCR(' ') +
:      PUT(ENABLED) +
:      DEFPRTY(0) +
:      DEFPSIST(NO) +
:      GET(ENABLED) +
:      MAXDEPTH(5000) +
:      MAXMSGL(1024) +
:      DEFSOPT(SHARED) +
:      NOHARDENBO +
:      USAGE(NORMAL) +
:      NOTRIGGER;
AMQ8006: IBM MQ queue created.
:
.
.


Running the supplied MQSC command files

The following MQSC command files are supplied with IBM MQ:

In IBM MQ for Windows, these files are located in the directory MQ_INSTALLATION_PATH\tools\mqsc\samples. MQ_INSTALLATION_PATH represents the high-level directory in which IBM MQ is installed.

On UNIX and Linux systems these files are located in the directory MQ_INSTALLATION_PATH/samp. MQ_INSTALLATION_PATH represents the high-level directory in which IBM MQ is installed.

The command that runs them is:

runmqsc < amqscos0.tst >test.out


Use runmqsc to verify commands

We can use the runmqsc command to verify MQSC commands on a local queue manager without actually running them. To do this, set the -v flag in the runmqsc command, for example:
runmqsc -v < myprog.in > myprog.out
When you invoke runmqsc against an MQSC command file, the queue manager verifies each command and returns a report without actually running the MQSC commands. This allows you to check the syntax of the commands in your command file. This is particularly important if you are:

The returned report is similar to that shown in Figure 2.

We cannot use this method to verify MQSC commands remotely. For example, if you attempt this command:
runmqsc -w 30 -v jupiter.queue.manager < myprog.in > myprog.out

The -w flag, which we use to indicate that the queue manager is remote, is ignored, and the command is run locally in verification mode. 30 is the number of seconds that IBM MQ waits for replies from the remote queue manager.