AS/400 / iSeries / i5 / System i

AS/400 / iSeries / i5 / System i

Posts 1-5 of 5
  • Herbert Fidler
    Herbert Fidler    Premium Member
    The company name is only visible to registered members.
    Problem mit zu langen Tabellen-Namen in J2EE-Anwendung auf AS400-Datenbank
    Hallo, iSeries-Spezialisten

    Ich habe ein markantes Problem.

    Vor zwei Jahren habe ich eine Monteur-Disposition in J2EE programmieren lassen (Swing-Framework), wobei die Datenbank auf AS400 liegt. Die nun notwendig gewordene Auditierungs-Funktion (Aufzeichnung der Änderungen) wird vom Autor mit einem bestimmten Framework erledigt. Die Aud.-Files lauten Dateiname + "_AUD", wodurch die zulässige Gesamtlänge überschritten wird.

    In SQL ist die Datei angelegt worden (allerdings ohne Journal-Aufzeichnung), im System, z.B. WRKF xxxx lautet der Name freilich DISPA00001.
    Bevor nun weitergemacht wird, müßte ich dringend wissen, ob die Datei in Web-Anwendung handelbar ist, schließlich kann sie interaktiv in SQL abgefragt werden. Journal-Aufzeichnung muss natürlich möglich, um die Commitment-Steuerung zu ermöglichen, die im Framework integriert ist.

    Hat jemand ev. einen Rat? Vielen Dank im Voraus

    Mit freundlichen Grüßen

    Herbert Fidler
  • Post visible to registered members
  • Herbert Fidler
    Herbert Fidler    Premium Member
    The company name is only visible to registered members.
    Re^2: Problem mit zu langen Tabellen-Namen in J2EE-Anwendung auf AS400-Datenbank
    Ja, danke, das ist sehr interessant.
    Abgesehen vom Wiederfinden wäre es also möglich.

    mit freundlichen Grüßen
    Herbert Fidler
  • Post visible to registered members
  • Christian Bartels
    Christian Bartels    Group moderator
    The company name is only visible to registered members.
    Re: Problem mit zu langen Tabellen-Namen in J2EE-Anwendung auf AS400-Datenbank
    Grundsätzlich kann SQL problemlos mit langen Namen umgehen, der Zusammenhang zwischen den langen SQL-Namen und den abgekürzten Betriebssystemnamen ergibt sich über die Kataloge, also z.B.:

    SELECT SYSTEM_TABLE_NAME FROM QSYS2/SYSTABLES WHERE TABLE_NAME = '<langer SQL-Name' AND TABLE_SCHEMA = '<Bibliothek>'

    Umgekehrt kann man auch über DSPFD oder das API QBDRTVFD im Abschnitt Qdb_Qdbflngn herausfinden, welcher lange SQL-Name einem kurzen Dateinamen zugeordnet ist.

    Das einzige Risiko besteht darin, daß beim Löschen und Neuanlegen einer Tabelle mit langem Namen dieser Tabelle beim Neuerstellen ein anderer Kurzname als beim ersten Anlegen zugewiesen werden kann. Darauf sollte man beim Entwickeln der Anwendung Rücksicht nehmen.

    SQL started die Journalaufzeichnung für eine Tabelle beim Neuanlegen automatisch, wenn in der Bibliothek, in der die Tabelle angelegt wird, ein Journal mit Namen QSQJRN existiert oder eine Data-Area mit Namen QDFTJRN, Type CHAR(30), die als Inhalt den Namen der Journalbibliothek, des Journalnamens und des Wertes *FILE enthält, jeweils auf 10 Stellen aufgefüllt.

    Generell wäre es beim Zugriff über JDBC zu empfehlen, daß eine SQL-Collection mit dem Befehl CREATE COLLECTION erstellt wird, in der dann das Journal und die Katalogsichten enthalten sind. Ebenso sollte ein Benutzerprofil mit dem gleichen Namen erstellt werden, dem die SQL-Collection als Eigentümer zugewiesen wird, um dem SQL-Standard gerecht zu werden.

    Mit freundlichen Grüßen,
    Christian Bartels.
    This post was modified on 31 Aug 2009 at 09:13 am.