[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2007
    Beiträge
    29

    Question Anzeige von Datensätzen verspätet?

    Hallo zusammen,
    es klingt etwas kömisch.

    Es passiert folgendes:
    Ich habe ein Log. File in einem RPG Programm eingebaut, in das Daten geschrieben werden, wenn bestimmte Kriterien zutreffen. Gleichzeitig lasse ich mir durch ein Programm was sofort nach dem WRITE aufgerufen wird, einen Nachricht an meinen MSGQ senden. Nun ist es so, dass ich einen Nachricht erhalte, aber es wird kein Datensatz in die Datei geschrieben.


    Oder kann es sein, dass der Datensatz in der Log.- File vorhanden ist, dieser nur mittels QRY nicht angezeigt wird?

    Hat jemand eine Idee?

    MfG
    Carsten

  2. #2
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Das könnte vielleicht an der Blockung liegen. Ist in der Umwandlungsliste dieses Programms vielleicht die Meldung "RNF7086 - RPG bearbeitet Blocken für die Datei. INFDS wird nur fortgeschrieben, wenn Datenblöcke übertragen werden." enthalten?

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Betrachte mal die Umwandlungsliste.
    RPG blockt ggf. bei O-Dateien, so dass die Daten erst dann verfügbar sind, wenn der Block tatsächlich geschrieben wird.

    Bei der Umwandlung kann man auch irgendwo angeben, dass nicht geblockt werden soll.

    Alternativ öffnet man die Datei für Update (UF).
    Da der Compiler dann häufig meckert mache ich eine Pseudo-BEGSR, die die angemeckerten Befehle (READ/WRITE/UPDAT/DELET) enthählt.
    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

  4. #4
    Registriert seit
    Feb 2008
    Beiträge
    104
    RPG blockt bei Ausgabedateien. Verhinderrn kann ich das evtl. in den Keywords in der Dateibeschreibung (F-zeilen) mit dem Keyword:

    BLOCK(*NO)

  5. #5
    Registriert seit
    Jan 2003
    Beiträge
    759
    FEOD (force end of data)

  6. #6
    Registriert seit
    Feb 2008
    Beiträge
    104
    Für die Datei
    FRCRATIO = 1 setzen (mit CHGPF), dann müßte das auch gehen

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    FRCRATIO(1) hat allerdings Performancenachteile, da damit nicht nur Blockung sondern auch Pufferung ausgeschaltet wird.
    FRCRATIO erzwingt das sofortige Schreiben auf Platte.

    Alternativ kann man noch mit
    OVRDBF ... SEQONLY(*NO) arbeiten.
    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

  8. #8
    Registriert seit
    Jun 2004
    Beiträge
    17
    Hallo Carsten,

    das von Dir beschriebene Phänomen hatte ich auch schon. Die Ursache, dass mit Query nichts angezeigt wird, liegt bei Query selbst.
    Entsprechend dem Einspeicherkonzept der AS400 ist es normalerweise egal, wo ein Datensatz legt (Cache oder Festplatte) und er ist verfügbar (weshalb Du ja die Nachricht erhälst).
    Willst Du die Einträge mit Query sehen, musst Du die Blockung ausschalten. Die Wege sind ja bereits beschrieben.

    MfG
    Bogomil

  9. #9
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Zitat Zitat von Bogomil Beitrag anzeigen
    Die Ursache, dass mit Query nichts angezeigt wird, liegt bei Query selbst.
    Nein, denn ein DSPPFM zeigt diese neuen Datensätze auch nicht an.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    RPG schreibt den Block erst, wenn dieser voll ist.
    Da kann auch DSPPFM/SQL/Query nichts dran ändern.

    Sorge beim Output dafür (wie oben beschrieben), dass nicht geblockt wird !
    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

  11. #11
    Registriert seit
    Jul 2003
    Beiträge
    338

    Wink

    Zitat Zitat von IBSCPO Beitrag anzeigen
    Hallo zusammen,
    es klingt etwas kömisch.

    Es passiert folgendes:
    Ich habe ein Log. File in einem RPG Programm eingebaut, in das Daten geschrieben werden, wenn bestimmte Kriterien zutreffen. Gleichzeitig lasse ich mir durch ein Programm was sofort nach dem WRITE aufgerufen wird, einen Nachricht an meinen MSGQ senden. Nun ist es so, dass ich einen Nachricht erhalte, aber es wird kein Datensatz in die Datei geschrieben.


    Oder kann es sein, dass der Datensatz in der Log.- File vorhanden ist, dieser nur mittels QRY nicht angezeigt wird?

    Hat jemand eine Idee?

    MfG
    Carsten
    F-Bestimmung sollte folgendermassen aussehen:

    F LOGDATEI IF A E

    und nicht

    F LOGDATEI O E

    Dann solte es gehen.

  12. #12
    Registriert seit
    Jul 2007
    Beiträge
    29
    Hallo an alle,
    vielen Dank für die Hilfe. Ich habe die Dateibestimmung von "O" auf "UF" geändert. Jetzt ist alles bestens..

    Carsten

Similar Threads

  1. Datei DSN Ändern von Datensätzen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-10-06, 11:36
  2. Anzeige drucken im Querformat
    By Kigol in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 02-08-06, 12:58
  3. Antworten: 1
    Letzter Beitrag: 16-05-06, 08:43
  4. CA Anzeige drucken
    By Joe in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 27-04-06, 08:50
  5. Anzeige Qshell ?
    By mk in forum NEWSboard Java
    Antworten: 1
    Letzter Beitrag: 22-04-05, 18:00

Berechtigungen

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