Additional steps when migrating from V1.2

If you intend to migrate from V1.2 to V5.3.1, we need to consider the following when you customize your new version, in addition to the tasks in the previous sections (you do not need to install and customize the intervening versions):

System parameter module

This might affect Tasks 16 and 17 in Customizing your queue managers.

The system parameters EXITLIM, EXITTCB, and WLMTIME, and channel initiator parameters TCPTYPE, LU62ARM, and LSTRTMR, were introduced in V2.1. Consider whether we need to use these parameters, and change your parameter modules accordingly.

Installation process

This might affect Tasks 1, 2, 3, and 11 in Customizing your queue managers.

There are several changes to the installation process, and some additional libraries. The two distributed queuing features for the non-CICS mover have been incorporated into the base product, and the CICS mover has been made an optional feature. The CICS bridge has also been incorporated into the base product.

These are described in the WebSphere MQ for z/OS Program Directory.

Automatic Restart Manager (ARM)

The z/OS Automatic Restart Manager (ARM) is now supported. This support coexists on the same z/OS image with earlier releases that do not support ARM. The queue managers and channel initiators in the earlier releases do not register with ARM and so can not be restarted automatically.

If you do not want to use ARM with your V5.3.1 queue managers and channel initiators, specify RESTART_ATTEMPTS(0) for the WebSphere MQ element in your ARM policy. Note that if you do not specify WebSphere MQ elements in your ARM policy, default ARM policies are used for WebSphere MQ.

z/OS ARM support is described in the WebSphere MQ for z/OS System Administration Guide

Clusters

This might affect Tasks 6 and 12 in Customizing your queue managers.

WebSphere MQ now supports clustering. Before you use clustering you must review all your applications to determine whether each one can operate in a clustering environment. You might have to modify your applications to remove or manage inter-message affinity. Applications that attempt to open nonexistent queues might experience delays, or might even successfully open a queue somewhere in the cluster.

You also need to create the system objects required for clustering. These are described in the WebSphere MQ for z/OS Concepts and Planning Guide.

There is a cluster workload user exit; if you use this we need to add a CSQXLIB DD statement to your queue manager started task procedure, xxxxMSTR, and ensure that you have access to the LE runtime library SCEERUN.

Cluster support is described in the WebSphere MQ Queue Manager Clusters manual.

Storage classes

This might affect Task 12 in Customizing your queue managers.

The supplied default for storage class SYSTEM (which was used by many of the SYSTEM queues) has been changed to page set 01, so that messages are not put on page set 00.

If you currently use the defaults supplied, this change will probably have no effect, even if you use the DEFINE REPLACE option for your storage class definitions in your initialization input data set. This is because some of the queues using that storage class (like the SYSTEM.CHANNEL.SYNCQ for example) have messages on them permanently. If you want to move the queues to another page set, follow the procedure given in the WebSphere MQ for z/OS System Administration Guide.

Initialization data sets

This might affect Task 12 in Customizing your queue managers.

The sample input initialization data sets supplied with WebSphere MQ have been reorganized and renamed.

Resource Recovery Services (RRS)

This might affect Task 18 in Customizing your queue managers.

We can migrate your existing batch/TSO WebSphere MQ applications to exploit RRS coordination with little or no application program change. If you link-edit your WebSphere MQ application with the CSQBRRSI adapter, MQCMIT and MQBACK synchronize your unit of work across WebSphere MQ and all other RRS-enabled resource managers. If you link-edit your WebSphere MQ application with the CSQBRSTB adapter, change MQCMIT and MQBACK to SRRCMIT and SRRBACK.

V5.3.1 continues to support the non-RRS managed batch adapter in addition to supporting the RRS managed adapter. Thus different versions of WebSphere MQ queue managers can coexist on the same z/OS image.

OpenEdition sockets

This might affect Task 17 in Customizing your queue managers.

OpenEdition sockets are now available for use as an alternative to IUCV. If you are using OS/390 V2.5 or later, and are using IBM TCP/IP for distributed queuing, IUCV is not available.You must set the TCPTYPE channel initiator parameter to OESOCKETS. Using OpenEdition sockets, you do not need to restart the channel initiator if TCP/IP has to be restarted.

Channel initiator security

This might affect Task 10 in Customizing your queue managers.

Channel initiator user ID checking has been changed and some facilities added. See User IDs used by the channel initiator for details, and review your channel definitions to ensure that you are getting the security control you want.

Channel initiator snap dumps

This might affect Task 7 in Customizing your queue managers.

The channel initiator can now record error information in a data set instead of taking a dump. Add the CSQSNAP DD statement to your channel initiator started task procedure to support this.

IMS language interface module

The IMS language interface module CSQ2LI00 is no longer supported. All IMS applications should use the IMS supplied DFSLI000 module.

Euro currency symbol

Support for the euro currency symbol has been added to WebSphere MQ. If modify your applications to use this symbol, ensure that they use one of the coded character sets that include it. These are described in the WebSphere MQ Application Programming Reference manual. If we need to change the coded character set used by your queue manager, use the CCSID parameter of the system parameter module. This is described in Using CSQ6SYSP.

Queue object size

The size of queue objects was increased for V5.2 to allow for the added cluster attributes. WebSphere MQ automatically updates each of these queue objects the first time that it is changed. This happens whether you are using clustering or not. However, due to the nature of space reclamation in WebSphere MQ, the space used on page set zero might increase dramatically until all these queue objects have been updated.

To avoid this, run a job similar to that in Figure 34 that changes all your queue objects, enabling WebSphere MQ to update them all at the same time. Ensure that no applications have any queues open when you run this job.

If you do not run a job like this, applications attempting to open queues might receive return code MQRC_OBJECT_IN_USE. This includes attempts by the channel initiator to open transmission queues.

Figure 34. Example job for migrating queue objects

//STEP1    EXEC  PGM=CSQUTIL,PARM='CSQ1'
//STEPLIB  DD    DISP=SHR,DSN=thlqual.SCSQANLE
//         DD    DISP=SHR,DSN=thlqual.SCSQAUTH
//OUTPUT1  DD    DISP=OLD,DSN=MY.COMMANDS(DEFS)
//SYSPRINT DD    SYSOUT=*
//SYSIN    DD    *
COMMAND DDNAME(CMDINP) MAKEDEF(OUTPUT1)
/*
//CMDINP   DD *
DISPLAY QUEUE(*) TYPE(QLOCAL) ALL
DISPLAY QUEUE(*) TYPE(QMODEL) ALL
DISPLAY QUEUE(*) TYPE(QALIAS) ALL
DISPLAY QUEUE(*) TYPE(QREMOTE) ALL
/*
//*   STEP2
//***********************************************************************
//* PERFORM A GLOBAL CHANGE ON THE OUTPUT DATA SET FROM STEP 1, THAT    *
//* IS: MY.COMMANDS(DEFS).  CHANGE 'NOREPLACE' TO 'REPLACE'             *
//* THE CHANGED MY.COMMANDS(DEFS) WILL BE THE INPUT FOR STEP3.          *
//***********************************************************************
//*
//STEP3    EXEC  PGM=CSQUTIL,PARM='CSQ1'
//STEPLIB  DD    DISP=SHR,DSN=thlqual.SCSQANLE
//         DD    DISP=SHR,DSN=thlqual.SCSQAUTH
//SYSPRINT DD    SYSOUT=*
//SYSIN    DD    *
COMMAND DDNAME(DEFINES)
/*
//***********************************************************************
//* THE DEFINE COMMAND FOR THE SYSTEM.COMMAND.INPUT QUEUE MIGHT FAIL,   *
//* BUT THIS DOES NOT MATTER. ALTERNATIVELY, REMOVE THE DEFINE FOR THAT *
//* QUEUE FROM THE OBJECT DATA SET FROM STEP 1.                         *
//***********************************************************************
//*
//DEFINES  DD DISP=SHR,DSN=MY.COMMANDS(DEFS)