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:
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
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:
A header identifying MQSC commands as the source of the report:
Starting MQSC for queue manager jupiter.queue.manager.
Where
jupiter.queue.manager is the name of the queue manager.
An optional numbered listing of the MQSC commands issued. By default, the text of the input is
echoed to the output. Within this output, each command is prefixed by a sequence number, as shown in
Figure 2. However, we can use the -e flag on the
runmqsc command to suppress the output.
A syntax error message for any commands found to be in error.
An operator message indicating the outcome of running each command. For example, the operator
message for the successful completion of a DEFINE QLOCAL command is:
AMQ8006: IBM MQ queue created.
Other messages resulting from general errors when running the script file.
A brief statistical summary of the report indicating the number of commands read, the number of
commands with syntax errors, and the number of commands that could not be processed. Note: The queue
manager attempts to process only those commands that have no syntax errors.
Figure 2. Extract from an MQSC command report file
The following MQSC command files are supplied with IBM MQ:
amqscos0.tst
Definitions of objects used by sample programs.
amqscic0.tst
Definitions of queues for CICSĀ® transactions.
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:
Running a large number of commands from a command file.
Use an MQSC command file many times over.
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:
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.