[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jan 2012
    Beiträge
    1.199

    Verhindern von Meldungen im Joblog

    Hallo,

    ich möchte in einem SQLRPGLE-Programm einen SQL-Alias in der QTEMP erzeugen, um auf eine Sourcedatei zuzugreifen. Vor dem Erzeugen des Alias möchte ich prüfen, ob es den Alias bereits gibt. Dazu versuche ich einfach, auf den Alias zuzugreifen. Wenn das schiefgeht (SQLCOD -204) , ist der Alias nicht vorhanden. Ich habe folgenden Code verwendet:

    anw = 'select count(*) from ' + alias;
    exec sql prepare cmd from :anw;
    if sqlcod = -204;
    return *off;
    else;
    return *on;
    endif;

    Funktional ist alles OK. Es ist aber sehr unschön, dass bei jedem Fehlversuch eine Diagnosenachricht im Joblog landet. Kann man das irgenwie verhindern bzw kann man diese Nachricht wieder entfernen?

    Nachrichten-ID . . . . : SQL0204 Nachricht . . . : UM_MBRARR_EDBVSPGM_QRPGLESRC_BVS9##39 der Art *FILE in QTEMP nicht gefunden.


    Vielen Dank im Voraus,
    Dieter

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Zitat Zitat von dschroeder Beitrag anzeigen
    Hallo,

    ich möchte in einem SQLRPGLE-Programm einen SQL-Alias in der QTEMP erzeugen, um auf eine Sourcedatei zuzugreifen. Vor dem Erzeugen des Alias möchte ich prüfen, ob es den Alias bereits gibt. Dazu versuche ich einfach, auf den Alias zuzugreifen. Wenn das schiefgeht (SQLCOD -204) , ist der Alias nicht vorhanden. Ich habe folgenden Code verwendet:

    anw = 'select count(*) from ' + alias;
    exec sql prepare cmd from :anw;
    if sqlcod = -204;
    return *off;
    else;
    return *on;
    endif;

    Funktional ist alles OK. Es ist aber sehr unschön, dass bei jedem Fehlversuch eine Diagnosenachricht im Joblog landet. Kann man das irgenwie verhindern bzw kann man diese Nachricht wieder entfernen?

    Nachrichten-ID . . . . : SQL0204 Nachricht . . . : UM_MBRARR_EDBVSPGM_QRPGLESRC_BVS9##39 der Art *FILE in QTEMP nicht gefunden.


    Vielen Dank im Voraus,
    Dieter
    Könnte es sein, dass Du STRDBG in der Sitzung in der Du gerade testest aktiv hast?
    Wenn ja mach' ihn aus und schon sind die Meldungen weg!

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  3. #3
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Nein, STRDBG ist aus.
    Die Meldung kommt immer. Ich habe schon überlegt, ob es eine andere Möglichkeit gibt, zu prüfen, ob der Alias existiert. Der erzeugte Alias wird in der QTEMP als Objekt vom Typ DDMF angelegt. Der Objektname ist aber natürlich ein 10-stelliger generierter Name und für mich unauffindbar.

    Ich hatte die Tage bereits ein ähnliches Problem. Da hatte ich mit CHKOBJ ermittelt, ob ein Objekt existiert. Dabei kam es auch immer zu Meldungen im Joblog (Objekt ... in Bib ... nicht gefunden). Das konnte ich beseitigen, indem ich im SQL nach der entsprechenden MONMSG-Abfrage ein RCVMSG MSGTYPE(*EXCP) abgesetzt habe.

    Möglicherweise geht so etwas ähnliches ja auch bei (dynamischem) embedded SQL.

    Dieter

  4. #4
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Probier mal mit: RCVMSG MSGTYPE(*LAST) RMV(*YES)

  5. #5
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Es handelt sich ja um ein RPG-Programm, nicht um ein CL. Das heißt, ich muss den RCVMSG per QCMDEXC ausführen. Das geht aber nicht:
    "Befehl RCVMSG in dieser Umgebung unzulässig."

    Dieter

  6. #6
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Schau Dir mal das API QDBRTVSN (Retrieve Short Name) an.

    Damit kannst Du den kurzen Namen eines Datenbanken-Objekts ermitteln. Sofern das Objekt existiert, bekommst Du den kurzen Namen anderenfalls sollte ein Fehler ausgegeben werden.

    ... ansonsten solltest Du mal das Log-Level prüfen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 5. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  7. #7
    Registriert seit
    Jan 2012
    Beiträge
    1.199
    Vielen Dank,

    das API werde ich mir mal anschauen.

  8. #8
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    SQL Fehler werden immer ins JOBLOG geschrieben.
    In den Systemtabellen (z.B. QSYS2/SYSTABLES) kannst du schauen ob es den Alias gibt.
    Allerdings geht das nicht, wenn der Alias in der QTEMP steht.

    Ab i 7.1 kannst du auch ein CREATE OR REPLACE ALIAS machen.
    Dadurch gibts zwar keinen Joblog Eintrag mehr, allerdings wird der Alias jedes mal neu erstellt.

Similar Threads

  1. Joblog eines interaktiven Jobs erhalten
    By GJV23 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 03-11-11, 15:46
  2. Nachtjob - Meldungen
    By loeweadolf in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 19-07-06, 11:00
  3. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  4. Einträge in Joblog verhindern
    By Jamikl in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 28-02-05, 11:49
  5. Sbmjob erzeugt Joblog
    By Robi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 30-04-04, 15:42

Berechtigungen

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