38
© Copyright IBM Corporation 2009. All rights reserved. 9/14/2009 Wildfire-WebSphere MQ zSummerUni Hamburg WebSphere MQ for z/OS Lab Version V2.1 Monday, 14 September, 2009 Table of Contents zSummerUni Hamburg............................................................................................................ 1 WebSphere MQ for z/OS ...................................................................................................... 1 General Overview....................................................................................................................... 2 General Preparation .................................................................................................................. 4 General Instructions ................................................................................................................... 6 1 Queue Manager Initial Configuration ................................................................................... 8 1.1 Review the z/OS Configuration for WebSphere MQ ........................................................... 8 1.2 Creating Your Queue Manager’s System Data Sets ......................................................... 10 1.3 Defining Start-up Parameters and Starting the Queue Manager ...................................... 12 2 Basic Queue Administration ............................................................................................... 15 2.1 Basic WMQ Administration using the ISPF Admin Panels................................................ 15 2.2 Basic WMQ Administration Using the WMQ Explorer Tool............................................... 20 2.3 Simulate application activity using a workstation GUI MQ tool ......................................... 25 3 Distributed Queueing ......................................................................................................... 30 3.1 Defining Channels to Connect Queue Managers .............................................................. 30 3.2 Putting Messages to a Remote Queue .............................................................................. 32 3.3 Exercising on Some Special Distributed Queueing Conditions ....................................... 34 End of WMQ Lab Exercises .................................................................................................. 41 Page 1 of 38

zSummerUni Hamburg WebSphere MQ for z/OS

Embed Size (px)

Citation preview

© Copyright IBM Corporation 2009. All rights reserved.

9/14/2009 Wildfire-WebSphere MQ

zSummerUni Hamburg

WebSphere MQ for z/OS Lab Version V2.1 Monday, 14 September, 2009 Table of Contents

zSummerUni Hamburg............................................................................................................ 1 WebSphere MQ for z/OS ...................................................................................................... 1

General Overview....................................................................................................................... 2 General Preparation .................................................................................................................. 4 General Instructions ................................................................................................................... 6

1 Queue Manager Initial Configuration ................................................................................... 8 1.1 Review the z/OS Configuration for WebSphere MQ ........................................................... 8 1.2 Creating Your Queue Manager’s System Data Sets......................................................... 10 1.3 Defining Start-up Parameters and Starting the Queue Manager ...................................... 12

2 Basic Queue Administration ............................................................................................... 15 2.1 Basic WMQ Administration using the ISPF Admin Panels................................................ 15 2.2 Basic WMQ Administration Using the WMQ Explorer Tool............................................... 20 2.3 Simulate application activity using a workstation GUI MQ tool ......................................... 25

3 Distributed Queueing ......................................................................................................... 30 3.1 Defining Channels to Connect Queue Managers.............................................................. 30 3.2 Putting Messages to a Remote Queue.............................................................................. 32 3.3 Exercising on Some Special Distributed Queueing Conditions ....................................... 34

End of WMQ Lab Exercises.................................................................................................. 41

Page 1 of 38

General Overview Within this series of labs, you will build a "Queue Manager" (Qmgr) on z/OS based on WebSphere MQ Version 7, exercise on Queue Administration, define WMQ channels to connect your QMgr with that of a partner team and exchange messages with them using some simple sample applications. You will make use of both the ISPF based z/OS specific administration user interface as well as the WMQ Explorer which is an Eclipse-based GUI for administering Queue Managers on any platform.

The lab can be summarized in the following main tasks: 1. Setting up and configuring a Queue Manager on z/OS 2. Basic queue administration, running local applications against different types of queues. 3. Distributed Queueing: connecting Queue Managers and exchanging messages between them What has been prepared on z/OS

• The lab environment is made up of one LPAR named SYS9.

• WebSphere MQ for z/OS Version 7 is installed WMQ target libraries are named MQM.V700.SCSQ*

• 16 Queue Managers are defined as subsystems to z/OS with names - MQ13, MQ14, MQ15, MQ16 - MQ23, MQ24, MQ25, MQ26 - MQ33, MQ34, MQ35, MQ36 - MQ43, MQ44, MQ45, MQ46

• Likewise, student TSO IDs have been created named - TEAM13....TEAM16 , - TEAM23... TEAM26 , - TEAM33... TEAM36 , - TEAM43... TEAM46

• For each student ID, there is a working library with JCL and default input named TEAM#$.WMQ.CNTL – where ‘#$’ represents the two-digit team ID.

SYS9 192.168.7.90

What has been prepared on the Workstation On your workstation, Windows XP is running as a VMWare image with the following components installed that support these exercises:

• A 3270 emulator as part of IBM Personal Communications, which is used to run 3270 mainframe (“green screen”) sessions for TSO access.

• The WebSphere MQ Server V7 software to connect to a remote WMQ Queue Manage via the network.

• WebSphere MQ Explorer, the Eclipse-based WMQ Administration tool, with a rich set of useful functions.

• RFHUTIL, an auxiliary sample application suitable to read and write messages from/ to WMQ queues.

General Instructions How to Logon to TSO

1. D

2. In w ===> , en m ID. -

ouble-click the Personal Communications icon on your desktop.

the input field at the bottom of the screen, which is marked by an arroter (without quotes): tso TEAM#$, where ‘#$’ is substituted by you tea

the screen shot below shows the correct entry for TEAM14 *not* case-sensitive. - the entry string (both “tso” and the ID) is

********************************************************** * Boeblingen TMCC * * z/OS 1.8.0 * * Enter an application name or a VTAM LOGON command. * * Example: TSO userid or LOGON APPLID(applid) * *********************************************************** TSO - TSO/E (TSOMn for LOGON with Model n=2,3,4,5) CICS - CICS TS 3.2 IMS - IMS V10 z/OS SYS1 z/OS Wildfire Workshop IPADDR: 192.168.17.8 PORT : 01710 ===> tso TEAM14

3. Press the right Strg key to actuate your input. Note that all throughout the TSO session, the data entry key is *not* the normal (carriage-return) enter key, but the right Strg key! This takes you to the TSO Logon screen, which, at the left top, looks like this:

(ensure that Procedure ===> WFWBI and Command ===> wbimq7)

word announced by carefully – and hit

the Enter (Strg) key again.

is:

4. Tab/put the cursor to the Password entry field and enter the passthe instructor(s) – you won’t see what you type, so be sure you type

You will see something like th

ICH70001I TEAM14 LAST ACCESS AT 16:56:06 ON TUESDAY, JUNE 17, 2008IKJ56455I TEAM14 LOGON IN PROGRESS AT 15:37:14 ON AUGUST 18, 2008 IKJ56951I NO BROADCAST MESSAGES WBIMQ7 INMR003I You have no messages or data sets to receive.

***

5. Hit the Enter/Strg key again, which will take you to the ISPF Primary Option Menu. Instructions for the various TSO-based lab activities will start from this point.

1 Queue Manager Initial Configuration

Q

our part. ou are offered an opportunity to retrace the methods and places where and how the

t of

tion ==> input field to access the Data

Strg ).

YS1.PARMLIB by placing a “b” (for Browse) in

1.1 Review the z/OS Configuration for WebSphere M

This is just a browsing exercise, with no new contributions from yY

What this exercise is about This exercise provides an opportunity to examine a WebSphere MQ envirowhich has just been installed from the tapes, includ

nment ing the z/OS system settings

provided by PARMLIB members. You have to create the objects that are to support your particular Queue Manager and , and specify some variable attributes of your Queue Manager, before you may start it for the first time.

z/OS environment has been configured so to support the execution of our seWebSphere MQ Queue Managers.

Review the APF Authorization of WMQ System Load Libraries

6. From the ISPF Main Menu, enter 3.4 in the OpSet Utility.

7. In the Dsname level input field, enter SYS1.PARMLIB and hit Enter (right-hand

8. From the list of data sets shown, select Sfront of its name, as shown below, and press Enter (r-Strg) again.

-

9. G ng

- the WebSphere MQ libraries defined to the z/OS Linklist, - libs.

10.

The member list will open, in alphabetical order.

o to member PROGMQ, either by scrolling (PF8) until this name appears or by typi“L PROGMQ” (without quotes/ not case-sensitive) in the command entry field, and then put an “S” (select) in front of the name and press Enter (r-Strg) again. The contents of the member shows you

and those defined as APF-authorized, which is required for those

Press F3 to close the member currently displayed and to return to the member list.

1. Split your screen by placing the cursor somewhere in the first line, and then press the F2 key.

12.

13. ithout quotes) in the

14. d

t your following entry is a z/OS command): PROG,APF

ng) list of APF-authorized

e

Press F9 (switch) to return to your first screen.

tuations when using TSO.

se are the riate z/OS system.

he suffix of -9

19. ay command for “your” queue anager, entering the following string in the SDSF command line (note the starting

sl/<w f> has to be replaced by the command prefix string determined before

N

1

a second screen with the ISPF Primary Menu will show up.

From here, chose option “s” to invoke SDSF- the system display and search facility, which is the also the place where z/OS commands can be entered.

In the SDSF Primary Option Menu screen, enter “log” (wCOMMAND INPUT field to browse the system log.

Enter, in the COMMAND INPUT field of the subsequent screen the following z/OS command to browse the list of APF-authorized libraries (the leading slash (“/”) indicatetha/D

15. Can you identify the WMQ libs from the (probably quite lolibraries? Note that you can scroll forward (F8) and backword (F7) the system log, and also issusearches from the command line by entering something like this: f ‘MQM.V700’ The option prev (previous) maybe added to search backwards.

Review the z/OS subsystem entries for the Queue Managers defined

16.We recommend to keep the second screen active- a multiple screen configuration with at least one screen for browse/edit and another one for SDSF proves to be very useful in many practical si

17. In the SYS1.PARMLIB member list, locate the member with names starting with IEFSSNM. You will find members named IEFSSNM1, -2, -3, -4, ...; themembers that define the WMQ subsystems to the approp

18. Browse the member with t- Can you determine an entry for the queue manager with your team number? - What is your queue manager’s command prefix string?

Switch (F9) to the SDSF screen and enter a displm

ash) cpf> DISPLAY QMGR here <cp

- Is there a reasonable response to this command?

ote: we expect to see something like this, as a response:

RESPONSE=SYS1 CSQ3106E +MQ14 CSQ3EC0X - QUEUE MANAGER STOPPED. RESPONSE=COMMAND NOT PROCESSED - +MQ14 DISPLAY QMGR

20.

mmand input from

Try the same command with an arbitrary, not defined, command prefix, such as +ABCD,so enter /+ABCD DISPLAY QMGR from the SDSF command input line. -Note: we expect to see something like this, as a “response” to the coabove:

RESPONSE=SYS1 IEE305I +ABCD COMMAND INVALID

- Can you explain why this command input produced a completely different response?

1.2 Data Sets

for exclusive use by this particular queue manager: e page data sets, where the message data is stored

tion r.

Crea

21.

M in the Dsname level entry field, where ‘#$’ is

se) into the command column to the left of the library name,

ss Enter/Strg) member MQXYPAGE and using the ‘change ll occurrences of the string ‘#$’

ew JCL template member which you are going to submit.

How many page sets will be defined for your queue manager? You may write down here the data set names of them:

(shown for team #14)

Creating Your Queue Manager’s System

Before you can start a z/OS Queue Manager for the first time, some data sets have to be created- th- the log data sets, where message data is logged for recovery - bootstrap data set(s), which holds recovery related control informaWe also cover in this part of the exercise the set of initialization input data sets, bywhich various system resources (mainly queues) are defined to the queue manage

ting your Queue Manager’s Page Data Sets

Assumed that you still have your two-screen configuration active, press F3 in the first one until you are on the Data Set List Utility start level (alternatively, enter =3.4 in the command line) and enter TEAM#$.MQsubstituted by your two-digit team ID. Just one entry will be displayed- the one representing your WMQ working library, named TEAM#$.MQM.CNTL.

22. Put an “e” (lower or uppercato open the member list for editing selected members.

23. Edit (select with “s” and pre... all’ command from the TSO command line, change ato your team ID. Note that this change will always be required throughout these exercises, whenever youaccess a n- - - What about their sizes?

24. Submit the job, typing to the command line “sub” (without quotes), and then press Enter/Strg.

You will see this message IKJ56250I JOB TM14PAG(JOB03584) SUBMITTED .....

and if you press Enter/Strg again, within a short time a message like this will show up:

19.57.04 JOB03584 $HASP165 TM14PAG ENDED AT BOEBPCM1 MAXCC=0 CN(INTERNAL) ***

25. Switch to the SDSF screen (F9) and enter “ST” (status/ without quotes) in the command line to get a list of jobs that are of interest to you.

In case you see (maybe a lot) of other prosecces, enter g SDSF commands,

44 - owner * This will limit the list of processes displayed in your session to you own jobs and, later on, to your system address spaces.

the followinone at a time- where ‘#$’ has to be replaced by your team-ID again: - pre *#$* - e.g. pre *13* for team13, pre *44* for team

ran –

rmatted per page set.

Creating your Queue Manager’s Log and Bootstrap Data Sets

27. In your browse/edit screen, edit member MQXYBSDS and apply the same global change as before to replace the ‘#$’ string by your team ID.

Have a look at the contents of the JCL: - How many logs and how many bootstrap data sets will be prepared for your queue

anager?

28. b, typing to the command line “sub” (without quotes), and then press

30.

e for

Revi wing the Initialization Input Data Sets

31. In your browse/edit screen, copy the started task procedure JCL by which your queue manager is started, to your working library, TEAM#$.MQM.CNTL. You may do it this way: - starting from the member list of your working library, opened in EDIT mode, type “S MQ#$MSTR” (without quotes, with the ‘#$’ placeholder substituted, as shown below for team 14):

26. Put an “s” (select) in front of the TM#$PAGE job name- which is the job you just and account for its output.

We expect that all three steps complete with RC=00.

Go to the end of the listing (max/F8) and account for the number of pages fo

m- What do you conclude from the number of data sets created and their namings as to dual logging and dual bootstrapping?

Submit the joEnter/Strg. The same kind of intermediate pop-up messages will occur as before indicating the start and completion of your job.

29. Switch to the SDSF screen (F9) and re-enter the ST (status) command line to jump to orrefresh the status display.

Select the TM#$BSDS job, and account for its output.

We expect that all six steps complete with RC=00. Call out for help if this is not truyour job.

e

This opens a new (empty) member with the specified name.

32.

this is, to type the copy command into the command line, as

but the single quotes shown are required.

Copy the equally named member from the library, where the active started task procedures are placed, which is USER.PROCLIB : - the fastest way to performshown below for team14, then press Enter (Strg). - This input is not case-sensitive,

You now can explore the startup JCL of your queue manager (we don’t want you to edit the member in its original place, as any faulty changes could make its start-up impossible).

33. Scroll forward (F8) to the SYSTEM INITIALIZATION INPUT FILES section, with DD names CSQINP1 and CSQINP2.

34. Have a look, ie. browse, as described below, at least the member referenced bCSQINP1 DD statement, and one or two of the members referenced by CS

y the QINP2, and

IT mode, take the following steps:

e copied before to the Data Set Name input field in the is

discuss with your team partner what you come to see.

To browse a named member from within the ED- copy the full library(member) name to be looked at to your clipboard (edit/copy); - type bro or browse into the command input line, hit Enter (strg); - paste the library(member) nammiddle of the screen, but ADD a single quote in front of the name (an ending quote not required), as shown here for team 14:

The member specified will open in Browse mWhen you finished exploring a member, go back by pressing F3 (end/return) twice.

ode.

er 1.3 Defining Start-up Parameters and Starting the Queue Manag

ime, is attributes and

module which is created from

load module has to be specified with the START QMGR command.

Tailor

ge to replace the ‘#$’ by your team ID.

36. S used to define thThe template specifies dual logging, and you have to change this to single logging:

mn 72.

7. Search for the string ‘CSQ6SYSP’, the name of the third macro that is used to specify

this prevents the internal trace to start automatically and saves resources.

38. Scroll (F8) to the bottom of the member and notice the name of the resulting load module. - You may write it down here- wherever it fits. - The module is link-edited into the (commonly used) library specified by the SYSLMOD DD statement of the last step.

39. Submit the job, typing to the command line “sub” (without quotes), and then press Enter/Strg.

40. Switch to the SDSF screen (F9) and re-enter the ST (status) command line to jump to or refresh the status display.

41. Select the TM#$ZPRM job, and account for its output.

We expect that all four steps complete with RC=00. Call out for help if this is not true!

Starting your Queue Manager for the first time

42. In your SDSF screen, enter the following command in the command input line (remember that the command input has to start with a slash (‘/’))

/<cpf>START QMGR PARM=<parm-module-name>

where: - <cpf> is the command prefix string associated with your Queue Manager, as determined within step 18 of this exercise. - <parm-module-name> is the name of the parameter module assembled just before (you should have noted that name above).

43. Enter log in the SDSF command line to switch to the syslog display, if you are not already in this mode.

The last activity required before the queue manager can be started for the first tto provide a module with start-up options, which are WMQ systemsettings that are variable. In z/OS, these options are provided by means of a loadthree WMQ assembler macros. The name of the

ing and assembling the Queue Manager start-up parameter module

35. Edit member MQXYZPRM in your working library, TEAM#$.MQM.CNTL and first, perform the mandatory global chan

earch for the string ‘CSQ6LOGP’, the name of the first macro which ie logging options.

s

- change the TWOACTV=YES setting to TWOACTV=NO; - Be sure to put the comma immediately after the “NO” and keep the “X” in coluNote that this is a critical change. Your queue manager will not start if this is donewrong!

3system attributes from different areas. - change the TRACSTR value from YES to NO;

44. Browse the messages that are issued by your queue manager during start-up. ssage texts. uite the same time, and so the

syslog messages maybe mixed from various sources. - All messages are marked by the queue managers cpf string, so MQ14 messages

- You may shift to the right using F11 to see the me- Note that other teams may start their systems at q

appear like this:

00000090 CSQY000I +MQ14 IBM WebSphere MQ for z/OS V7 00000090 CSQY001I +MQ14 QUEUE MANAGER STARTING, USING PARAMETER M...

4 5. Search for the following message that indicates that your queue manager has startedsuccessfully (shown for team 14):

CSQY022I +MQ14 QUEUE MANAGER INITIALIZATION COMPLETE CSQ9022I +MQ14 CSQYASCP 'START QMGR' NORMAL COMPLETION

4 e (started task) named MQ#$CHIN is started automaticallly, right after the messages shown above have been issued. This is the Channel Initiator address space that hosts WMQ’s network interface functions. We will refer to this in the next lab exercise.

*

6. Note that a second address spac

************** END OF THE Queue Manager Initial Configuration LAB *************

2 Basic Queue Administration

2.1 B

TIt sc1)2)an

Hcosc

Configur

Wha WithManathe pYou simpandFu nction of the WMQ for z/OS

t this exercise is about

in this exercise, you learn to administer a running WebSphere MQ Queue ger on z/OS both by use of the ISPF Administration panels that come with roduct, and the Eclipse-based WMQ Explorer that runs on the workstation. will define some queues of different types and use both z/OS batch jobs andle workstation tools to access these queues- write messages to them, browse

remove them from there etc. rthermore, you familiarize with the command fu

batch utility – CSQUTIL.

asic WMQ Administration using the ISPF Admin Panels

he exercise starts from the ISPF primary menu, as before. is advisable to work with a split-screen configuration again, with a fix use of the singlereens: to access members through the Data Set List Utility (ISPF option =3.4) SDSF, to browse job output or the system log (ISPF option =s) d maybe a 3rd one) to access the WMQ Operations and Control panels (ISPF =m)

owever you accomplish it, the lab instructions presume and encourage such a nfiguration, and will refer to the “DSList screen”, the “SDSF screen” and the “WMQ reen” to denote where an activity takes place.

e the WMQ ISPF panels and check some basic functions

1. Open a new (third?) screen by typing “split new” into the command line at any of the existing screens

Display Filter View Print Options Help --------------------------------------------------- SDSF OPERLOG DATE 08/19/2008 0 WTORS COMMAND INPUT ===> split new 883 00000090 Page Buffer Total Unused Pe

A new screen with the ISPF Primary Option Menu will show up; - you probably have to put the cursor to the bottom line of the visible screen and hit theF2 key to display the newly created screen.

d to access the Data

manager. If not already there,

2. From the ISPF Main Menu, enter m in the Option ==> input fielSet Utility. The IBM WebSphere MQ for z/OS - Main Menu will show up.

3. You have to configure the basic settings within this screen to access your queue

4. 5. below for MQ14.

a. Change/set the Response Wait Time to a value in the range of 10 (seconds)- is good enough to get along with this....

enter “Q” (without quotes) as the Disposition put the name of your queue manager to the three fields as shown

we hope that our system performance

Disposition . . . . . . . . Q Q=Qmgr, C=Copy, P=Private, G=Group, S=Shared, A=All Connect name . . . . . . . MQ14 - local queue manager or group Target queue manager . . . MQ14 - connected or remote queue manager for command input Action queue manager . . . MQ14 - command scope in group Response wait time . . . . 10 5 - 999 seconds

These settings will remain in place for all ISPF based exercises; the other input fields will vary, dependent on what you are going to do.

6.-sensitive);

“*” as the Name

To display the queue manager attributes, enter (everything without quotes): - “1” as the Action id; “qmgr” as the Object type (not case

as shown below, then press Enter/Strg.

IBM WebSphere MQ for z/OS - Main Menu Complete fields. Then press Enter. Action . . . . . . . . . . 1 0. List with filter 4. Manage 1. List or Display 5. Perform 2. Define like 6. Start 3. Alter 7. Stop 8. Command Object type . . . . . . . . qmgr + Name . . . . . . . . . . . * Disposition . . . . . . . . Q Q=Qmgr, C=Copy, P=Private, G=Group, S=Shared, A=All

This inquiry is equivalent to the DISPLAY QMGR MQSC command. The result is displayed an scroll forward and backward (F8/F7).

7. Action “3” (Alter) instead of “1” (Display), then pres

8. and be

al text in the second line, such as “Tom's and Tina's zQMGR”.

10.

ee lists, between that you may scroll (F8/F7).

w many queues are there (see the hint in the upper right corner: “Row 1 of ??”)

by mutliple panels, within which you c

Return to the WMQ Main Menu (F3) and selects Enter/Strg again.

You may now change (alter) some attributes- but you should do so very carefullysure you know what you are doing. An uncritical setting is the “Description” that appears in the first result screen- you may add additionHit Enter/Strg to make your changes effective.

9.

Choose action 1 (Display) again, place the cursor in the object type field (which need not be cleared), and press F4 (Prompt) to get a list of valid Object Types. - There are thr

11. From the first list, select 1 (Queue) and press Enter/Strg. - be sure the Name field is still set to ‘*’ - press Enter/Strg again to run the inquiry to display all queues. - ho

ed in the system initialization input members.

Define Queues using the WMQ ISPF panels First AL.QUEUE in

rder to avoid that queues which are defined like this, do not stress the queue manager and e system environment too much.

f he

cription, such as “Team#$ local queue default settings”

essages to be hosted by that queue to 1000.

es arrived on the queue.

bytes.

AB2.ALIASP, that

17. be used for GETs but

18. What about its maximum message length and its current depth?

_____________________________________________________ At last,

Note: This is the set of queues that have been created as system objects by the commands contain

, you are going to change some attributes of SYSTEM.DEFAULT.LOCoth

12. Start with DISPLAYing all the queues whose names start with the characters SYSTEM.DEFAULT

13. Using the Alter option in the WMQ ISPF panels, change the following characteristics othe queue named SYSTEM.DEFAULT.LOCAL.QUEUE- use F8/F7 to scroll through tpanels and press Enter (Strg) only when you completed all of the changes:

a. Provide a des

b. Change the Storage Class to be used to WILDFIRE

c. Set the maximum number of m

d. Permit shared read (GET) access and specify shared access as the default for input

e. Reading messages from this queue is to occur in the sequence the messag

f. Messages written to this queue shall not be larger than 9,999

14. Now DEFINE a local queue LIKE the modified “template” from before (SYSTEM.DEFAULT.LOCAL.QUEUE). Name the new queue LAB2.Q1.

15. Display the attributes of queue LAB2.Q1 and answer the following questions

a. Which Storage Group will host this queue?

_____________________________

b. What is the Maximum queue depth?

_____________________________

You have already learned about alias queues. You will now create two ALIAS queue definitions that refer to LAB2.Q1 as their target queue, one that allows for GET requests and disallows PUTs:

16. Start with displaying all existing Alias Queues (it won’t be thus many ..), and refer to the SYSTEM.DEFAULT* object to create your first alias queue, named Lallows for PUT requests, but disallows GETs.

Define a second alias queue, named LAB2.ALIASG, that maynot for PUTs.

M.DEFAULT.LOCAL.QUEUE. Name the new

d uctory notes for this section, on page 14.

function and the way it is invoked through variable instructor(s) if you don’t know.

20. Switch to the DSList screen and locate member JCLPUT in your working library,

21. o (2) global change commands to make the JCL executable.:

22. 23. stem number you

24. When hese chang PARM string correct settings to write (

25. 100 (3 er) persistent th parameter) messages, 6. each made up of 1,024 (5th parameter) “X” characters (4th parameter),

st

ou have to use the split new ) in order to check its output.

29. Don’t n error is is is a de one! - Refe ix A. API completion and reas n codes section of the WebSphere MQ fo es and Codes manual provided as a PDF file on your desktop to look u shown.- Can ine, from the output listing and the reason code shown, the error cause? - Discuss with your team partner before you continue; the solution is provided below.

30. To make the program work, i.e. to make your LAB2.Q1 queue usable, you have to

local

t

xisting

31.

19. DEFINE a local queue LIKE SYSTEqueue LAB2.Q1.

______________________________________________________

______________________________________________________

Put and get messages to and from queues using simple batch programs This part of the exercise can be completed best with a 3-screen-configuration, as describeby the introdWe assume that the sample programparameters has been explained before- feel free to ask the

TEAM#$.MQM.CNTL.

You have to run tw

change the ‘#$’ string to your team ID change the (remaining) occurences of the single ‘#’ character to the syare working with (SYS9)

you performed t es, the will reflect theMQPUT):

rd paramet (6227. to the queue named “LAB2.Q1” (2nd parameter) through your queue manager MQ#$ (1

parameter)

28. Submit the job and swap to the SDSF screen (maybe yfunction first to create it

be worried, if a indicated- th signed r to the Append or z/OS Messagp the error code you determ

define the Storage Class referenced by the queue definition. Remember, step b adviced you to change the storage class name of the default queue definition, and your self-defined queues adopted this setting.

- Switch (swap) to the WMQ panels screen, and DEFINE a new storage class objecnamed WILDFIRE, and associate it with page set number 2. - Note that you always start with a Display operation, then select one of the eobjects as a template to create a new one of the same type.

Swap back to the screen with the JCLPUT member and submit the job again.

33. Optional step at this point:

e for each of the other queues created

each with 512 bytes in length,

T prediction, together with the real results that you determine from SDSF after the

job executions.

y appear.

32. Check for the job output in SDSF: - we expect that the job now runs with Return Code (RC)=00 - the application program protocol at the bottom of the listing indicates what WMQ activities have been performed.

- Are you able to determine from the WMQ panels that the LAB2.Q1 queue now has 100 messages placed on it?

34. Submit the JCLPUT job another three times, oncbefore, as shown by the table below, after appropriately varying the PARM string, to write: - 33 persistent messages, - - continue to use the “X” as the padding character.

ry to discuss and predict what will happen at each of the attempts, and write down your

- Use the WebSphere MQ for z/OS Messages and Codes manual to determine the meaning of any non-zero return codes that ma

- Can you explain why one of the 3 attempts to write messages fails?

Queue Name Prediction Result LAB2.ALIASP LAB2.ALIASG LAB2.Q2

35. ent depth (number of messages) for

make a prediction, if you like.

Find the most suitable way to determine the curreach of your LAB2.* queues and note the results in the table below. - You may again dare to - Anything surprising?

Queue Name Prediction Result LAB2.Q1 LAB2.ALIASP LAB2.ALIASG LAB2.Q2

2 Basic WMQ Administration Using the WMQ Explorer Tool

on inistrate z/OS Queue Managers.

Sco o the E steps co ager from the powerful Explorer GUI.

2.

Since Version 6 of WebSphere MQ, the Eclipse-based WMQ Explorer Tool that runsWindows and Linux, can also beused to fully adm

Of course, a network connection must be active between the workstation that hosts the Tool and the z/OS Queue Manager(s) to perform the remote management.

o the first step of this part will be, to provide the prerequisites for this network nnection to work, then you have to “introduce” the z/OS Queue Manager t

xplorer Tool by its name and connection specifications, and if you perform theserrectly, you will be able to manage and control your mainframe Queue Man

Kommentar: OK- messages written

Kommentar: MQOPEN fails with RC=2053 (Put inhibited). No messages can be written.

Kommentar: OK- messages written

ion

ner that enables inboun

36. D is done thSt D

Amongst others, the command response will show these two lines that indicate that no listener process is running (shown for MQ14):

CSQX848I +MQ14 CSQXRDQM TCP/IP listener INDISP=QMGR not started

Start the Queue Manager’s TCP/IP listener to enable inbound communicat

The Channel Initiator address space, which is the communications component of WMQ for z/OS has been automatically started with your Queue Manager. The liste

d communications has to be started separately, and this didn’t happen yet.

isplay the status of your Queue Manager’s communication component, whichrough the DISPLAY CHINIT MQSC command. art with the Display option (1.), with the Object Type set to SYSTEM , and select “1.istributed Queueing” in the subsequent panel.

CSQX849I +MQ14 CSQXRDQM LU 6.2 listener INDISP=QMGR not started

37. The MQSC command to start the TCP/IP listener is (with all default settings in effect):

START LISTENER PORT(<port-number<) Equivalent to the DISPLAY CHINIT command before, there are multiple ways to issue the command (the 3rd one is, from the SDSF command line, as z/OS command).

The port number to use is 140#$, where ‘#$’ is to be replaced by your team ID, so ‘14013’ for MQ13, ‘14014’ for MQ14, ‘14023’ for MQ23 and so on.

To issue the command via the WMQ ISPF panels, - start with Option 6.Start, while the Object Type is set to SYSTEM; - in the following panel enter “2.” as the Function type for Channel listener, which activates just the bottom section of the screen; - enter a “T” into the Transport Type field and the 140#$ port number into the Port Number (TCP/IP) field, - then press Enter (Strg). The CSQ9022I +MQ14 CSQXCRPS ' START LISTENER' NORMAL COMPLETION message should appear.

38. Repeat step 36 to display the CHINIT status. One line within the response should be changed now, looking like this:

CSQX846I +MQ14 CSQXRDQM TCP/IP listener INDISP=QMGR started, for port 14014 address * CSQX849I +MQ14 CSQXRDQM LU 6.2 listener INDISP=QMGR not started

39. Display the SRVCONN channel types defined to your Queue Manager (although this hasn’t been covered yet by the lectures), using the Display function with the Object Type set to SVRCONN and the Name set to ‘*’.

You will see three (3) entries, the first of which wil be used to support the connection of the WMQ Explorer Tool:

SYSTEM.ADMIN.SVRCONN SVRCONN QMGR MQ14 INACTIVE SYSTEM.DEF.SVRCONN SVRCONN QMGR MQ14 INACTIVE WAS.JMS.SVRCONN SVRCONN QMGR MQ14 INACTIVE

number, return to your TSO session and edit member CSQINPX of your working library,

column 1, thus activating this command line; g with the real port number (140#$) ;

40. To automate the start-up of the TCP/IP listener with reference to the correct port

TEAM#$.MQM.CNTL, - locate the line that contains the START LISTENER command; - remove the asterix (“outcomment”) in- replace the ++port-number++ strin- save the member (F3). Note that this member is referenced by the CSQINPX DD name of the MQ#$CHIN started task procedure, so its contents take effect whenever the Channel Initiator address space is (re-)started.

Start the WebSphere MQ Explorer and configure your z/OS Queue Manager

41. On your workstation desktop, start the WebSphere MQ Explorer, either from the work-station’s Start Menu or from the appropriate desktop icon and accept the default Workspace location offered. If the Welcome view shows up, close it.

42. In the navigator panel on the left-hand side, select right click on Queue Managers Show/Hide Queue Managers, then hit the Add-Button in the upper half of the screen to include a new queue manager.

43. During the subsequent Add Queue Manager dialog steps, enter the specifications that identify your Queue Manager on z/OS:

ter - host name or IP address: 192.168.7.90 - port number: 140#$ (where #$ is your team ID)

DMIN.SVRCONN (set by default) offered.

44. agers d.

Queue Manager shows up in the navigator list and you can expand e section to access the various types of resources.

a. 1st panel: the Queue Manager name: MQ#$, and keep the “connect directly” option checked, then click Next

b. 2nd panel: keep the “Specify the connection details” option checked, and en

- Server-connection channel: SYSTEM.A- let the auto-refresh settings default to the values

Press Finish and complete the configuration and connect to the Queue Manager.

When an entry for your z/OS Queue Manager appears in the Shown Queue Mantable with the symbol of active system, your connection has been establisheKlick Close to return to the Explorer base perspective. The newly definedth

Perf ing the WMQ Explorer

45. Click on the Queues folder in the navigator view. The content view to the right of the

queues you defined yourself before and a queue named

orm some queue administration functions us

Explorer screen will fill with the list of existing queues. - If the list includes the SYSTEM.* queues, click the Show System Objects icon (see the cursor position in the following screenshot) to exclude them. Afterwards, the list only contains the LAB2.*WAS.BROKER.*** which is a system queue to support the broker.

within the Queues display result to see the column with the current number of ages per queue.

the numbers displayed match with the ones determined at step 35- they really

46. Shift right mess- Doshould!

- right-click on the Queues folder in the navigator pane, then select New Local

, and as we accept the SYSTEM.

s that

48. hich cannot

- Right-click the LAB2.Q1 queue entry in the list of queues and select (click) the Browse Messages option.

- A panel opens that shows you the formatted MQ message descriptor (MQMD) and the frist ?? bytes of the message data.

- What is the put application name shown?

47. To define another local queue named LAB2.Q3,

Queue;

- enter the name of the new queue, LAB2.Q3DEFAULT.LOCAL.QUEUE as the template, you could just hit Finish here; but you may also click Next, and browse the various sections of queue attributemay be tailored.

The WMQ Explorer offers an option to browse messages on a queue, wbe performed by the ISPF panels.

- What is the message type of the messages? - Why does the message data field show XXXXXXXXXXXXXX.... ?

- Double-clicking a single line opens a new pane with the full details of the particular message, including the full message data area.

also available with the ISPF panels, as it is an implementation of the CLEAR QLOCAL

the two clearing methods offered?

- Click Close to return to the normal Explorer view.

49. You can also clear messages from a queue, but only all at a time. The same function is

MQSC command.

- Right-click the LAB2.Q2 queue entry and select the Clear Messages option.

- Can you guess the difference between - At this point, either method may be checked when you hit the Clear button.

Optional section: Define a filter and a new scheme to easily identify queues with messages

Kommentar: TM#$PUT, which is the job name of the JCLPUT jobs

Kommentar: DATAGRAM- that’s the type the JCLPUT sample program uses

Kommentar: well, that’s the message contents, denoted as “padding character” by the JCLPUT sample program

Kommentar: it’s stated quite clearly; one uses a command, the other uses the MQGET interface to remove messages. The command option can only be used if the queue is not opened by another process.

This section does not produce any new WMQ objects or messages- so it is declared “optional”. But it will simplify the further activities by configuring the WMQ Explorer so you can easily display only queues that contain messages, and immediately see the columns with the number of messages. This is peformed by managing filters and schemes.

50. Inside the queue display contents screen from the previous exercise, click the down arrow at the right of the scheme name field, at the right-hand bottom of the MQ Explorer window, and select the Manage Schemes function.

51. Inside the Manage Schemes dialog, select Add and specify as a new Scheme name “My QLOCAL”.

52. On the left-hand selection, switch from the Distributed to the z/OS selection; and apply the following changes to the right-hand table:

a. remove the QSG disposition attribute (something with shared queues); b. move up the current queue depth attribute to the 3rd (third) position;

eld n 6

times ...)

c. move down the Definition type attribute to behind the Open output count fid. move up the Page Set ID field (which is at position 61 by default) to positio

(hint: there is an easier way than hitting “move up” 55 So far, the result should look like this:

You may perform some more re-arrangements if you53. like.

54. ng OK twice. newly defined scheme will immediately be applied to the current display of queues.

ing to apply another improvement!

wn-arrow on the right-hand side of

Finish selectiYour

Doesn’t it look already much better? We’re go

55. Open the Manage Filters dialog by clicking the docurrent filter name field, as shown here:

thin the next screen, select the all local queues default filter as a template and click Copy As... button below.

56. Withe

57. Specify as your new filter name: “Qs With Messages”, first hit OK, then hit the Edit button to tailor the newly created copy -now the Edit Filter input shows up.

58. Here, keep the first two selections as to the Queue name and the Queue type but add a third one by checking the box before the second AND as shown below and specify a clause to display only queues with a current queue depth greater than zero.

59. Moreover, associaoffered via another

te this filter with your “My QLOCAL” scheme just created- this is check box at the bottom of the active pane.

60. Click the OK button twice- and the empty queues will disappear from the Explorer contents view. Note that you may return to the previous display at any time by just selecting the Standard for Queues filter again.

2.3 Simulate application activity using a workstation GUI MQ tool

Within this section, you make use of a workstation tool named RFHUTIL that offers a graphical user interface to handle WMQ messages. Unlike the primitive JCLPUT batch program, it offers control of all MQI options when writing and reading messages, and you can edit the message text as you like.

Anyway, we will continue to use some TSO based utilities to access queues and messages.

Setting up the RFHUTIL workstation utility

Some background information regarding RFHUTIL:

ist development and test

Command line performance measurement utilities are also provided within this support pack. You can download this SupportPac for free from

RFHUTIL is offered for free as a so-called SupportPac to assactivities in the WMQ and WebSphere Message Broker area. Messages may be are stored as files, which are then read by the application and written to a WebSphere MQ queue, or vice versa. The program is GUI based.

-http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg24000637&loc=en_US&cs=utf8&lang=en.

For using this GUI, it is necessary to have WebSphere MQ Server or WebSphere MQ Cinstalled on your

lient workstation, where you want to use it. On your workstation WebSphere MQ

Client is already installed. MQ Client provides an interface for all MQ applications on the application machine (client machine) to establish a MQI Channel connection to the Host (WebSphere MQ Queue Manager/Queues)

61. To configure RFHUTIL to access your z/OS Queue Manager, open the c:\student\tools\rfhutil\startup_rfhutil.bat file for editing with right-click “edit”;

- replace the ‘#’ and ‘$’ placeholders according to the IP address and listener port used by your z/OS Queue Manager, as shown above for team 14, then save the file.

Note that we are using rfhutilc, which uses the WebSphere MQ Client environment to connect to the queue manager.

62. Start RFHUTIL by clicking the icon on your desktop for the file just edited and wait until the RFHUTIL GUI shows up (this may take a few moments, as it’s Java....)

63. You see the GUI:

Writing/browsing/reading messages with RFHUTIL The next step is to write a message on an existing local Queue to verify that RFHUTIL is correctly connected to your Queue Manager. You can check, if the message was put on the queue with WebSphere MQ Explorer.

me text that to write as a message to one of your previously defined queues.

, then save it and close the text

64. Create a Text (*.txt) file on your desktop (you may name it “message1.txt”) with so

65. Enter any text to the file, e.g. what is shown beloweditor.

66. In the RFHUTIL GUI, e the (one) existing entry you have h shows the connection con

environment variable b68.

67. activat from the Queue Manager Name selection bar, to whic trols for your z/OS Queue Manager specified as MQSERVER y your *.bat file; open/select the file using the “Open File”-Button;

a. enter the Queue LAB2.Q2, which you defined previously

- finally, hit the Write Q button (once or twice or ...), which will launch the MQ activity.

Successful (or failed) execution is reported within the large frame on the left bottomof the GUI panel.

side

69. Switch to the WMQ Explorer to verify that the message arrived on named queue.

70. If you performed the steps on filters and schemes, you can keep (and just refresh) your last view with the scheme and filter you created. Else choose the “all local queues” filter and have the system queues excluded.

- does LAB2.Q2 show a message count of 1 or more ?

71. Start browsing the first (or only) message on the LAB2.Q2 queue using the menu option “Browse messages…” when selecting the queue.

an see

ta/time when the message was put on queue

Who put the message on the queue

message data (the text you entered in the

essage browser.

72 essages have arrived on your queue and to perform other kinds of application accesses to your queues. Particularly, you may (destructively) read selected messages, thus removing them from the queue, which cannot be done from the WMQ Explorer. Check some RFHUTIL functions, as described here:

• The number of messages on the queue is indicated within the Queue depth frame.

• Clicking the Display Q button shows you some selected MQMD fields of the message on the queue as a list. Click Close to return.

You c

• The dathe

• Thetext file)

Feel free to examine all fields, displayed by the M

. You can also use RFHUTIL to check if m

The best way to look at (browse) the messages on the queue, is to click the Start Browse button on the Main pane: The contents (data) of the first message is shown in the Data pane.

• The Data panel offers a BrowseNext button by which you can step through the messages.

• You have to click End Browse button to finish browsing.

when you just

articular message, leaving the others

Two questions to discuss with your partner:

a. With >1 messages on the queue, which one will be removeduse the Read Q option of the Main panel?

b. Can you guess a way to read/remove a pon the queue? Can you make it?

Kommentar: while browsing, switch to the MQMD pane and use the Copy Msg to Correl Id function offered. End Browse and (in the Main pane) check the get by Correl Id option, then Read Q – that should do it!

3 Distributed Queueing

3.1 Defining Channels to Connect Queue Managers

r by use of the WMQ ISPF panels, or on plorer, or use a combinati

ions w some exceptions where the

ea of this exercise is that Queu wing the odd-num t

rite down for your partner system:

__

___________________ (192.168.7.90(140#$))

plorer navigator, chann r.

What this

xercise, you connect your z/O

exercise is about

eues and experience some special conditions that may ibuted queueing.

Within this e S Queue Manager with that of anotherteam, allowing the systems to communicate to each other. You will work with Remote Quoccur with distr

You may perform this part of the exercise eithethe WMQ Ex on of both. Appropriately, the instruct ill tell you what to do, but no longer how you have to do it (with authors think that you need some help).

The id e Managers are interconnected as pairs, follothe rule that each of bered teams connects to the system with the nex

ber, so: higher num- MQ13 connects to MQ14, - MQ15 connects to MQ16, and so on.

According to this rule, w

• Remote Queue Manager name: _________________ (MQ#$)

Remote IP address and port: ______________

Define a sender channel

1. Within the Ex el definitions are contained in the Advanced folde

2. Define a new sender channel, based on the default object, with the following characterictics mandatory to specify:

• Choose “<your QM name>.TO.<partner QM name> as the name of the channel. If team13 connects with team13, team13’s sender channel is named “MQ13.TO.MQ14”, and team14’s sender channels is named “MQ14.TO.MQ13”. • the transmission protocol is TCP/IP; • you have to specify the IP address of your partner system, with the port number used put in brackets as the Connection name; • point to you a queue with the name of the remote Queue Manager you connect to as the transmission queue- you will create this queue in a minute; • provide a description, if you like.

Define a transmission queue

3. Define a new local queue with the following special attributes:

a transmission

• use the name of the remote Queue Manager you like to connect to as the queue name; • be sure you specify its use asqueue appropriately; • refer to the REMOTE storage class;

• you may provide a description. o switch the filter to have the

r channel

4. Define a new receiver channel, based on the default object.

tner team used for their sender.

team has also progressed so far (else, you may either just wait

• in the WMQ Explorer, start with right-clicking the sender channel, then click the Ping option.

ion

• allow for a maximum message length of 100,000 bytes; • as a sender channel is going to be triggeredfrom this queue, triggering has to be activated and some particular triggering options have to be specified: - trigger type = first - initiation queue = SYSTEM.CHANNEL.INITQ – this is an existing system queue- trigger data = the name of the sender channel just defined;

Hint: If you are using the WMQ Explorer, you might have tnew queue displayed withinb the contents pane.

Define a receive

• The only thing you have to care for is, to be sure that you use the correct name- the one your par

Check the newly defined channel’s operability

73. Make sure your partner or advice them in some way- if they like ...); then use the PING CHANNEL function aginst your newly defined sender channel to check the connectivity. You may perform this both from the Explorer and the ISPF panels.

The pop-up panel will tell you about the success failure of the operator

Kommentar: USAGE(XMITQ)

• in ISPF, start with a display of your channels; - use action code “5=Manage” to invoke the Manage Menu for your sender channel; - use function code “2=Ping” to invoke the ping operation.

A message will inform about the success or failure of the operation.

74. Check the system log for traces of the ping operation performed.

In h to the syslog option of SDSF (=s;log - maybe you still have an SDSF screen active), and search for a sequence of three messages like this:

TSO, switc

+CSQX500I +MQ14 CSQXPING Channel MQ14.TO.MQ13 started +CSQX500I +MQ13 CSQXRESP Channel MQ14.TO.MQ13 started +CSQX501I +MQ13 CSQXRESP Channel MQ14.TO.MQ13 is no longer active

These three messages (with the appropriate channel name) indicate what the PING really is: a start-up of the channel followed by an immediate, but regular stop.

3.2 Putting Messages to a Remote Queue

75. Define a remote queue named TEAM??.Q1 that points to your partner team’s LAB2.Q1 loA

76. We text such as “Team 13 attempt to

on the remote queue-

- It’s still your queue manager that you access with the RFHUTIL program- another one will not work! - you have to direct RFHUTIL to the remote queue name you just defined! - The write (MQPUT) has been successful if RFHUTIL indicates “message sent”.

cal queue. gain, you may use the WMQ Explorer or ISPF to do this.

ithin the lab_files folder on your Desktop, create a text message file as in the previous exercise (or re-use that one) and edit an appropriatput a message on a local queue owned by team 14”

77. Start RFHUTIL, read the file contents and put the messagemaybe two or three times- be sure RFHUTIL indicates that the message(s) has/have been sent successfully. Notes:

Check if the messages have been transmitted to the partner system

- is the channel now running (it should be)?

79. ission queue (step 3.)

lves !

80.

78. Switch to the display of the channels, and check the status of your sender channel (youmay have to refresh the display).

If the channel is not running, - check the Triggering properties of your transm- call out for help if you don’t come along by yourse

Check the status of your running channel, which is worth to be done both with the WMQ Explorer and with the WMQ ISPF panels:

• In the WMQ Explorer, right-click the channel name, then select Status / Channel Status - the information of interest is the counter in the Messages column:

e expect that the number shown here is the number of messages you issued via RFHUTIL.

h MWQ ISPF, start again with Display Channels, then hit F11 for Status – the

- w

• Witstatus list of the currently active channels is displayed, and here as well, the Messages field shows the number of messages that successfully went over the channel since it was last started.

ur Queue Manager. You cannot determine what happened on the partner side, unless you directly access the

ask your partner team :-)

81. s it isn’t running and it doesn’t inidcate that messages have been transmitted,

there’s no use to look for the message on a local queue.

e em

Note that this is all you can confirm locally, ie. within yo

appropriate Queue Manager -or, in the case of our exercise,

Check the receiver channel’s status appropriately. As long a

82. If one or more messages have come in via your receiver channel, check your queuLAB2.Q1 as to the number of messages contained and browse at least one of thwith RFHUTIL.

3.3 Exercising on Some Special Distributed Queueing Conditions

Please note: Within this third part of the Distributed Queueing Lab, you may split roles between you and your partner team in the way that one acts as the sender, the other one as the receiver of messages. Therefore, activities are marked appropriately.

t a message on a remote queue without a remote queue definition in

fer to the message contents you used before, or create a

n Queue Name and refer to your partner team’s Remote Queue Manager Name field, but be sure to

ke

But you may as well continue to cover both rts- just be aware of what you are doing and agree with your partner team! Next, we like to pu

pa

place. This is supported by the MQI, and so it is by RFHUTIL. You may continue to redifferent one and load it via the RFHUTIL Open File function.

83. Sender side activity Specify LAB2.Q2 as the destinatioqueue manager in the RFHUTIL

ep the name of your queue manager as the one to connect to.

. Ac84 ceiver accounts for results

85 ts for results

tivity by Sender, ReAgain, launch the message (Write Q) two or three times.

- Does RFHUTIL indicate that the messages have been sent? - Check as before if the messages really have passed your sender channel. - Ask your partner team to confirm that the messages have arrived on their LAB2.Q2queue.

. Activity by Sender, Receiver accounWhat do you think happens when you specify a wrong queue name ? – Let’s try! Change LAB2.Q2 to LAB2.QX or whatever (non-existent) queue name you like; keep your partner QM name as the Remote Queue Manager Name, and hit the Write Q button twice.

- What does RFHUTIL “say”? - What does the channel status say? - Where are the messages? (a very difficult question at this time- just continue even if you can’t find an answer!)

86. Activity by Sender, Receiver accounts for results Within RFHUTIL, select the MQMD section and, near the right bottom of the pane, check the Persistent Msg “Yes” option to mark the messages written as “persistent”.

Kommentar: “message sent”- no error indication!

Kommentar: still running, all messages are sent

Kommentar: they have been discarded- as they were non-persistent

Return to the Main section, and hit the Write Q button another two times to send two more messages.

-

87. SIf d w

X500I +MQ14 CSQXRCTL C

Is there any difference in behavior compared to the step before?

ender side activity the status of your sender shows “Retrying” now, then go to TSO/SDSF;log anatch there for messages related to your sender channel.

This is what we expect to find:

+CSQ hannel MQ14.TO.MQ13 started +CSQX500I +MQ13 CSQXRESP Channel MQ14.TO.MQ13 started +CSQX565E +MQ13 CSQXRESP No dead-letter queue for MQ13, channel MQ1 4.TO.MQ13 +CSQX527E +MQ14 CSQXRCTL Unable to send message for channel MQ14.TO.MQ13 +CSQX036E +MQ13 CSQXRESP Unable to open LAB2.QXYZ, MQCC=2 MQRC=2085 +CSQ hannel MQ14.TO.MQ13 ended abnormally X599E +MQ13 CSQXRESP C +CSQX506E +MQ14 CSQXRCTL Message receipt confirmation not received for channel MQ14.TO.MQ13 +CSQX599E +MQ14 CSQXRCTL Channel MQ14.TO.MQ13 ended abnormally

At this may be required: place, some explanations

- on the receiving side, the destination queue proved to be not existent (RC=2085);

is case is to put the message(s) to the dead-letter queue,

ons

ue for the

of

88. RInT “S

- on the originator/sender side, everything was fine, as there was/is a transmission queue with the name of the destination queue manager via which the messages could be sent;

- normal behaviour in thbut there is non defined;

- so the receipt of the message is denied- and the channel closes; - the sending side retrys to start the channel, according to the retry opti

specified with the channel definition. - The corrective action is, to define and activate a dead-letter que

(destination) queue manager. - A ready-to-use dead letter queue definition including its activation for Queue

Managers on z/OS is provided by the installation, within member CSQ4INYGthe SCSQPROC library that can be activated by a pre-configured batch job.

eceiver side activity- but all teams should perform the tasks 88 through 93. TSO, open or switch to a DSList (editing) session, edit your working library EAM#$.MQM.CNTL, and start editing a new member named CSQ4INYG by typing(elect) CSQ4INYG” (without quotes) in the Command line, as shown below.

89. T hen type the copy command shown below in the command line and hit Enter (Strg).

File Edit Edit_Settings Menu Utilities Compiler ssssssssssssssssssssssssssssssssssssssssssssssssssssss EDIT TEAM14.MQM.CNTL(CSQ4INYG) - 01.00 Command ===> copy 'MQM.V700.SCSQPROC(CSQ4INYG)' ****** ***************************** Top of Data *****

90. Apply the following changes to the contents copied:

+’ to the .

nd uncomment (remove the ‘*’ characters from column 1) from the

SABLED ) entry.

ith SCR( ' MQ14, V7 QMgr on

ul and Mary' )

s ram that issues commands to a running Queue Manager, and apply the

ed therein:

the ‘#$’

.

The job output summary at the bottom of the listing must look like this:

*******************

• change all occurrences of ‘++qmgr+name of your Queue Manager (note where and how the QM name is used

• locate the line with the “ALTER QMGR”command, afollowing lines until the one with the AUTHOREV( DI

• You may specify a different description wthe DESCR attribute, maybe something like: DEz/OS owned by PaAdvice: Do not use quotes and apostrophes within the description string.

• Save and Exit with F3

91. Edit (select) the UTILCMD member of your TEAM#$.MQM.CNTL library, which invokea utitlity progfollowing changes to the JCL contain

• Apply the mandatory global change of and the ‘#’ character(s).

• In the CSQUCMD DD statement, change the member referenced as the command input to the one edited before, CSQ4INYG

92. Submit the job and switch (swap) to an SDSF;st screen to look at its output.

*********************************************** End of CSQ4INYG ***************************************************************** CSQU057I 4 commands read CSQU058I 4 commands issued and responses received, 0 failed CSQU143I 1 COMMAND statements attempted CSQU144I 1 COMMAND statements executed successfully CSQU148I CSQUTIL Utility completed, return code=0 ******************************** BOTTOM OF DATA *****************

Note that the job will run with RC=00 even is some of the commands have failed, so this summary is important to check.

93. Switch (swap) to the WMQ screen and account for your Queue Manager’s attributes (Action= 1 (List/Display), Object Type= QMGR).

, like

Queue Manager - 1

- we expect that the newly created attributes are visible on the first response panelthis:

Display a Press F8 to see further fields, or Enter to refresh details. M Queue manager name . . . . : MQ14 Description . . . . . . . . : MQ14, V7 QMgr on z/OS owned by P aul and Mary Default transmission queue : MQ14.DEFXMIT.QUEUE Dead-letter queue . . . . . : MQ14.DEAD.QUEUE Trigger interval . . . . . : 999999999 0 - 999999999 millisecon

- Can you also verify that the two queues specified herein do exist?

If you act as a sender of messages,

94. Sender side activity

- Make sure your partner team has completed tasks # 88 through 93.

- Check the Overall channel status of your sender channel using the WMQ Explorer.

nd (right-click / Start)

95. Check where the messages (which were destined for a non-existing queue) have gone. - We expect them to go to the newly defined dead-letter queue (MQ#$.DEAD.QUEUE) that now should also be visible on your “Qs With Messages” filter view, if you created that before.

96.

• Use the RFHUTIL Display Q function to on the DLQ (MQ#$.DEAD.QUEUE) and Start Browse.

of RFHUTIL for the

sure the “Include DLQ header” option is checked: - here you see the Reason (2085= unknown (=invalid) object (queue) name) why the message was placed on the DLQ and the name of the destination queue that was specified by the originator.

• Using RFHUTIL’s Move Q function (Main tab), you may move the messages from the DLQ to one of your self-defined local queues. When doing so in “real life”, you would make sure to have the “Remove the DLQ Header” option checked.

• If it’s running, continue with the next task.

• If it’s still in the Retry state, try to start it by ha- It should enter the running state now!

Receiver side activity

Receiver side activity- optional The dead-letter queue can be accessed as any other queue- it will be specially protected in a production system however.

access the messages

• Check the Data section message your partner team wrote.

• Switch to the DLQ Tab of RFHUTIL and be

97. Sender side activit t the same time) One last send messFrom the RFHUTIL Main section, - open a message text file of your choice, - and use LAB2.Q2 as the Queue Name; - and a phantasy name, such as Mr.Bean as the Remote Queue Manager name. - Be sure you always have your QM specified as the QMgr name to connect to (1st field)

y (but may be performed by both teams aage test:

hat do you think will happen when you try to write the message(s

iate the MQPUT by hitting the Write Q say, three times.

- surprised on what you see?

-W )?

98. Init

- Where have the messages gone?

- Hi messages. T you just produced.

99.

Find a way to clear all messages from your non-system queues. Thus, we have a clean environment when we start the next part of the exercise.

4 Fehler! Verweisquelle konnte nicht gefunden werden.33889333Distributed

nt: Use the Explorer to display the (non-system) queues that containhere is (at least) one that contains exactly the number of messages

Clean up your queues

Queueing314

Kommentar: Default Transmission queue

Kommentar: (nearly) no more non-persistent data pages are being used

Kommentar: we expect a RC=2192 PSID full condition after about 250 messages have been written

End of WMQ Lab Exercises