[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2006
    Beiträge
    348

    Question Negative Auswirkungen von ALWMLTTHD(*YES)?

    Hallo Leute,

    in einer *JOBD oder beim Befehl SBMJOB kann man den Parameter ALWMLTTHD ("Allow multiple threads" / "Mehrere Threads zulassen") auf *YES setzen. Dies ist notwendig, damit übergebene Jobs mehrere Threads erzeugen können.

    In der Hilfe des Befehls CRTJOBD zum Parameter ALWMLTTHD steht folgender Auszug:
    "Dieses Attribut sollte nur in Jobbeschreibungen auf *YES gesetzt werden, die sich auf Systemfunktionen beziehen, die mehrere Benutzer-Threads erstellen."

    Kann mir jemand sagen, ob dieser Parameter negative Auswirkungen haben kann, wenn man nur Cobol oder CL Programme im übergebenen Job verwendet?

    Viele Grüße
    Matthias

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Spätestens beim Einsatz von SQL bieten sich mehrere Threads immer an, da SQL diesbezüglich optimiert.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Aug 2009
    Beiträge
    121
    Man sollte dabei auf den Systemwert QMLTTHDACN achten: Wenn der auf 3 steht und versucht wird, einen Befehl auszuführen, der als "nicht Threadsafe" eingestuft ist, gibt es einen Fehler. Der Standardwert dieses Systemwertes ist allerdings 2, deshalb sollte es in den meisten Fällen kein Problem geben.

    Ich bin mir nicht sicher, ob SQL wirklich mehrere Threads in dem Prozess startet, der die SQL-Anfrage ausführt. Soweit ich mich erinnere, werden im Falle der Parallelverarbeitung interne LIC-Tasks mit dem Namen DBL3... verwendet, der eigentliche Prozess muss dazu nicht Multi-Threaded laufen.

    Mit freundlichen Grüßen,
    Christian Bartels.

  4. #4
    Registriert seit
    Jun 2006
    Beiträge
    348
    Hallo,

    vielen Dank für die Antworten.

    Bei mir steht der Systemwert auf 2. Das ist dann auch der Grund, weshalb ich im Joblog schon folgende Meldung gesehen habe:
    Code:
    Weitere Nachrichteninformationen                        
                                                                                    
     Nachrichten-ID . . . . :   CPD000D       Bewertung  . . . . . . :   30         
     Nachrichtenart . . . . :   Information                                         
     Sendedatum . . . . . . :   07.08.15      Sendezeit  . . . . . . :   06:04:01   
                                                                                    
     Nachricht . . . :   Befehl *LIBL/RMVLNK nicht sicher für Job mit mehreren      
       Threads.                                                                     
     Ursache  . . . . :  Der aktuelle Job enthält mehrere Threads. Der Befehl       
       *LIBL/RMVLNK kann nicht sicher in einem Job mit mehreren Threads ausgeführt  
       werden. Aktion 2 wird ausgeführt. Aktionen:                                  
         2 -- Die Verarbeitung des Befehls wird fortgesetzt.                        
         3 -- Diese Nachricht folgt auf Abbruchnachricht CPF0001. Die               
       Befehlsverarbeitung wird beendet.                                            
     Fehlerbeseitigung:  Der Befehl darf nicht in einem Job mit mehreren Threads    
       ausgeführt werden.                                                           
     Technische Beschreibung  . . . . :  Befehle, die für Threads nicht sicher      
       ausgeführt werden können, sollten nicht in einem Job mit mehreren Threads    
                                                                       Weitere ...  
     Eingabetaste --> Weiter                                                        
                                                                                    
     F3=Verlassen   F6=Drucken   F9=Nachrichtendetails anzeigen   F12=Abbrechen     
     F21=Unterstützungsstufe auswählen
    Daher besser aus Sicherheitsgründen Jobs ohne Multithreading mit ALWMLTTHD(*NO) ausführen lassen.
    Wobei ich mich schon wundere, dass Systembefehle wie RMVLNK und CPYFRMIMPF nicht Threadsafe sind.

    Viele Grüße
    Matthias

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die Meldung ist auch nur eine Warnung.
    Klar ist, dass ich nur mit API's bzw. C++ überhaupt Threads erstellen kann.
    Dann muss ich auch für Synchronisation zwischen Threads sorgen.
    Ich denke nicht, dass IBM die vielen 1000de Programme threadsave neu entwickelt hat.
    Die Warnung kommt überhaupt nur, wenn der Job Threads hat und das ist bei mir nur bei bestimmten Funktionen in SQL der Fall und tritt auch meist nur in ODBC-Jobs auf.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Negative Auswirkungen ACTGRP(*NEW)
    By Starocotes in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 10-03-14, 12:46

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •