I am getting a 4407 error status when accessing a queue. The messages and codes manual indicates an I/O error occurred during processing or the queue upper limit has been reached. What else can cause this error and what can I do to diagnose and resolve the problem?
Check the IDMS joblog and IDMS log for any other error messages that may indicate what the problem is. See technical document TEC485482 which lists a deadlock situation as a possible reason. The 4407 error status can also occur when the SYSTEM.DDLDCRUN area becomes full.
To determine if the problem is that the queue area is full, you need to run a PRINT SPACE report on the area either in OCF or by running IDMSBCF in batch. The OCF/IDMSBCF command is:
PRINT SPACE FOR AREA SYSTEM.DDLDCRUN;
Look for the heading "Total Space Available (Percent)". If the percentage free is very low then this is the problem.
The easiest way to resolve the problem is to delete any expired queues. This can be done by running task code QUED online.
If this does not free up enough space you will need to delete unexpired queues. There are two ways to do this.
- Use QUED PROMPT to list unexpired queues and be prompted whether you want to delete them or not. If there are too many queues it will be too time consuming to use this method.
- Use QUED LIST to list all queues on the terminal and in the log. It will show the queue name and number of records in each queue. Scan the output for any large queues that can be deleted and use the command DCMT VARY QUEUE queue-name DELETE to delete that queue.
If no expired queues can be deleted then you will need to expand the size of the SYSTEM.DDLDCRUN area.