[z/OS]

Undoing a change on z/OS

You need to have a process to backout a change if it the results are not as you expect.

What can go wrong?

If the new transmission queue is not what you expect:
  1. Check the CLCHNAME is as you expect
  2. Review the job log to check if the switch process has finished. If not, wait and check the new transmission queue of the channel later.

If you are using multiple cluster transmission queues, it is important that you design the transmission queues definitions explicitly and avoid complicated overlapping configuration. In this way, you can make sure that if there are problems, you can go back to the original queues and configuration.

If you encounter problems during the move to using a different transmission queue, you must resolve any problems before you can proceed with the change.

An existing change request must complete before a new change request can be made. For example, you:
  1. Define a new transmission queue with a maximum depth of one and there are 10 messages waiting to be sent.
  2. Change the transmission queue to specify the channel name in the CLCHNAME parameter.
  3. Stop and restart the channel. The attempt to move the messages fails and reports the problems.
  4. Change the CLCHNAME parameter on the transmission queue to be blank.
  5. Stop and restart the channel. The channel continues to try and complete the original request, so the channel continues to use the new transmission queue.
  6. Need to resolve the problems and restart the channel so the moving of messages completes successfully.

Next time the channel is restarted it picks up any changes, so if you had set CLCHNAME to blanks, the channel will not use the specified transmission queue.

In this example, changing the CLCHNAME on the transmission queue to blanks does not necessarily mean that the channel uses the SYSTEM.CLUSTER.TRANSMIT queue, as there might be other transmission queues whose CLCHNAME parameter match the channel name. For example, a generic name, or the queue manager attribute DEFCLXQ might be set to channel, so the channel uses a dynamic queue instead of the SYSTEM.CLUSTER.TRANSMIT queue.