Here is another technique to use only when standard practices won’t work. Let’s say you are performing a manual load in Q Replication (either InfoSphere Replication Server or DB2 Homogeneous Replication Feature). Ordinarily you would INSERT a LOADDONE into the IBMQREP_SIGNAL table. The INSERT into the Q Replication Control Table is logged and Q Capture will see it.
BUT, what if Q Capture is way behind? Various operational problems could cause this. The manual load has actually completed, but the WebSphere MQ spill queues are growing because Q Apply doesn’t know that. It might take hours for Q Capture to get to the point in the log where the LOADDONE is posted.
Here are the steps to bypass LOADDONE and initiate the draining of the spill queues by Q Apply:
- Stop Q Capture.
- Wait for the Receive queue to empty. The reason for this is that Q Capture sets an indicator in the message placed on the Send queue specifying that a subscription is still being manually loaded.
- Stop Q Apply.
- For each subscription where the LOAD has completed: change the STATE value in the IBMQREP_TARGETS table from ‘E’ to ‘F’ and change the STATE value in the IBMQREP_SUBS table from ‘L’ to ‘A’.
- Start Q Apply.
- Start Q Capture.
Thanks to Christian Zentgraf and Anupama Mahajan of IBM and my TFG colleague, Jim Herrmann, for developing this procedure.