[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2004
    Beiträge
    1

    Question AS/400 Zugriff via Linked Server unter SQL Server 2000

    Hallo!

    Wenn ich versuche beim SQL Server 2000 via Linked Server auf die AS/400 zuzugreifen, kann ich auf die AS/400 - Tabellen nur lesend zugreifen, d. h. ich kann kein INSERT, UPDATE oder DELETE durchführen.

    Beim Zugriff verwende ich folgende Einstellungen:

    ODBC Datenquelle:
    * via IBM Client Access V5?1?0 (inkl. aktuelle Services Packs sind installiert)
    * Lesen/Schreiben ist erlaubt
    * COMMIT-Modus *NONE ist gesetzt

    Linked Server:
    * über OLE DB Provider für ODBC Driver

    AS/400:
    Die Tabellen sind nicht journalisiert und sollen es auch nicht werden. Muss ich aber auch angeblich nicht, da ich ja den COMMIT-Modus auf *NONE gesetzt habe.

    AS/400 User:
    Der AS/400 User, der zum Zugriff via Linked Server benutzt wird, hat selbstverständlich Schreibrechte auf den gewünschten Tabellen.


    Hinweis:
    * Wenn man die Tabelle journalisiert werden, funktioniert der Schreibzugriff. Die Tabellen sollen aber laut RZ nicht journalisiert werden. Das RZ ist quasi unangreifbar.

    * Irgendwer verbreitet das Gerücht, dass der SQL Server die COMMIT-Modus *NONE ignoriert bzw. doch immer versucht eine Transaktion zu starten. Deswegen auch der bekannt SQL7008-Fehler. Stimmt das? Wenn ja, wie kann man es umgehen?

    * funktioniert es generell nicht beim Linked Server als Provider den IBM AS400 Client Access Treiber zu verwenden -ich verwende deswegen den OLE DB Provider für ODBC Driver-, oder stelle ich mich nur zu ungeschickt an?


    Ich hoffe, Ihr könnt mir helfen?

    Gruß
    epsih


    P.S.
    Geht nicht zu streng mit mir ins Gericht, wenn Bezeichnungen nicht 100%ig stimmen, ich schreibe gerade von zu Hause aus, meint ich habe das System nicht vor mir und alle Begriffe schreibe ich aus dem Gedächnis und das funktioniert nicht immer ganz korrekt ...

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Es liegt tatsächlich am SQL-Server. Dieser versucht IMMER eine Transaktion zu starten, egal welchen Treiber man verwendet.
    Will man schreibend zugreifen, empfielt sich eine separate Verbindung oder die Tabellen (wie bereits probiert) zu journalisieren.
    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
    Mar 2002
    Beiträge
    5.287
    Hallo,

    ergänzend sei vielleicht noch gesagt, dass es heutzutage keinerlei stichhaltige Argumente gegen Journalisierung mehr gibt, das blanke Gegenteil ist der Fall, Journalisierung empfiehlt sich in den meisten Fällen selbst dann, wenn man keine Transaktions Sicherung mit Commit verwendet!

    Dieter Bender

    Zitat Zitat von Fuerchau
    Es liegt tatsächlich am SQL-Server. Dieser versucht IMMER eine Transaktion zu starten, egal welchen Treiber man verwendet.
    Will man schreibend zugreifen, empfielt sich eine separate Verbindung oder die Tabellen (wie bereits probiert) zu journalisieren.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    @Dieter

    Versuch das mal mit dem BrainXPPS-ERP. Innerhalb einer Stunde Aufzeichnung einer einzigen Datei (Stammdatei) entstanden ca. 1 GB Journal bei ca. 150 Usern.
    Ich kann mir durchaus vorstellen, dass andere ERP-Systeme mit durchaus ähnlichen Datenvolumen umgehen.
    Der Grund ist hierbei, dass 90% aller Zugriffe eigentlich Pseudo-Updates sind. Sperren werden über ein Datenfeld gelöst, so dass auch tatsächlich unterschiedliche Images bei einem Update entstehen (die Option tatsächliche Unterschiede aufzuzeichnen zieht also nicht wirklich).
    Der Vorgang ist also:
    1. Read mit Lock
    2. Setze Sperrfeld
    3. Update
    4. Read mit Lock
    5. Änderung tatsächlicher Felder
    6. Update
    7. Read mit Lock
    8. Lösche Sperrvermerk
    9. Update
    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

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    @Baldur: gerade hierbei wäre Transaktionssicherung dringendst angeraten (dauerhaft gesperrte Sätze drohen!!!)
    Schädlich wäre es keinesfalls, bei entsprechender Vorgehensweise:
    Journalgröße limitieren und alles auf automatisches Handling einstellen inklusive löschen; Eigener ASP für Journale und Receiver, je nach Plattenkonstellation. Das Journalisieren verhindert dann das forcierte rausschreiben der Blindupdates und das Journal wird rein sequentiell geschrieben. Davon abgesehen ist Journalisierung Dateieigenschaft und kann auch selektiv eingesetzt werden (solange nicht Commit Steuerung anderes erfordert).
    Nebenbei bemerkt: ich bewundere immer wieder die Risikofreude einiger Softwarehäuser, ich würde jedem Kunden, dem ein wirtschaftlicher Schaden durch krumme Lagerbuchungen, dauerhaft gesperrte Sätze, oder ähnliches ensteht, unter Berufung auf das europäische Produkt-Haftungsrecht auf Schadenerstaz zu klagen, wenn Software keine Transaktionssicherheit durch Commit sicherstellt und damit nicht dem Stand der Technik entspricht.
    Meine Empfehlung bleibt: alles journalisieren außer temporären Dateien.

    Zitat Zitat von Fuerchau
    @Dieter

    Versuch das mal mit dem BrainXPPS-ERP. Innerhalb einer Stunde Aufzeichnung einer einzigen Datei (Stammdatei) entstanden ca. 1 GB Journal bei ca. 150 Usern.
    Ich kann mir durchaus vorstellen, dass andere ERP-Systeme mit durchaus ähnlichen Datenvolumen umgehen.
    Der Grund ist hierbei, dass 90% aller Zugriffe eigentlich Pseudo-Updates sind. Sperren werden über ein Datenfeld gelöst, so dass auch tatsächlich unterschiedliche Images bei einem Update entstehen (die Option tatsächliche Unterschiede aufzuzeichnen zieht also nicht wirklich).
    Der Vorgang ist also:
    1. Read mit Lock
    2. Setze Sperrfeld
    3. Update
    4. Read mit Lock
    5. Änderung tatsächlicher Felder
    6. Update
    7. Read mit Lock
    8. Lösche Sperrvermerk
    9. Update
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Kein Zugriff von Linux auf AS/400 Freigabe?
    By schatte in forum NEWSboard Linux
    Antworten: 12
    Letzter Beitrag: 29-01-08, 14:02
  2. AS400 auf SQL Server
    By DEVJO in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 12-10-06, 18:28
  3. AS/400 und SQL Server 2000
    By rcauchy in forum NEWSboard Windows
    Antworten: 9
    Letzter Beitrag: 06-06-05, 10:24
  4. MS Sql Server + iSeries -> Verbindungsserver
    By reraru in forum NEWSboard Programmierung
    Antworten: 13
    Letzter Beitrag: 20-04-05, 13:07
  5. Zugriff MS Access auf AS/400 via ODBC
    By SL in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 22-07-02, 11:54

Berechtigungen

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