 




<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Delete old spool files</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/</link>
	<description></description>
	<lastBuildDate>Sat, 18 May 2013 07:52:31 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
	<item>
		<title>By: itke</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61486</link>
		<dc:creator>itke</dc:creator>
		<pubDate>Fri, 27 Mar 2009 17:12:20 +0000</pubDate>
		<guid isPermaLink="false">#comment-61486</guid>
		<description><![CDATA[test]]></description>
		<content:encoded><![CDATA[<p>test</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: greenleeb</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61480</link>
		<dc:creator>greenleeb</dc:creator>
		<pubDate>Fri, 27 Mar 2009 16:52:23 +0000</pubDate>
		<guid isPermaLink="false">#comment-61480</guid>
		<description><![CDATA[This is a program I use to clean-up spools for a specific user after a period of days .  It is modified from a program available on http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp under Programming-&gt;APIs. Like most IBM examples, it&#039;s not terribly pretty to look at - but it works.

I modified it specifically to select by only the user and age of the spool but you can easily change it to select by outq, form type or user data.

15.00                PGM        PARM(&amp;LISTUSER &amp;DAYS)
   16.00
   17.00   /*é**********************************************************·*/
   18.00   /*¹DECLARATIVES                                              ·*/
   19.00   /*é**********************************************************·*/
   20.00                DCL &amp;LISTUSER   *CHAR 10
   21.00
   22.00                DCL &amp;FILE       *CHAR 10
   23.00                DCL &amp;JOBNAME    *CHAR 10
   24.00                DCL &amp;USER       *CHAR 10
   25.00                DCL &amp;JOBNUMBER  *CHAR  6
   26.00                DCL &amp;FILENR     *DEC   4
   27.00                DCL &amp;FILEDATE   *CHAR  6
   28.00                DCL &amp;DAYS     *DEC  3     /* No. days cvt&#039;d to num    */
   29.00                DCL &amp;DATENUM  *DEC  6     /* Date cvt&#039;d to num        */
   30.00                DCL &amp;NEWDATE  *DEC  6     /* Calculated date          */
   31.00                DCL &amp;RTNCODE  *CHAR 1     /* Req&#039;d for proc call      */
   32.00                DCL &amp;WRKDTE6  *CHAR   6   /* Work for date 6          */
   33.00                DCL &amp;dltorsave *CHAR   6
   34.00
   35.00                DCL &amp;MSGID      *CHAR  7
   36.00                DCL &amp;MSGDTALN   *DEC   (9 0)
   37.00                DCL &amp;MSGDTA     *CHAR 80
   38.00                DCL &amp;NO_ERROR   *CHAR  4  VALUE(X&#039;00000000&#039;)
   39.00
   40.00   /*¹Declares for QUSCRTUS - Create User Space */
   41.00
   42.00                DCL &amp;QCUS_NAME  *CHAR 20 +
   43.00                      VALUE(&#039;SPL_DATA  QTEMP     &#039;)
   44.00                DCL &amp;QCUS_EXATR *CHAR 10 +
   45.00                      VALUE(&#039;USRSPC    &#039;)
   46.00   /*¹Maximum number of SPLF the User Space will contain */
   47.00                DCL &amp;QCUS_SIZE  *CHAR  4 +
   48.00                      VALUE(X&#039;00010000&#039;)
   49.00                DCL &amp;QCUS_INIT  *CHAR  1  VALUE(X&#039;00&#039;)
   50.00                DCL &amp;QCUS_PUBA  *CHAR 10  +
   51.00                      VALUE(&#039;*ALL      &#039;)
   52.00                DCL &amp;QCUS_TEXT  *CHAR 50
   53.00                DCL &amp;QCUS_REPL  *CHAR 10  +
   54.00                      VALUE(&#039;*YES      &#039;)
   55.00                DCL &amp;QCUS_DOMN  *CHAR 10  +
   56.00                      VALUE(&#039;*DEFAULT  &#039;)
   57.00
   58.00   /*¹Declares for QUSLSPL - List Spooled Files */
   59.00
   60.00                DCL &amp;QLSF_NAME  *CHAR 20 +
   61.00                      VALUE(&#039;SPL_DATA  QTEMP     &#039;)
   62.00                DCL &amp;QLSF_FOMT  *CHAR  8 +
   63.00                      VALUE(&#039;SPLF0100&#039;)
   64.00                DCL &amp;QLSF_USER  *CHAR 10
   65.00                DCL &amp;QLSF_OUTQ  *CHAR 20
   66.00                DCL &amp;QLSF_FORM  *CHAR 10
   67.00                DCL &amp;QLSF_USRD  *CHAR 10
   68.00
   69.00   /*¹Declares for QUSRTVUS - Retrieve User Space */
   70.00
   71.00                DCL &amp;QRUS_NAME   *CHAR 20 +
   72.00                      VALUE(&#039;SPL_DATA  QTEMP     &#039;)
   73.00                DCL &amp;QRUS_STRT   *CHAR  4
   74.00                DCL &amp;QRUS_LENG   *CHAR  4
   75.00                DCL &amp;QRUS_HEAD   *CHAR 16
   76.00                DCL &amp;QRUS_LINE   *CHAR 82
   77.00                DCL &amp;INT_OFFSET  *DEC (9 0)
   78.00                DCL &amp;INT_NUMBER  *DEC (9 0)
   79.00                DCL &amp;INT_SIZE    *DEC (9 0)
   80.00                DCL        &amp;INT_POSIT   *DEC (9 0)
   81.00
   82.00   /*¹Variables QUSRSPLA - Get Spooled File Attributes */
   83.00
   84.00                DCL &amp;QGSA_RCV    *CHAR 3772
   85.00                DCL &amp;QGSA_RCVLN  *CHAR  4 +
   86.00                      VALUE(X&#039;00000EBC&#039;)
   87.00                DCL &amp;QGSA_FOMT   *CHAR  8 +
   88.00                      VALUE(&#039;SPLA0200&#039;)
   89.00                DCL &amp;QGSA_JOB    *CHAR 26 +
   90.00                      VALUE(&#039;*INT                      &#039;)
   91.00                DCL &amp;QGSA_IJOB   *CHAR 16
   92.00                DCL &amp;QGSA_ISPL   *CHAR 16
   93.00                DCL &amp;QGSA_SPLF   *CHAR 10 +
   94.00                      VALUE(&#039;*INT      &#039;)
   95.00                DCL &amp;QGSA_SPLNB *CHAR   4 +
   96.00                      VALUE(X&#039;00000000&#039;)
   97.00
   98.00   /*¹Declares for QUSDLTUS - Delete User Space */
   99.00
  100.00                DCL &amp;QDUS_NAME *CHAR 20 +
  101.00                      VALUE(&#039;SPL_DATA  QTEMP     &#039;)
  102.00
  103.00   /*¹Declares for QERRCD - Error Code */
  104.00
  105.00                DCL &amp;QERRCD *CHAR 96
  106.00   /*é**********************************************************·*/
  107.00
  108.00   /*é**********************************************************·*/
  109.00                /*¹Get today&#039;s date.·*/
  110.00                RTVJOBA    DATE(&amp;WRKDTE6)
  111.00                /*¹Convert to decimal for the date calculation.·*/
  112.00                CHGVAR   &amp;DATENUM &amp;WRKDTE6
  113.00                /*¹Calculate n days ago today.·*/
  114.00                &lt;b&gt;CALLPRC    PRC(CALCDURATION) PARM((&#039;MDY&#039;) (&amp;DATENUM) +
  115.00                             (&#039;S&#039;) (&#039;D&#039;) (&amp;DAYS) (&#039;YMD&#039;) (&amp;NEWDATE) +
  116.00                             (&amp;RTNCODE))&lt;/b&gt;

                     The CALCDURATION procedure is not included here but it&#039;s just a bit of code to 
                     calculate the date n days +/- from the current date.  Any similar routine will do.

  117.00                CHGVAR &amp;WRKDTE6 &amp;NEWDATE
  118.00             
  119.00   /*¹Create Userspace */
  120.00
  121.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  122.00                             VALUE(X&#039;0000006000000000&#039;)
  123.00                CALL       PGM(QUSCRTUS) PARM(&amp;QCUS_NAME &amp;QCUS_EXATR +
  124.00                             &amp;QCUS_SIZE &amp;QCUS_INIT &amp;QCUS_PUBA +
  125.00                             &amp;QCUS_TEXT &amp;QCUS_REPL &amp;QERRCD &amp;QCUS_DOMN)
  126.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  127.00                             THEN(GOTO CMDLBL(ERROR_API))
  128.00
  129.00   /*¹List all Spooled Files for a given User */
  130.00
  131.00               /*¹These four parameters are pased to the API to·*/
  132.00               /*¹create a list of spooled files in the user   ·*/
  133.00               /*¹space:                                       ·*/
  134.00
  135.00               /*¹Spools for a specific user or *ALL.          ·*/
  136.00                CHGVAR     VAR(&amp;QLSF_USER) VALUE(&amp;LISTUSER)
  137.00               /*¹       for a specific outq or *ALL.          ·*/
  138.00                CHGVAR     VAR(&amp;QLSF_OUTQ) VALUE(&#039;*ALL&#039;)
  139.00               /*¹Spools of a particular form type or *ALL     ·*/
  140.00                CHGVAR     VAR(&amp;QLSF_FORM) VALUE(&#039;*ALL&#039;)
  141.00               /*¹Spools with specific USRDTA or *ALL          ·*/
  142.00                CHGVAR     VAR(&amp;QLSF_USRD) VALUE(&#039;*ALL&#039;)
  143.00
  144.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  145.00                             VALUE(X&#039;0000006000000000&#039;)
  146.00                CALL       PGM(QUSLSPL) PARM(&amp;QLSF_NAME &amp;QLSF_FOMT +
  147.00                             &amp;QLSF_USER &amp;QLSF_OUTQ &amp;QLSF_FORM +
  148.00                             &amp;QLSF_USRD &amp;QERRCD)
  149.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  150.00                             THEN(GOTO CMDLBL(ERROR_API))
  151.00
  152.00   /*¹Read Header data from Userspace */
  153.00
  154.00                CHGVAR     VAR(%BIN(&amp;QRUS_STRT)) VALUE(125)
  155.00                CHGVAR     VAR(%BIN(&amp;QRUS_LENG)) VALUE(16)
  156.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  157.00                             VALUE(X&#039;0000006000000000&#039;)
  158.00                CALL       PGM(QUSRTVUS) PARM(&amp;QRUS_NAME &amp;QRUS_STRT +
  159.00                             &amp;QRUS_LENG &amp;QRUS_HEAD &amp;QERRCD)
  160.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  161.00                             THEN(GOTO CMDLBL(ERROR_API))
  162.00
  163.00                CHGVAR     VAR(&amp;INT_OFFSET) VALUE(%BIN(&amp;QRUS_HEAD 1 4))
  164.00                CHGVAR     VAR(&amp;INT_NUMBER) VALUE(%BIN(&amp;QRUS_HEAD 9 4))
  165.00                CHGVAR     VAR(&amp;INT_SIZE) VALUE(%BIN(&amp;QRUS_HEAD 13 4))
  166.00
  167.00   /*¹Loop through the Userspace */
  168.00
  169.00                CHGVAR     VAR(&amp;INT_POSIT) VALUE(0)
  170.00    LOOP_SPACE: CHGVAR     VAR(&amp;INT_POSIT) VALUE(&amp;INT_POSIT + 1)
  171.00                IF         COND(&amp;INT_POSIT *GT &amp;INT_NUMBER) THEN(GOTO +
  172.00                             CMDLBL(END_SPACE))
  173.00
  174.00   /*¹Read next Userspace detail line */
  175.00
  176.00                CHGVAR     VAR(%BIN(&amp;QRUS_STRT)) VALUE(&amp;INT_OFFSET + +
  177.00                             ((&amp;INT_POSIT - 1) * &amp;INT_SIZE) + 1)
  178.00                CHGVAR     VAR(%BIN(&amp;QRUS_LENG)) VALUE(82)
  179.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  180.00                             VALUE(X&#039;0000006000000000&#039;)
  181.00                CALL       PGM(QUSRTVUS) PARM(&amp;QRUS_NAME &amp;QRUS_STRT +
  182.00                             &amp;QRUS_LENG &amp;QRUS_LINE &amp;QERRCD)
  183.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  184.00                             THEN(GOTO CMDLBL(ERROR_API))
  185.00
  186.00   /*¹Get Spooled File Attributes */
  187.00
  188.00                CHGVAR     VAR(&amp;QGSA_IJOB) VALUE(%SST(&amp;QRUS_LINE 51 16))
  189.00                CHGVAR     VAR(&amp;QGSA_ISPL) VALUE(%SST(&amp;QRUS_LINE 67 16))
  190.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  191.00                             VALUE(X&#039;0000006000000000&#039;)
  192.00                CALL       PGM(QUSRSPLA) PARM(&amp;QGSA_RCV &amp;QGSA_RCVLN +
  193.00                             &amp;QGSA_FOMT &amp;QGSA_JOB &amp;QGSA_IJOB +
  194.00                             &amp;QGSA_ISPL &amp;QGSA_SPLF &amp;QGSA_SPLNB &amp;QERRCD)
  195.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  196.00                             THEN(GOTO CMDLBL(ERROR_API))
  197.00
  198.00                CHGVAR     VAR(&amp;JOBNAME)   VALUE(%SST(&amp;QGSA_RCV 49 10))
  199.00                CHGVAR     VAR(&amp;FILE)      VALUE(%SST(&amp;QGSA_RCV 75 10))
  200.00                CHGVAR     VAR(&amp;USER)      VALUE(%SST(&amp;QGSA_RCV 59 10))
  201.00                CHGVAR     VAR(&amp;JOBNUMBER) VALUE(%SST(&amp;QGSA_RCV 69 10))
  202.00                CHGVAR     VAR(&amp;FILENR)     VALUE(%BIN(&amp;QGSA_RCV 85 4))
  203.00                CHGVAR     VAR(&amp;FILEDATE)   VALUE(%SST(&amp;QGSA_RCV 212 6))
  204.00
  205.00                If (&amp;filedate *LE &amp;WRKDTE6) do
  206.00                chgvar &amp;dltorsave &#039;Delete&#039;
  207.00                DLTSPLF    FILE(&amp;FILE) JOB(&amp;JOBNUMBER/&amp;USER/&amp;JOBNAME) +
  208.00                             SPLNBR(&amp;FILENR)
  209.00                EndDo
  210.00                Else do
  211.00                chgvar &amp;dltorsave &#039;Keep&#039;
  212.00                EndDo
  213.00
  214.00                SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +
  215.00                  MSGDTA(&amp;FILE &#124;&gt; &#039;JOB:&#039;&#124;&#124;&amp;JOBNUMBER &#124;&#124; &#039;/&#039; &#124;&#124; +
  216.00                  &amp;USER &#124;&lt; &#039;/&#039; &#124;&#124; &amp;JOBNAME &#124;&gt; &#039;DATE:&#039;&#124;&#124;&amp;FILEDATE +
  217.00                  &#124;&gt; &amp;dltorsave)
  218.00
  219.00   /* Read next Spooled File from User Space */
  220.00
  221.00                GOTO       CMDLBL(LOOP_SPACE)
  222.00
  223.00   /* Delete Userspace  */
  224.00
  225.00    END_SPACE:  CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +
  226.00                             VALUE(X&#039;0000006000000000&#039;)
  227.00                CALL       PGM(QUSDLTUS) PARM(&amp;QDUS_NAME &amp;QERRCD)
  228.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +
  229.00                             THEN(GOTO CMDLBL(ERROR_API))
  230.00   /* JUMP */
  231.00
  232.00                GOTO       CMDLBL(END)
  233.00
  234.00   /* API-Error */
  235.00
  236.00    ERROR_API:  CHGVAR     VAR(&amp;MSGID) VALUE(%SST(&amp;QERRCD 9 7))
  237.00                CHGVAR     VAR(&amp;MSGDTALN) VALUE(%BIN(&amp;QERRCD 5 4))
  238.00                CHGVAR     VAR(&amp;MSGDTALN) VALUE(&amp;MSGDTALN - 16)
  239.00                CHGVAR     VAR(&amp;MSGDTA) VALUE(%SST(&amp;QERRCD 17 &amp;MSGDTALN))
  240.00                SNDPGMMSG  MSGID(&amp;MSGID) MSGF(QCPFMSG) MSGDTA(&amp;MSGDTA) +
  241.00                             MSGTYPE(*DIAG)
  242.00
  243.00   /* Error */
  244.00
  245.00    ERROR:      SNDPGMMSG  MSGID(CPF9899) MSGF(QCPFMSG) MSGTYPE(*ESCAPE)
  246.00
  247.00    END:

I run this program in a scheduled job each day.   

I also noticed today another API example at  http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp under Programming-&gt;APIs-&gt;Examples-&gt;Deleting Old Spooled Files.  It&#039;s in RPG instead of CL and might be clearer but I didn&#039;t look at it too closely.

Good luck.]]></description>
		<content:encoded><![CDATA[<p>This is a program I use to clean-up spools for a specific user after a period of days .  It is modified from a program available on <a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp" rel="nofollow">http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp</a> under Programming-&gt;APIs. Like most IBM examples, it&#8217;s not terribly pretty to look at &#8211; but it works.</p>
<p>I modified it specifically to select by only the user and age of the spool but you can easily change it to select by outq, form type or user data.</p>
<p>15.00                PGM        PARM(&amp;LISTUSER &amp;DAYS)<br />
   16.00<br />
   17.00   /*é**********************************************************·*/<br />
   18.00   /*¹DECLARATIVES                                              ·*/<br />
   19.00   /*é**********************************************************·*/<br />
   20.00                DCL &amp;LISTUSER   *CHAR 10<br />
   21.00<br />
   22.00                DCL &amp;FILE       *CHAR 10<br />
   23.00                DCL &amp;JOBNAME    *CHAR 10<br />
   24.00                DCL &amp;USER       *CHAR 10<br />
   25.00                DCL &amp;JOBNUMBER  *CHAR  6<br />
   26.00                DCL &amp;FILENR     *DEC   4<br />
   27.00                DCL &amp;FILEDATE   *CHAR  6<br />
   28.00                DCL &amp;DAYS     *DEC  3     /* No. days cvt&#8217;d to num    */<br />
   29.00                DCL &amp;DATENUM  *DEC  6     /* Date cvt&#8217;d to num        */<br />
   30.00                DCL &amp;NEWDATE  *DEC  6     /* Calculated date          */<br />
   31.00                DCL &amp;RTNCODE  *CHAR 1     /* Req&#8217;d for proc call      */<br />
   32.00                DCL &amp;WRKDTE6  *CHAR   6   /* Work for date 6          */<br />
   33.00                DCL &amp;dltorsave *CHAR   6<br />
   34.00<br />
   35.00                DCL &amp;MSGID      *CHAR  7<br />
   36.00                DCL &amp;MSGDTALN   *DEC   (9 0)<br />
   37.00                DCL &amp;MSGDTA     *CHAR 80<br />
   38.00                DCL &amp;NO_ERROR   *CHAR  4  VALUE(X&#8217;00000000&#8242;)<br />
   39.00<br />
   40.00   /*¹Declares for QUSCRTUS &#8211; Create User Space */<br />
   41.00<br />
   42.00                DCL &amp;QCUS_NAME  *CHAR 20 +<br />
   43.00                      VALUE(&#8216;SPL_DATA  QTEMP     &#8216;)<br />
   44.00                DCL &amp;QCUS_EXATR *CHAR 10 +<br />
   45.00                      VALUE(&#8216;USRSPC    &#8216;)<br />
   46.00   /*¹Maximum number of SPLF the User Space will contain */<br />
   47.00                DCL &amp;QCUS_SIZE  *CHAR  4 +<br />
   48.00                      VALUE(X&#8217;00010000&#8242;)<br />
   49.00                DCL &amp;QCUS_INIT  *CHAR  1  VALUE(X&#8217;00&#8242;)<br />
   50.00                DCL &amp;QCUS_PUBA  *CHAR 10  +<br />
   51.00                      VALUE(&#8216;*ALL      &#8216;)<br />
   52.00                DCL &amp;QCUS_TEXT  *CHAR 50<br />
   53.00                DCL &amp;QCUS_REPL  *CHAR 10  +<br />
   54.00                      VALUE(&#8216;*YES      &#8216;)<br />
   55.00                DCL &amp;QCUS_DOMN  *CHAR 10  +<br />
   56.00                      VALUE(&#8216;*DEFAULT  &#8216;)<br />
   57.00<br />
   58.00   /*¹Declares for QUSLSPL &#8211; List Spooled Files */<br />
   59.00<br />
   60.00                DCL &amp;QLSF_NAME  *CHAR 20 +<br />
   61.00                      VALUE(&#8216;SPL_DATA  QTEMP     &#8216;)<br />
   62.00                DCL &amp;QLSF_FOMT  *CHAR  8 +<br />
   63.00                      VALUE(&#8216;SPLF0100&#8242;)<br />
   64.00                DCL &amp;QLSF_USER  *CHAR 10<br />
   65.00                DCL &amp;QLSF_OUTQ  *CHAR 20<br />
   66.00                DCL &amp;QLSF_FORM  *CHAR 10<br />
   67.00                DCL &amp;QLSF_USRD  *CHAR 10<br />
   68.00<br />
   69.00   /*¹Declares for QUSRTVUS &#8211; Retrieve User Space */<br />
   70.00<br />
   71.00                DCL &amp;QRUS_NAME   *CHAR 20 +<br />
   72.00                      VALUE(&#8216;SPL_DATA  QTEMP     &#8216;)<br />
   73.00                DCL &amp;QRUS_STRT   *CHAR  4<br />
   74.00                DCL &amp;QRUS_LENG   *CHAR  4<br />
   75.00                DCL &amp;QRUS_HEAD   *CHAR 16<br />
   76.00                DCL &amp;QRUS_LINE   *CHAR 82<br />
   77.00                DCL &amp;INT_OFFSET  *DEC (9 0)<br />
   78.00                DCL &amp;INT_NUMBER  *DEC (9 0)<br />
   79.00                DCL &amp;INT_SIZE    *DEC (9 0)<br />
   80.00                DCL        &amp;INT_POSIT   *DEC (9 0)<br />
   81.00<br />
   82.00   /*¹Variables QUSRSPLA &#8211; Get Spooled File Attributes */<br />
   83.00<br />
   84.00                DCL &amp;QGSA_RCV    *CHAR 3772<br />
   85.00                DCL &amp;QGSA_RCVLN  *CHAR  4 +<br />
   86.00                      VALUE(X&#8217;00000EBC&#8217;)<br />
   87.00                DCL &amp;QGSA_FOMT   *CHAR  8 +<br />
   88.00                      VALUE(&#8216;SPLA0200&#8242;)<br />
   89.00                DCL &amp;QGSA_JOB    *CHAR 26 +<br />
   90.00                      VALUE(&#8216;*INT                      &#8216;)<br />
   91.00                DCL &amp;QGSA_IJOB   *CHAR 16<br />
   92.00                DCL &amp;QGSA_ISPL   *CHAR 16<br />
   93.00                DCL &amp;QGSA_SPLF   *CHAR 10 +<br />
   94.00                      VALUE(&#8216;*INT      &#8216;)<br />
   95.00                DCL &amp;QGSA_SPLNB *CHAR   4 +<br />
   96.00                      VALUE(X&#8217;00000000&#8242;)<br />
   97.00<br />
   98.00   /*¹Declares for QUSDLTUS &#8211; Delete User Space */<br />
   99.00<br />
  100.00                DCL &amp;QDUS_NAME *CHAR 20 +<br />
  101.00                      VALUE(&#8216;SPL_DATA  QTEMP     &#8216;)<br />
  102.00<br />
  103.00   /*¹Declares for QERRCD &#8211; Error Code */<br />
  104.00<br />
  105.00                DCL &amp;QERRCD *CHAR 96<br />
  106.00   /*é**********************************************************·*/<br />
  107.00<br />
  108.00   /*é**********************************************************·*/<br />
  109.00                /*¹Get today&#8217;s date.·*/<br />
  110.00                RTVJOBA    DATE(&amp;WRKDTE6)<br />
  111.00                /*¹Convert to decimal for the date calculation.·*/<br />
  112.00                CHGVAR   &amp;DATENUM &amp;WRKDTE6<br />
  113.00                /*¹Calculate n days ago today.·*/<br />
  114.00                <b>CALLPRC    PRC(CALCDURATION) PARM((&#8216;MDY&#8217;) (&amp;DATENUM) +<br />
  115.00                             (&#8216;S&#8217;) (&#8216;D&#8217;) (&amp;DAYS) (&#8216;YMD&#8217;) (&amp;NEWDATE) +<br />
  116.00                             (&amp;RTNCODE))</b></p>
<p>                     The CALCDURATION procedure is not included here but it&#8217;s just a bit of code to<br />
                     calculate the date n days +/- from the current date.  Any similar routine will do.</p>
<p>  117.00                CHGVAR &amp;WRKDTE6 &amp;NEWDATE<br />
  118.00<br />
  119.00   /*¹Create Userspace */<br />
  120.00<br />
  121.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  122.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  123.00                CALL       PGM(QUSCRTUS) PARM(&amp;QCUS_NAME &amp;QCUS_EXATR +<br />
  124.00                             &amp;QCUS_SIZE &amp;QCUS_INIT &amp;QCUS_PUBA +<br />
  125.00                             &amp;QCUS_TEXT &amp;QCUS_REPL &amp;QERRCD &amp;QCUS_DOMN)<br />
  126.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  127.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  128.00<br />
  129.00   /*¹List all Spooled Files for a given User */<br />
  130.00<br />
  131.00               /*¹These four parameters are pased to the API to·*/<br />
  132.00               /*¹create a list of spooled files in the user   ·*/<br />
  133.00               /*¹space:                                       ·*/<br />
  134.00<br />
  135.00               /*¹Spools for a specific user or *ALL.          ·*/<br />
  136.00                CHGVAR     VAR(&amp;QLSF_USER) VALUE(&amp;LISTUSER)<br />
  137.00               /*¹       for a specific outq or *ALL.          ·*/<br />
  138.00                CHGVAR     VAR(&amp;QLSF_OUTQ) VALUE(&#8216;*ALL&#8217;)<br />
  139.00               /*¹Spools of a particular form type or *ALL     ·*/<br />
  140.00                CHGVAR     VAR(&amp;QLSF_FORM) VALUE(&#8216;*ALL&#8217;)<br />
  141.00               /*¹Spools with specific USRDTA or *ALL          ·*/<br />
  142.00                CHGVAR     VAR(&amp;QLSF_USRD) VALUE(&#8216;*ALL&#8217;)<br />
  143.00<br />
  144.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  145.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  146.00                CALL       PGM(QUSLSPL) PARM(&amp;QLSF_NAME &amp;QLSF_FOMT +<br />
  147.00                             &amp;QLSF_USER &amp;QLSF_OUTQ &amp;QLSF_FORM +<br />
  148.00                             &amp;QLSF_USRD &amp;QERRCD)<br />
  149.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  150.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  151.00<br />
  152.00   /*¹Read Header data from Userspace */<br />
  153.00<br />
  154.00                CHGVAR     VAR(%BIN(&amp;QRUS_STRT)) VALUE(125)<br />
  155.00                CHGVAR     VAR(%BIN(&amp;QRUS_LENG)) VALUE(16)<br />
  156.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  157.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  158.00                CALL       PGM(QUSRTVUS) PARM(&amp;QRUS_NAME &amp;QRUS_STRT +<br />
  159.00                             &amp;QRUS_LENG &amp;QRUS_HEAD &amp;QERRCD)<br />
  160.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  161.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  162.00<br />
  163.00                CHGVAR     VAR(&amp;INT_OFFSET) VALUE(%BIN(&amp;QRUS_HEAD 1 4))<br />
  164.00                CHGVAR     VAR(&amp;INT_NUMBER) VALUE(%BIN(&amp;QRUS_HEAD 9 4))<br />
  165.00                CHGVAR     VAR(&amp;INT_SIZE) VALUE(%BIN(&amp;QRUS_HEAD 13 4))<br />
  166.00<br />
  167.00   /*¹Loop through the Userspace */<br />
  168.00<br />
  169.00                CHGVAR     VAR(&amp;INT_POSIT) VALUE(0)<br />
  170.00    LOOP_SPACE: CHGVAR     VAR(&amp;INT_POSIT) VALUE(&amp;INT_POSIT + 1)<br />
  171.00                IF         COND(&amp;INT_POSIT *GT &amp;INT_NUMBER) THEN(GOTO +<br />
  172.00                             CMDLBL(END_SPACE))<br />
  173.00<br />
  174.00   /*¹Read next Userspace detail line */<br />
  175.00<br />
  176.00                CHGVAR     VAR(%BIN(&amp;QRUS_STRT)) VALUE(&amp;INT_OFFSET + +<br />
  177.00                             ((&amp;INT_POSIT &#8211; 1) * &amp;INT_SIZE) + 1)<br />
  178.00                CHGVAR     VAR(%BIN(&amp;QRUS_LENG)) VALUE(82)<br />
  179.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  180.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  181.00                CALL       PGM(QUSRTVUS) PARM(&amp;QRUS_NAME &amp;QRUS_STRT +<br />
  182.00                             &amp;QRUS_LENG &amp;QRUS_LINE &amp;QERRCD)<br />
  183.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  184.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  185.00<br />
  186.00   /*¹Get Spooled File Attributes */<br />
  187.00<br />
  188.00                CHGVAR     VAR(&amp;QGSA_IJOB) VALUE(%SST(&amp;QRUS_LINE 51 16))<br />
  189.00                CHGVAR     VAR(&amp;QGSA_ISPL) VALUE(%SST(&amp;QRUS_LINE 67 16))<br />
  190.00                CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  191.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  192.00                CALL       PGM(QUSRSPLA) PARM(&amp;QGSA_RCV &amp;QGSA_RCVLN +<br />
  193.00                             &amp;QGSA_FOMT &amp;QGSA_JOB &amp;QGSA_IJOB +<br />
  194.00                             &amp;QGSA_ISPL &amp;QGSA_SPLF &amp;QGSA_SPLNB &amp;QERRCD)<br />
  195.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  196.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  197.00<br />
  198.00                CHGVAR     VAR(&amp;JOBNAME)   VALUE(%SST(&amp;QGSA_RCV 49 10))<br />
  199.00                CHGVAR     VAR(&amp;FILE)      VALUE(%SST(&amp;QGSA_RCV 75 10))<br />
  200.00                CHGVAR     VAR(&amp;USER)      VALUE(%SST(&amp;QGSA_RCV 59 10))<br />
  201.00                CHGVAR     VAR(&amp;JOBNUMBER) VALUE(%SST(&amp;QGSA_RCV 69 10))<br />
  202.00                CHGVAR     VAR(&amp;FILENR)     VALUE(%BIN(&amp;QGSA_RCV 85 4))<br />
  203.00                CHGVAR     VAR(&amp;FILEDATE)   VALUE(%SST(&amp;QGSA_RCV 212 6))<br />
  204.00<br />
  205.00                If (&amp;filedate *LE &amp;WRKDTE6) do<br />
  206.00                chgvar &amp;dltorsave &#8216;Delete&#8217;<br />
  207.00                DLTSPLF    FILE(&amp;FILE) JOB(&amp;JOBNUMBER/&amp;USER/&amp;JOBNAME) +<br />
  208.00                             SPLNBR(&amp;FILENR)<br />
  209.00                EndDo<br />
  210.00                Else do<br />
  211.00                chgvar &amp;dltorsave &#8216;Keep&#8217;<br />
  212.00                EndDo<br />
  213.00<br />
  214.00                SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) +<br />
  215.00                  MSGDTA(&amp;FILE |&gt; &#8216;JOB:&#8217;||&amp;JOBNUMBER || &#8216;/&#8217; || +<br />
  216.00                  &amp;USER |&lt; &#8216;/&#8217; || &amp;JOBNAME |&gt; &#8216;DATE:&#8217;||&amp;FILEDATE +<br />
  217.00                  |&gt; &amp;dltorsave)<br />
  218.00<br />
  219.00   /* Read next Spooled File from User Space */<br />
  220.00<br />
  221.00                GOTO       CMDLBL(LOOP_SPACE)<br />
  222.00<br />
  223.00   /* Delete Userspace  */<br />
  224.00<br />
  225.00    END_SPACE:  CHGVAR     VAR(%SST(&amp;QERRCD 1 8)) +<br />
  226.00                             VALUE(X&#8217;0000006000000000&#8242;)<br />
  227.00                CALL       PGM(QUSDLTUS) PARM(&amp;QDUS_NAME &amp;QERRCD)<br />
  228.00                IF         COND(%SST(&amp;QERRCD 5 4) *NE &amp;NO_ERROR) +<br />
  229.00                             THEN(GOTO CMDLBL(ERROR_API))<br />
  230.00   /* JUMP */<br />
  231.00<br />
  232.00                GOTO       CMDLBL(END)<br />
  233.00<br />
  234.00   /* API-Error */<br />
  235.00<br />
  236.00    ERROR_API:  CHGVAR     VAR(&amp;MSGID) VALUE(%SST(&amp;QERRCD 9 7))<br />
  237.00                CHGVAR     VAR(&amp;MSGDTALN) VALUE(%BIN(&amp;QERRCD 5 4))<br />
  238.00                CHGVAR     VAR(&amp;MSGDTALN) VALUE(&amp;MSGDTALN &#8211; 16)<br />
  239.00                CHGVAR     VAR(&amp;MSGDTA) VALUE(%SST(&amp;QERRCD 17 &amp;MSGDTALN))<br />
  240.00                SNDPGMMSG  MSGID(&amp;MSGID) MSGF(QCPFMSG) MSGDTA(&amp;MSGDTA) +<br />
  241.00                             MSGTYPE(*DIAG)<br />
  242.00<br />
  243.00   /* Error */<br />
  244.00<br />
  245.00    ERROR:      SNDPGMMSG  MSGID(CPF9899) MSGF(QCPFMSG) MSGTYPE(*ESCAPE)<br />
  246.00<br />
  247.00    END:</p>
<p>I run this program in a scheduled job each day.   </p>
<p>I also noticed today another API example at  <a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp" rel="nofollow">http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp</a> under Programming-&gt;APIs-&gt;Examples-&gt;Deleting Old Spooled Files.  It&#8217;s in RPG instead of CL and might be clearer but I didn&#8217;t look at it too closely.</p>
<p>Good luck.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gilly400</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61479</link>
		<dc:creator>gilly400</dc:creator>
		<pubDate>Fri, 27 Mar 2009 16:09:20 +0000</pubDate>
		<guid isPermaLink="false">#comment-61479</guid>
		<description><![CDATA[Hi Bill,

You may well be right on that - I don&#039;t have access to it on my system at the moment.  I thought that there was some sort of cleanup option for spooled files as standard these days....maybe I imagined it....

Regards,

Martin Gilbert.]]></description>
		<content:encoded><![CDATA[<p>Hi Bill,</p>
<p>You may well be right on that &#8211; I don&#8217;t have access to it on my system at the moment.  I thought that there was some sort of cleanup option for spooled files as standard these days&#8230;.maybe I imagined it&#8230;.</p>
<p>Regards,</p>
<p>Martin Gilbert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: wpoulin</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61477</link>
		<dc:creator>wpoulin</dc:creator>
		<pubDate>Fri, 27 Mar 2009 15:29:55 +0000</pubDate>
		<guid isPermaLink="false">#comment-61477</guid>
		<description><![CDATA[Martin,

I don&#039;t believe Cleanup will delete old spool files, job and system logs yes.

Bill Poulin]]></description>
		<content:encoded><![CDATA[<p>Martin,</p>
<p>I don&#8217;t believe Cleanup will delete old spool files, job and system logs yes.</p>
<p>Bill Poulin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gilly400</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61471</link>
		<dc:creator>gilly400</dc:creator>
		<pubDate>Fri, 27 Mar 2009 14:41:39 +0000</pubDate>
		<guid isPermaLink="false">#comment-61471</guid>
		<description><![CDATA[Hi,

Another option is to use the system cleanup to handle this for you.  GO CLEANUP - Option 1.

Regards,

Martin Gilbert.]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Another option is to use the system cleanup to handle this for you.  GO CLEANUP &#8211; Option 1.</p>
<p>Regards,</p>
<p>Martin Gilbert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pdraebel</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61470</link>
		<dc:creator>pdraebel</dc:creator>
		<pubDate>Fri, 27 Mar 2009 14:33:45 +0000</pubDate>
		<guid isPermaLink="false">#comment-61470</guid>
		<description><![CDATA[I have seen different techniques involving spoolfile cleanup. The one I use now is built around the List Object API (OUTQ) and the QUSLSPL (List spoolfiles). It manages cleanup of a +1000outq system with some 450000 spoolfiles in about 30 minutes daily. most of the time spent delting obsolete spools.]]></description>
		<content:encoded><![CDATA[<p>I have seen different techniques involving spoolfile cleanup. The one I use now is built around the List Object API (OUTQ) and the QUSLSPL (List spoolfiles). It manages cleanup of a +1000outq system with some 450000 spoolfiles in about 30 minutes daily. most of the time spent delting obsolete spools.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: gilly400</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/delete-old-spool-files/#comment-61400</link>
		<dc:creator>gilly400</dc:creator>
		<pubDate>Thu, 26 Mar 2009 11:20:35 +0000</pubDate>
		<guid isPermaLink="false">#comment-61400</guid>
		<description><![CDATA[Hi,

I believe the CVTOUTQ, CVTDAT and ADDDAT commands are part of TAATOOLS - if you don&#039;t have TAATOOLS on your system (or in your library list) then these commands are not recognised by the system.

Regards,

Martin Gilbert.]]></description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I believe the CVTOUTQ, CVTDAT and ADDDAT commands are part of TAATOOLS &#8211; if you don&#8217;t have TAATOOLS on your system (or in your library list) then these commands are not recognised by the system.</p>
<p>Regards,</p>
<p>Martin Gilbert.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 6/9 queries in 0.012 seconds using memcached
Object Caching 352/355 objects using memcached

Served from: itknowledgeexchange.techtarget.com @ 2013-05-18 10:23:16 -->