DSTQ - Verteilung: Unterschied zwischen den Versionen

Aus informatikvs
Wechseln zu: Navigation, Suche
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
In der Verteilerschlange eines Users ist mit 9999 Verteilungen (Nachrichten) die Obergrenze erreicht. Eine Nachricht mit SNDDST senden wirft die Fehlermeldung:
+
In der Verteilerschlange eines Users ist mit 9999 Verteilungen (Nachrichten) die Obergrenze erreicht. Wird eine Nachricht an diesen mit SNDDST gesendet wird die Fehlermeldung:
 
; CPD90B1:Die Obergrenze von 9999 Verteilungen wurde erreicht.
 
; CPD90B1:Die Obergrenze von 9999 Verteilungen wurde erreicht.
auf.
+
aufgeworfen. Ursache für das Erreichen der Obergrenze ist häufig ein deaktivierter Benutzer, der seine gelesenen Nachrichten nicht löscht.
===Abhilfe:===
+
===fix===
 
# Anmelden mit QSECOFR-Berechtigung
 
# Anmelden mit QSECOFR-Berechtigung
# ===> WRKDIRE (Verzeichniseinträgen arbeiten | Work with Directory Entries aufrufen)
+
# ===> WRKDIRE (Verzeichniseinträgen arbeiten | Work with Directory Entries)
 
# mit Auswahl 2=Ändern in die Änderungsmaske für den Benutzer wechseln
 
# mit Auswahl 2=Ändern in die Änderungsmaske für den Benutzer wechseln
 
# 4 * nach unten bis zur Eigenschaft "Postfunktionsstufe | Mail Service Level" blättern  
 
# 4 * nach unten bis zur Eigenschaft "Postfunktionsstufe | Mail Service Level" blättern  
Zeile 10: Zeile 10:
 
# 1 * nach unten bis zur Eigenschaft "Bevorzugte Adresse | Preferred Address" blättern
 
# 1 * nach unten bis zur Eigenschaft "Bevorzugte Adresse | Preferred Address" blättern
 
# den Wert auf 3=SMTP-Name ändern
 
# den Wert auf 3=SMTP-Name ändern
 
+
# call [[hsdstclear.clle |hsdstclear]]
<code>
 
/******************************************************************************/
 
/*                                                                            */
 
/* Programm bereinigt alle SNADS-Verteilungen eines USERS (Parameter/Aufrufer)*/
 
/* Wenn Limit von 9999 erreicht wurde schlug Fehler CPD90B1 auf              */
 
/*                                                                            */
 
/* Wegen Berechtigung muss Job mit Benutzernamen als SBMJOB gestartet werden  */
 
/*                                                                            */
 
/******************************************************************************/
 
            DCL        VAR(&PUSER)    TYPE(*CHAR) LEN(10)                     
 
            DCL        VAR(&USER)    TYPE(*CHAR) LEN(10)                     
 
            DCL        VAR(&MYLIB)    TYPE(*CHAR) LEN(10)                     
 
            DCL        VAR(&MYTYPE)  TYPE(*CHAR) LEN(1)                     
 
            DCL        VAR(&MYDATE)  TYPE(*CHAR) LEN(8) VALUE('20621231')   
 
            DCL        VAR(&SDDATE)  TYPE(*CHAR) LEN(8)                     
 
                                                                               
 
            DCLF      FILE(QSYS/QAOSILIN) RCDFMT(OSLIN)  OPNID(MYINP)       
 
            DCLF      FILE(QSYS/QAOSILOT) RCDFMT(OSLOUT) OPNID(MYOUT)       
 
                                                                               
 
            CHGVAR    VAR(&USER) VALUE(&PUSER)                               
 
            MONMSG    MSGID(MCH3601) EXEC(RTVJOBA USER(&USER))               
 
                                                                               
 
            RTVJOBA    TYPE(&MYTYPE)                                         
 
            IF        COND(&MYTYPE *EQ '0') THEN(DO)                         
 
              CHGVAR    VAR(&MYLIB) VALUE(QTEMP)                             
 
              CHGVAR    VAR(&MYLIB) VALUE(SPONA)                             
 
              CALLSUBR  SUBR(DLTDSTIN)                                       
 
              CALLSUBR  SUBR(DLTDSTOUT)                                     
 
              DSPJOBLOG  OUTPUT(*PRINT)                                       
 
              SNDM      FROM('horst.spona@kunert.de')  +                     
 
                          TO(('horst.spona@kunert.de')) +                     
 
                          FILE(&MYLIB/QCLSRC)          +                     
 
                          MBR(HSDSTCLEA#)              +                     
 
                          SUBJECT('HSDstClear')                               
 
            ENDDO                                                             
 
            ELSE DO                                                           
 
              SBMJOB    CMD(CALL PGM(SPONA/HSDSTCLEAR) +                     
 
                          PARM(&USER))                  +                     
 
                          JOB(HSDSTCLEAR)                +                     
 
                          JOBQ(*LIBL/QBATCH)            +                     
 
                          USER(&USER)                    +                     
 
                          SYSLIBL(*SYSVAL)              +                     
 
                          CURLIB(*CRTDFT)                +                     
 
                          INLLIBL(*SYSVAL)              +                     
 
                          LOG(4 99)                      +                     
 
                          LOGCLPGM(*YES)                +                     
 
                          HOLD(*NO)                                           
 
            ENDDO                                                             
 
/******************************************************************************/
 
/*** END **********************************************************************/
 
END9999:    DLTOVR    FILE(*ALL)                                             
 
            RCLRSC                                                           
 
                                                                               
 
/******************************************************************************/
 
/**subroutine *****************************************************************/
 
SUBR      SUBR(DLTDSTIN)                                                     
 
    QRYDST    OPTION(*IN) USRID(*CURRENT) OUTFILE(&MYLIB/MYDSTIN)             
 
    OVRDBF    FILE(QAOSILIN) TOFILE(&MYLIB/MYDSTIN)                           
 
    DOWHILE cond(1 = 1)                                                       
 
            RCVF      RCDFMT(OSLIN) OPNID(MYINP)                             
 
            MONMSG    MSGID(CPF0864) EXEC(LEAVE)                             
 
            CHGVAR    VAR(&SDDATE) VALUE(%SST(&MYINP_LINSDT 1 8))           
 
            IF COND(&SDDATE *GT &MYDATE) THEN(ITERATE)                       
 
                                                                               
 
            DLTDST    DSTID(&MYINP_LINDID) OPTION(*IN) USRID(*CURRENT) +     
 
                    DSTIDEXN(&MYINP_LINDEX) OBJ(*ALL)                         
 
            MONMSG    MSGID(CPF0000)                                         
 
    ENDDO                                                                     
 
ENDSUBR                                                                       
 
                                                                               
 
/******************************************************************************/
 
/**subroutine *****************************************************************/
 
SUBR      SUBR(DLTDSTOUT)                                                     
 
    QRYDST    OPTION(*OUT) USRID(*CURRENT) OUTFILE(&MYLIB/MYDSTOUT)           
 
    OVRDBF    FILE(QAOSILOT) TOFILE(&MYLIB/MYDSTOUT)                         
 
    DOWHILE cond(1 = 1)                                                       
 
            RCVF      RCDFMT(OSLOUT) OPNID(MYOUT)                           
 
            MONMSG    MSGID(CPF0864) EXEC(LEAVE)                             
 
            CHGVAR    VAR(&SDDATE) VALUE(%SST(&MYOUT_OUTSDT 1 8))           
 
            IF COND(&SDDATE *GT &MYDATE) THEN(ITERATE)                       
 
                                                                               
 
            DLTDST    DSTID(&MYOUT_OUTDID) OPTION(*OUT) USRID(*CURRENT) +   
 
                    DSTIDEXN(&MYOUT_OUTDEX) OBJ(*ALL)                         
 
            MONMSG    MSGID(CPF0000)                                         
 
            DLTDST    DSTID(&MYOUT_OUTDID) OPTION(*ERR) USRID(*CURRENT) +   
 
                    DSTIDEXN(&MYOUT_OUTDEX) OBJ(*ALL)                         
 
            MONMSG    MSGID(CPF0000)                                         
 
    ENDDO                                                                     
 
ENDSUBR                                                                       
 
/******************************************************************************/
 
/******************************************************************************/
 
ENDPGM                     
 
</code>
 

Aktuelle Version vom 27. Juni 2017, 11:06 Uhr

In der Verteilerschlange eines Users ist mit 9999 Verteilungen (Nachrichten) die Obergrenze erreicht. Wird eine Nachricht an diesen mit SNDDST gesendet wird die Fehlermeldung:

CPD90B1
Die Obergrenze von 9999 Verteilungen wurde erreicht.

aufgeworfen. Ursache für das Erreichen der Obergrenze ist häufig ein deaktivierter Benutzer, der seine gelesenen Nachrichten nicht löscht.

fix

  1. Anmelden mit QSECOFR-Berechtigung
  2. ===> WRKDIRE (Verzeichniseinträgen arbeiten | Work with Directory Entries)
  3. mit Auswahl 2=Ändern in die Änderungsmaske für den Benutzer wechseln
  4. 4 * nach unten bis zur Eigenschaft "Postfunktionsstufe | Mail Service Level" blättern
  5. den Wert auf 2=Systemnachrichtenspeicher | System Message Store ändern
  6. 1 * nach unten bis zur Eigenschaft "Bevorzugte Adresse | Preferred Address" blättern
  7. den Wert auf 3=SMTP-Name ändern
  8. call hsdstclear