Von der DB2-Konsole zu REST-APIs: So modernisieren Sie Ihr AS/400-System mit Zeus-Commons-APIs

Image licensed by Ingram Image/adpic

Image licensed by Ingram Image/adpic

Die Welt der Backend-Entwicklung ändert sich rasant, aber einige Dinge bleiben gleich – wie die Herausforderungen bei der Arbeit mit Legacy-Systemen wie AS/400. Wenn Sie den Charme der DB2-Konsole genießen, haben wir etwas Interessantes für Sie. Während es durchaus machbar ist, mit den neuesten SQL-Erweiterungen von IBM direkt JSON und XML zu erzeugen, bringt dieser Ansatz einige Nachteile mit sich, wie mangelnde Wartbarkeit, Flexibilität und manchmal auch Performance.

Es ist jedoch wichtig zu wissen, dass diese Methoden existieren und ihren eigenen Wert haben, insbesondere in Umgebungen, die strikt auf DB2 beschränkt sind oder wo eine Modernisierung nicht einfach ist. In solchen Fällen können diese Funktionen eine Brückentechnologie sein, bis eine vollständige Modernisierung möglich ist.

Ein moderner und flexibler Ansatz ist, die Datenextraktion und -konvertierung von einer dedizierten Anwendungsschicht erledigen zu lassen. Genau das macht Zeus-Commons-APIs möglich. Und das Beste daran: Dieser Ansatz ist nicht nur auf DB2 beschränkt. Er funktioniert mit jeder Datenbank, für die ein JDBC-Treiber verfügbar ist. Lassen Sie uns einen Blick darauf werfen, wie Sie Ihr AS/400-System mit diesem Tool modernisieren könne

Sie haben vielleicht schon aus einem der vorherigen Beiträge von Zeus-Commons-APIs gehört und fragen sich, wie dieses Tool auf einem AS/400-System (auch bekannt als IBM System i) installiert und betrieben werden kann. Sie sind hier richtig! In diesem Artikel beschreibe ich die spezifischen Schritte, die notwendig sind, um Zeus-Commons-APIs auf der AS/400 zum Laufen zu bringen.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie bereits mit den Grundlagen von Zeus-Commons-APIs vertraut sind. Wenn das nicht der Fall ist, können Sie sich hier einen Überblick verschaffen.

1. Aktualisieren der pom.xml für db2/400

Zuerst müssen wir die pom.xml-Datei aktualisieren, um den DB2/400-Treiber hinzuzufügen. Suchen Sie nach folgendem Eintrag:

Einfach die Kommentarzeichen über und unter der neuen dependency entfernen.

In der aktuellsten Version auf GitHub habe ich das bereits für Sie erledigt.

<profile>
  <id>include-jt400</id>
  <dependencies>
    <!-- https://mvnrepository.com/artifact/net.sf.jt400/jt400 -->
    <dependency>
      <groupId>net.sf.jt400</groupId>
      <artifactId>jt400</artifactId>
      <version>20.0.3</version>
    </dependency>
  </dependencies>
</profile>

2. Konfigurationsanpassung

Navigieren Sie zu Zeus-Commons-APIs/src/main/resources/config/db2_400 und öffnen Sie die jdbc.properties Datei. Ändern Sie die Felder YOUR_SYSTEM_NAME_OR_IP, YOUR_USER und YOUR_PASS entsprechend.


#Database Connection
db.drv=com.ibm.as400.access.AS400JDBCDriver
db.url=jdbc:as400://YOUR_SYSTEM_NAME_OR_IP;translate binary=true
db.usr=YOUR_USER
db.pwd=YOUR_PASS
...

3. FAT-Jar bauen

Öffnen Sie die Konsole im Projektordner und führen Sie den Befehl  mvn clean package -P fat-jar,include-jt400  aus.

Weitere Infos zur Erstellung von Java-Anwendungen mit maven finden Sie hier.


4. Anwendung auf AS/400 übertragen

Jetzt kommt der spannende Teil: Wir übertragen das gebaute Jar-File auf unsere AS/400-Maschine. Dazu nutzen wir FTP:

  1. Öffnen Sie Ihre FTP-Client-Software (z. B. FileZilla).
  2. Verbinden Sie sich mit Ihrer AS/400-Maschine.
  3. Navigieren Sie auf Ihrem lokalen System zum Verzeichnis Zeus-Commons-APIs/target.
  4. Übertragen Sie zeus-commons-0.0.1-SNAPSHOT.jar in den Home-Folder Ihres Users der AS/400.

Weitere Infos zu Übertragung von Dateien via FTP sind sie hier.


5. Anwendung starten

  1. Melden Sie sich auf Ihrer AS/400 an.
  2. Öffnen Sie die QShell mit qsh.
  3. Wechseln Sie in den Home-Folder, in dem Sie das Jar-File abgelegt haben.
  4. Führen Sie den Befehl java -cp zeus-commons-0.0.1-SNAPSHOT.jar de.zeus.commons.provider.Provider "REST" "config/db2_400/jdbc.properties" "config/spark.properties" aus.

Sie sollten nun eine Erfolgsmeldung ähnlich dieser sehen, die bestätigt, dass der Service läuft.

2023-01-01 06:54:38 INFO session:132 - node0 Scavenging every 660000ms 
2023-01-01 06:54:38 INFO AbstractConnector:333 - Started ServerConnector@2090da2{HTTP/1.1, (http/1.1)}{0.0.0.0:4567} 
2023-01-01 06:54:38 INFO Server:415 - Started @2118ms

6. Testen der Anwendung

Verwenden Sie ein Tool wie Postman, um die Funktionalität der Anwendung zu testen. Senden Sie den folgenden JSON-Body via POST an your_system_or_ip:4567/json. Den Systemname bzw. -IP bitte auf Ihre Anforderungen anpassen.

{"query": {
  "name": "tables",
  "statement": "select * from sysibm.TABLES fetch first 30 rows only"
},
"includeMetadata": false
}

Beispieldaten (SQL-Skripte) verwenden

Fazit

Das war’s! Wenn Sie alle Schritte erfolgreich durchgeführt haben, sollte Zeus-Commons-APIs jetzt auf Ihrem AS/400-System laufen und bereit für Ihre Datenabfragen sein.