[NEWSboard IBMi Forum]
Seite 3 von 3 Erste ... 2 3
  1. #25
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... es geht selber bei den Experten wüst durcheinander, sobald das Thema Binder Language ins Spiel kommt.
    Ein einfaches Szenario, warum ich keine Binder language verwende:
    Ich habe ein Service Programm DasWirdNix in Produktion, das bereits n Exporte hat.
    Im Rahmen eines Hotfixes 1 kommt ein Export hinzu.
    Im Rahmen eines anderen Hotfixes entsteht eine Variante, die ebenfalls einen Export mehr hat.
    Das ist jetzt nicht mehr elementar konsolidierbar - mache ich keinen Rebind knallts im buchstäblichen Sinne irgendwo - und das bei jeder folgenden Änderung!!!

    Noch ein paar Marginalien:
    Ohne Binder Language werden die Exporte alphabetisch sortiert (impliziert auch CCSID des Jobs!!!), da wird also nicht "hinten" angehängt, da wird einsortiert, unabhängig davon, wo ich den Export physikalisch in der Quelle platziere!!!

    Aktivierungszeiten werden dominiert von der Speicher Allokation und dem eventuellen öffnen von Dateein und solchem - alles andere kann man vernachlässigen. Auch den Unterschied zwischen statischem und dynamischem Aufruf kann man getrost vernachlässigen. Am einfachsten macht man hier was falsch mit Riesen Service Programmen (deshalb hat man ja auch des verzögerte binden eingeführt).

    Wenn das mit einem einfachen Command ohne Binder Language geht und man nix falsch machen kann, dann gehört das ins Betriebssystem und dann ist mir das auch Wurscht...
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  2. #26
    Registriert seit
    Aug 2014
    Beiträge
    179
    wie wärs mal mit Pointern?

    Ich denke, das Problem das du ansprichst, hat damit zu tun, dass die Summe der Variablen in einem RPG-Programm, einschließlich der Variablen in Prozeduren, 16MB nicht übersteigen darf.

    Mittlerweile bietet das Teraspace-Konzept die Möglichkeit, über Pointer in einem Programm Speicher in Terabyte-Größen zu addressieren.

    Auch die IBM API's nutzen Pointer zur Kommunikation z.B. das API iconv, mit dem man einen String von einer CCSID in eine andere konvertieren kann oder das API cvthc (convert character to hex).

    Anbei zwei Programme, die mit Pointern kommunizieren. Performanceprobleme, wie bei der Übergabe von großen Variablen treten hier nicht auf. Das aufgerufe Programm ist bereits mit dem neuen allfree RPG geschrieben, das rufende ist noch old fashioned.

    Das aufgerufene Programm entfernt einen ungültigen Hexcode aus einem String, der maximal 16MB groß ist.

    Wichtig: Im Header muss alloc(*teraspace) angegeben werden, dann werden statt 8, 16 Byte große Pointer benutzt.

    kleiner Tipp: große Variablen nicht mit *blanks initialisieren, sondern mit clear, das spart Performance.

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i
    Angehängte Dateien Angehängte Dateien

  3. #27
    Registriert seit
    Feb 2001
    Beiträge
    20.248
    Dann hast du Teraspace falsch verstanden.
    Default ist jeder Pointer 16-Byte, nämlich als Pointer definiert. Mit Teraspace reduziert sich der Pointer auf 8 Byte und dann als Zahl, da Pointer vom MI-Typ her 16-Byte sind. Dies ist auch eher der C-Fraktion geschuldet.
    Die 16-MB-Grenze galt nur für eine DS. Man kann also durchaus mehr als 16 MB verarzten.
    Außerdem stehen %alloc()-Funktionen zur Verfügung um dynamischen Speicher zu ergattern (bis die Platte platzt).

    Pointer lösen nicht das Problem sondern verschlimmern es sogar noch, da nicht mal der Compiler mehr die Typisierung prüfen kann (die zur Laufzeit sowieso nicht existent ist).
    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. #28
    Registriert seit
    Aug 2014
    Beiträge
    179
    Danke für die Info,

    dann lese ich das im Handbuch nochmal nach.

    Herzliche Grüße
    Rainer Ross
    www.myhofi.com
    schnelle und komfortable Hotelsuchmaschine mit Volltextsuche – powered by IBM i

Similar Threads

  1. Foxtrot erledigt Datawarehouse/MIS Funktionen
    By Dick Dekker in forum NEWSboard Server Software
    Antworten: 0
    Letzter Beitrag: 14-01-03, 14:14
  2. Antworten: 0
    Letzter Beitrag: 04-07-02, 06:31

Tags for this Thread

Berechtigungen

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