IBM Support

Cannot End a Writer or the QSPL Subsystem

Troubleshooting


Problem

This document provides instructions for ending a writer that does not end after using the End Writer (ENDWTR) command.

Resolving The Problem

This document provides instructions for ending a writer that does not end after using the End Writer (ENDWTR) command. It also provides instructions for dealing with the QSPL subsystem that will not end after using the End Subsystem (ENDSBS) command.
 

Ending a Writer

Use the following steps, in this order, to try to end the writer:
  1. Use the End Writer (ENDWTR) command with OPTION(*IMMED) to attempt to end the writer immediately:
    ENDWTR WTR(writer-name) OPTION(*IMMED)
    The default for the OPTION parameter is *CNTRLD (controlled). Therefore, if you do not specify the *IMMED (immediately), the writer is not ended until the current spooled file has printed.
  2. Use the Work with System Status (WRKSYSSTS) and/or Work with Shared Storage Pools (WRKSHRPOOL) commands to make sure that enough resources have been allocated to the *SPOOL pool. Usually we recommend a minimum of 10 MB, plus an additional 1 MB for every active writer.
  3. Wait 10 minutes. If the writer still does not end, use the QSPENDWA (End Writer Abnormally) command to try and forcibly end the writer: 
    CALL QSPENDWA PARM(writer-name)
  4. If QSPENDWA did not end the writer, STOP. DO NOT attempt subsystem in an attempt to force the writer to end. This will hang the QSPL subsystem and all of the writers, because QSPL needs the writers to be ended before it will end, and writers cannot end unless QSPL is up. 
If QSPENDWA Did Not Work to End the Writer. . .

If you got this far and your writer is still up, the only permanent solution is to IPL the system to end the writer. But until you can do that you can use a simple workaround, and just recreate your printer DEVD  with a new name using the same settings as the one that is hung. You can even start the writer to the new printer and use the original OUTQ name so that your applications and users can continue as normal:
STRPRTWTR DEV(OLD) OUTQ(NEW)
 
If you have already tried ending the QSPL subsystem...
 
If you have already tried ending the QSPL subsystem, try the steps above to get the writer to end. If you are successful at getting the writer to end, you can then restart all of the writers by doing a STRSBS SBSD(QSPL). If you are not successful, an IPL may be necessary to recover, but you can try to copy the QSPL subsystem and use the duplicate subsystem until you can IPL.

Use the following steps to copy the existing QSPL subsystem and use its duplicate for your writers until you can IPL:
  1. Use the Create Duplicate Object (CRTDUPOBJ) command to copy the QSPL subsystem description to QSPL2:
    CRTDUPOBJ OBJ(QSPL) FROMLIB(QSYS) OBJTYPE(*SBSD) TOLIB(*FROMLIB)
             NEWOBJ(QSPL2)
  2. Use the Start Subsystem (STRSBS) command to start the QSPL2 subsystem:
    STRSBS SBSD(QSPL2)
  3. Verify that the writer jobs are starting successfully using either the Work with Active Jobs (WRKACTJOB) command:
    WRKACTJOB SBS(QSPL2)
    or the Work with Writers (WRKWTR) command:
    WRKWTR

[{"Type":"MASTER","Line of Business":{"code":"LOB68","label":"Power HW"},"Business Unit":{"code":"BU070","label":"IBM Infrastructure"},"Product":{"code":"SWG60","label":"IBM i"},"Platform":[{"code":"PF012","label":"IBM i"}],"Version":"7.1.0"}]

Historical Number

17151647

Document Information

Modified date:
10 April 2024

UID

nas8N1017971