[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Dec 2006
    Beiträge
    11

    Anwendung kann Teildatei nicht öffnen

    Hallo zusammen,
    ich möchte mal wieder aus einer VB.Net- Anwendung Buchungsdaten an unsere Finanzbuchhaltung DKS übertragen. Dafür gibt es eine Datei S8. Seine Buchungsstapel muss man in eine Teildatei speichern. Das klappt soweit ganz gut. ich mache es wie in diesem Thread .
    Wenn ich jetzt in der DKS die Übernahme starte, erhalte ich die Meldung:
    Code:
    Buchungstapelteildatei MEINEDATEI nicht verfügbar und daher nicht verarbeitet.
    Das DKS Handbuch sagt dazu, dass die Datei nicht exklusiv zugeordnet werden konnte.
    Ich finde aber keine Satzsperren oder ähnliches. Die Teildatei ist vorhanden und enthält auch Daten.
    Kann ich irgendwie prüfen, warum das so ist?
    cu

  2. #2
    Registriert seit
    Jan 2001
    Beiträge
    850
    Hallo,

    vielleicht hilft Dir der Befehl WRKOBJLCK weiter.

    Damit kann man prüfen ob für eine Teildatei
    eine Sperre vorhanden ist.

    Gruß
    Michael

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    DKS möchte die Datei für sich haben.
    Allerdings hält deine VB.NET-Anwendung die Datei wohl noch im Zugriff, deine Anwendung läuft also noch.
    SQL schließt die Datei erst, wenn du die Verbindung trennst.
    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
    Dec 2006
    Beiträge
    11
    Hallo,
    ich mache im Prinzip folgendes:
    Code:
    Dim cn as New OledbConnection("Provider=IBMDA400;...")
    Dim cmd as New OledbCommand(sql,cn)
    cmd.executeNonQuery
    ...
    cmd.dispose
    cn.close
    cn.dispose
    Aber ich schau's noch mal durch.
    WRKOBJLCK zeigt keine Sperren an.
    cu

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    WRKOBJLCK -> F6
    Dann siehst du erst die Teildateien und wer diese sperrt.
    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

  6. #6
    Registriert seit
    Dec 2006
    Beiträge
    11
    Bei F6 sagt es F- Taste zur Zeit nicht erlaubt, aber ich habe F4 und die Teildatei angegeben. Dann kommt diese Ausgabe:
    Code:
                                              Sperr-                       
    Ausw  Teildatei   Job         Benutzer    art     Sperre   Status  Gem.
          OXIDTRM     QZDASOINIT  QUSER       MBR     *SHRRD    HELD       
                                              DATEN   *SHRRD    HELD
    Ist das meine VB- Anwendung?

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das Problem sind allerdings noch die QZDASOINIT-Job's (ODBC-Zugriffe).
    SQL hält die ODP's auch nach Close offen.
    Durch das Schließen der Verbindung wird zwar der QZDASOINIT-Job getrennt, aber nicht beendet !
    Die nächste Verbindung such sich einen getrennten Job und verbindet sich mit diesem wieder. Erst wenn keiner Verfügbar ist, wird ein neuer Job initiiert.

    Solange also der Job tatsächlich nicht beendet wird, sind die Ressourcen noch belegt!

    In den Verbindungseigenschaften muss man dafür dann "Lazyclose" dekativieren (wie der Eintrag genau aussieht musst du mal suchen).

    Ich habe diesbezüglich nämlich noch ein anderes Problem:
    Sind auf dem System mehrere Sprachen installiert, wird die entsprechende QSYS29xx abhängig vom User vorgeschaltet.
    Da aber eine QSYS29HH (HH-Hauptsprache) meist nicht existiert, scheitert der CHGSYSLIBL und die zuletzt eingestellte Sprache bleibt bestehen.
    Fehlermeldungen erhält man dann in der Fremdsprache.
    Lösung: eine leere QSYS29HH (z.B. QSYS2929 für Deutsch) erstellen.
    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
    Dec 2006
    Beiträge
    11
    Hallo und Danke,
    ich habe gerade ein Redbook zum Provider gefunden. Mal sehen, ob ich etwas zu 'lazyclose' finde.
    Ich wünsche erst einmal ein schönes Wochenende.

  9. #9
    Registriert seit
    Dec 2006
    Beiträge
    11
    Noch einer hinterher
    Könnte eventuell mit Connection Pooling zu tun haben.
    Code:
    The provider uses the ConnectionString as a key to determining whether a connection can be reused out of the connection pool. For connection pooling to work, the ConnectionString for the connection must be identical to a ConnectionString in the pool. If the ConnectionStrings
    are not identical, then the connection will not be taken from the pool; instead, a new pool will be created and the new connection will be taken from the new pool. Connection pooling is discussed in greater detail in 4.7.6, “Connection pooling” on page 143.
    Das ist per Default aktiv - man kann es aber abschalten.
    Das teste ich heute Abend.
    cu

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Das habe ich auch schon getestet, ändert aber nichts an der QZDASOINIT-Problematik. Diese bleibt bestehen.
    Außerdem habe ich festgestellt, dass der Connection-Pool anwendungsspezifisch ist, also nicht systemweit gilt.
    Wenn also ein Anwendung eine Verbindung schließt, wird sie dem lokalen Pool zugeordnet, beim nächsten öffnen aus dem Pool entnommen.
    Wird die Anwendung beendet, ist auch der Pool weg.

    Für den IBMDA400 konnte ich da allerdings nichts finden:
    IBM i Support: Software Technical Document : 23062121

    Diese Option scheint es nur für den ODBC-Treiber zu geben (ist in meinen Augen sowieso die bessere Wahl).
    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
    Dec 2006
    Beiträge
    11
    Hallo,
    ich habe die Anwendung auf ODBC umgestellt. Das Verhalten hat sich nicht geändert.

    In der Konfiguration der ODBC Datenquelle ist "Unterstützung für verzögertes Schließen aktivieren" nicht aktiviert.
    cu

  12. #12
    Registriert seit
    Dec 2006
    Beiträge
    11
    Ich nehme alles zurück und behaupte das Gegenteil.
    Ich habe die Teildatei gelöscht und die Datenübertragung mit ODBC getestet. Die Sperren werden jetzt beendet, sobald die VB.Net- Anwendung die Datenübertragung beendet hat.
    Danke für die Hilfe!
    cu

Similar Threads

  1. WDSC - Teildatei gesperrt
    By Allrounder in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-02-08, 13:48
  2. Antworten: 11
    Letzter Beitrag: 08-09-06, 12:25
  3. Integrierter PC Server und eine ERP Anwendung
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 31-08-06, 12:08
  4. Teildatei mit SQL anzeigen
    By Rico in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 06-07-06, 16:25
  5. Mehrere Teildateien in eine Teildatei kopieren
    By KaFi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-05-06, 11:49

Berechtigungen

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