[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Jun 2012
    Beiträge
    3
    Ah danke dir pikachu,

    Ich werde mal schauen, ob ich da noch weitere Informationen zum "eigentlichen" Dateisystem dann finde.

    Nun die andere Frage:
    QSYS.LIB ist in dem Sinne ja ein virtuelles Dateisystem.

    Speichert QSYS.LIB denn alle Obejkte in der DB2, sodass der Wikipedia Artikel stimmt, dass das Dateisystem auf Ebene des BS OS/400 (nicht das Machine Interface), also QSYS.LIB alle Objekte in der Datenbank DB2 hält?

    Bis auf den Wikipedia Artikel konnte ich dazu leider nix finden.

    Die Spezifikation zum IFS sagt allerdings, dass im Dateisystem QSYS.LIB nur Dateien vom Typ "Record" abgespeichert werden und Record hört sich ja schon stark datenbankmäßig an .

  2. #2
    Registriert seit
    Aug 2001
    Beiträge
    2.928
    Das Problem ist, Du wirst relativ wenig genaue Informationen im Internet finden, da IBM nicht offenlegt, wie und wo und in welcher Form die Objekte gespeichert und im Speicherbereich aufgeteilt werden.
    Das ist im Betriebssystem auf der untersten Ebene integriert und abgeschottet!

    Die Datenbank selber ist im Betriebssystem integriert. (Im Gegensatz zu allen anderen Datenbanken auf allen anderen Systemen, bei denen die Datenbank auf dem Betriebssystem sitzt.)

    Auch wenn die Datenbank im Betriebssystem integriert ist, bedeutet das noch lange nicht, dass deswegen alles in der Datenbank gespeichert werden muss.

    Datenbanken-Objekte, wie Tabellen (physische Dateien), Views, Indexes, Sequences etc. sowie deren Definition sind in der Datenbank gespeichert (da nach SQL Standard eine Datenbank selbstbeschreibend sein muss).

    Sicher ist, IBM i ist kein PC-System und mit einem solchen nicht unbedingt vergleichbar!

    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
    Nov 2003
    Beiträge
    2.403
    Im MI (Machine Interface) hat alles seine feste Speicheradresse (einstufiger Speicher). Datenbankdateien, Datenbankteildateien, Befehle, Programme, Bibliotheken, auch die Bibliotheken QSYS, QGPL, ... Alles hat seine feste Speicheradresse. Es gibt auch mehrere Bibliotheken QTEMP... Die Suche nach einem bestimmten Objekt erfolgt anhand seines Namens, seiner Objektart und der Bibliothek (Kontext) in der es sich befindet. Zum schnelleren Wiederfinden kann es für Folgeaufrufe über seine (ermittelte) Speicheradresse gefunden werden. Objekte sind intern über Zeiger miteinander verbunden. Je nachdem was man unter DB2 für i versteht, könnte DB2 für i auch das MI umfassen. Per SQL wird man diese Objekte aber nicht erreichen können (Programme zum Beispiel bestehen nicht aus Daten in Spaltenform, sondern aus durch Zeiger miteinander verbundenen Speicherbereichen).

    Im Gegensatz dazu ist das Spoolsystem großteils in der Datenbank abgelegt, zumindest die Spooldaten stehen in Datendateien in der Bibliothek QSPL. Aber auch hier gibt es spezielle MI-Objekte, die man erst mittels DMPSYSOBJ OBJ(QSPL) CONTEXT(*MCHCTX) sieht, näheres siehe zum Beispiel hier.

  4. #4
    Registriert seit
    Aug 2009
    Beiträge
    121
    Ich versuche mal, die Sache etwas zu strukturieren:

    "Ganz unten" hat jedes Objekt auf IBM i eine systemweit eindeutige virtuelle Adresse. Extern sichtbare Objekte, also Dateien, Programme, Verzeichnisse, Benutzerprofile und so weiter fangen in der Regel an einer 16MB-Boundary an. Die LIC-Komponente "Storage Management" weiss, welche physikalische Speicherstelle (Platte, Main Storage) zu jeder virtuellen Adresse gehört, alle anderen Komponenten greifen nur über die virtuelle Adresse auf Objekte zu.

    Dateisysteme (QSYS.LIB, IFS) regeln, wie man die Objekte finden kann. Dabei gibt es zwei wesentliche Sichten auf das Ganze:

    1. QSYS (oder Dateisystem QSYS.LIB):
    Dies ist die traditionelle AS/400-Sicht. Es gibt nur eine flache Hierarchie: Unten liegt die Bibliothek QSYS. In dieser liegen alle Bibliotheken, Benutzerprofile, Leitungs-, Controler- und Einheitenbeschreibungen und ein paar andere Dinge (erkennbar daran, dass beim entsprechenden CRTxxx-Befehl keine Bibliothek angegeben werden kann), außerdem "normale" Objekte, die auch in jeder anderen Bibliothek liegen könnten. Darüber liegen alle Bibliotheken, und in den Bibliotheken liegen dann die übrigen Objekte, also Programme, Physische und Logische Dateien, Subsystembeschreibungen und was es sonst noch alles gibt, allerdings keine Bibliotheken, so dass die Hierarchie flach bleibt. Objekte sind eindeutig identifiziert über Bibliotheksnamen, Objektnamen und Objektart, also z.B. QGPL/QCLSRC *FILE oder QSYS/QCMD *PGM. Objekte in hierarchischen Dateisystemen (siehe unten) können normalerweise nicht aus QSYS angesprochen werden.

    2. IFS:
    Das Integrated File System ist hierarchisch aufgebaut und vereinigt Sichten auf verschiedene Dateisysteme. Jedes Dateisystem hat eigene Eigenschaften, unter anderem gibt es Dateisystem QSYS.LIB, das oben beschrieben wird, ein Dateisystem /QOpenSys, das Unix-artig hierarchisch und case-sensitiv ist, und das sogenannte Dateisystem "EPFS", das ähnlich wie ein Windows-Dateisystem hierarchisch, aber nicht case-sensitiv ist (z.B. /QIBM/ProdData/...). Direkt nach dem Root-Verzeichnis wird gegebenenfalls in ein anderes Dateisystem verzweigt, danach kommen dann je nach Dateisystem unterschiedlich aufgebaute Pfadnamen. Objekte in QSYS können auch über nach dem folgenden Schema angesprochen werden: /QSYS.LIB/QGPL.LIB/QCLSRC.FILE/MYMEMBER.MBR oder /QSYS.LIB/QCMD.PGM.

    Die Datenbank DB2 für IBM i setzt sich aus Objekten im QSYS-Dateisystem zusammen: Bibliotheken als Schema, Physische Dateien als Tabellen, Logische Dateien als Views und Indizes, Programme als Stored Procedures, außerdem Journale und Journalempfänger für Commitment-Control. Da die Objektnamen in QSYS und den Bibliotheken nur 10 Zeichen lang sein können, werden aus längeren SQL-Namen kürzere Objektnamen generiert. Die Verbindung zwischen SQL- und Objektnamen erfolgt über die Systemkataloge (SYSTABLES etc.), die auf den sogenannten Cross-Reference-Dateien in der Bibliothek QSYS basieren.

    Es liegen also alle Datenbankobjekte im QSYS-Dateisystem gespeichert, aber nicht alle Objekte im QSYS-Dateisystem sind Datenbankobjekte. Über IFS kann auf alle QSYS-Objekte zugegriffen werden (mit Einschränkungen), aber es gibt im IFS weitere Objekte (Verzeichnisse, Stream-Files und Symbolic Links), auf die nicht über QSYS zugegriffen werden kann.

    Ich hoffe, das beantwortet die Ausgangsfrage.

    Mit freundlichen Grüßen,
    Christian Bartels.

Similar Threads

  1. iSeries Highlight 2007, das iNN - Partner Camp in Bad Nauheim
    By Kilianski in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 18-10-06, 08:46
  2. Ein paar Fragen zu DB2/AS400
    By Andreas.Meyer in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 03-08-06, 09:10
  3. MiDViSiON Ausstellerprofil: GOERING iSeries Solutions
    By Kirsten Steer in forum Archiv NEWSboard Events
    Antworten: 0
    Letzter Beitrag: 15-06-06, 07:45
  4. iNN - eNEWS - Das Wissen rund um die iSeries, kostenfrei !
    By Kilianski in forum Archiv NEWSboard Events
    Antworten: 1
    Letzter Beitrag: 10-05-06, 12:44
  5. Ein paar Fragen zum Thema CPW der AS400 ?
    By Carsten in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 28-01-02, 15:03

Berechtigungen

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