zur Homepage

 

Application Server für RPG

Aufruf von Java Komponenten aus RPG

Download AppServer4RPG.ZIP

Nachdem ich ja in meinen Java auf AS400 FAQs immer heftigst von RPG Java Calls per JNI Support des RPG Compilers abgeraten habe und dort und auch auf Vorträgen und in Artikeln auf die Alternativen mit einem Java Komponenten Server für RPG verwiesen habe, stelle ich immer wieder fest, dass viele RPG Programmierer sich in RPG um ein vielfaches mehr heimisch fühlen als in Java, dass sie eher Programme mit embedded Java in RPG in Kauf nehmen als sich mal ein wenig mehr mit Java Anwendungsdesign zu befassen. Es wird mir wohl nur in Ausnahmefällen gelingen daran grundlegendes zu ändern, aber erleichtern kann man das denen, die das wollen doch.

Ich habe also nunmehr aus meinem Projekt Gleiberg ein Framework gemacht und jetzt auf meine Open Source Seite gestellt. Die Tatsache, dass es dafür eine eigene Seite gibt und diese im Toplevel verlinkt ist, lässt erahnen und hoffen, dass hier noch nähere Erläuterungen und Anleitungen folgen werden. Damit diese Absichten die Veröffentlichung nicht länger hinauszögern und weil das ganze auch auf SourceForge landen soll habe ich es im Augenblick bei einer englischen Anleitung belassen, die als Howto.html im zum Download bereitgestellten Archiv AppServer4RPG.ZIP enthalten ist.

Zur Zeit liegt der Schwerpunkt auf der Entwicklung des Transparenr Gateways, so dass im Augenblick einiges im Fluss ist. Was AppServer4RPG angeht, sind im Zuge dessen einige Bug Fixes erfolgt und als wichtigste Neuerung die Aufteilung der Nachrichten in Pakete, die die Anpassunge der Größe der DataQ überflüssig macht.

Die aktuellen Quellen und die komplette Distribution steht auf Sourceforge bereit.


ArdGate - Zugriff von DB2/400 auf (fast) alle Datenbanken des Marktes

ArdGate ermöglicht den SQL Zugriff von der AS/400 auf alle Datenbanken, für die ein JDBC Treiber verfügbar ist. Der Zugriff erfolgt wie jeder SQL Zugriff auf eine andere AS/400, der Unterschied zum lokalen Zugriff besteht nur in einer Connect Anweisung zu Beginn und kann aus embedded SQL in RPG oder COBOL oder im interaktiven SQL (STRSQL) oder auch aus QMQRY erfolgen, die SQL Zugriffe selber erfolgen völlig identisch mit lokalen Zugriffen, auf die SQL Dialekte der Zieldatenbank muss selbstverständlich geachtet werden. Es sind noch nicht alle SQL Features implementiert, aber es ist bereits Satzweise Verarbeitung und nach Cursor mit Host Variablen einsetzbar, mit dynamischem SQL wird die gesamte Breite dessen, was die Schnittstelle seitens DB2 hergibt abgedeckt. An der weiteren Komplettierung wird gearbeitet.

Die remote Datenbank wird ganz normal im Remote Database Directory der AS/400 eingetragen, zusätzlich muss für jeden Eintrag der JDBC Treiber in einer Property Datei mit zwei Einträgen konfiguriert werden. Zusätzliche Treiber und andere Komponenten werden einfach in das lib Verzeichnis kopiert. Der Startprozess ermittelt dann den Classpath automatisch. ArdGate setzt auf der AS/400 SchnittstelleSQL Client Integration Exit Program(auch als *ARDPGM bekannt) auf. Als Schnittstellenprogramm wird ein RPG Programm eingetragen, das mit dem Javateil von ArdGate ber AppServer4RPG per DataQ kommuniziert. Die Anwendung ist bis auf die RPG Schnittstelle komplett in Java geschrieben und kann sowahl auf der lokalen AS/400, als auch auf einer anderen, beliebigen Java Plattform laufen. Der komplette Javateil inklusive AppServer4RPG kann dabei als Batchjob auf einer AS/400, als Anwendung in einem WebServer (Tomcat, WebSphere...), als Dienst auf einer Windows Maschine, oder als Dämon auf einer Linux oder anderen Unix Plattform installiert werden. ArdGate ist Multithreaded und kann gleichzeitig mehrere Clients mit einer JVM, die Speicher resident geladen bleibt, bedienen.

ArdGate ist mittlerwiele in mehreren Installationen als Ersatz für das nicht mer unterstützte Oracle Transparent Gateway im Einsatz. Dazu müssen derzeit die Programme noch umgestellt werden (was aber auf Anforderung in einem gesponsorten Projekt änderbar wäre.

Installationsunterstützung und Schulungen auf Anfrage.

Mit ArdGate ist die erste OpenSource Anwendung basierend auf AppServer4RPG in einem einsetzbaren Betastand verfügbar, weitere sollen folgen.

CommandGate

Java Integration in RPG Anwendungen sieht am Anfang oft so aus, dass aus RPG oder CL ein kleines Java Programm aufgerufen wird, das eine Kleinigkeit erledigt, die in Java einfacher erledigt wird, als in RPG. Dann sitzt man nicht nur und wartet, sondern wenn das mehrere auch machen wollen, dann wartet alles darauf, dass die Ressourcen wieder frei werden. IBM freut sich, die Anwender ärgern sich über die Warterei, die Programmierer schimpfen auf Java, das ja sooo langsam ist.

Damit das endlich mal aufhört und man mal sieht, wie schnell das gehen könnte, habe ich eine Mini Anwendung fär AppServer4RPG geschrieben, die das in weniger als einem Zehntel der Zeit, mit einem Bruchteil an Ressourcenverbrauch erledigt. Das ist keine Zauberei, sondern der Aufruf wird in einer vorgestarteten JVM ausgefährt, die Multithreaded alle diese Aufrufe parallel abarbeitet.

Verfägbar ist das ebenfalls auf der SourceForge Seite.zur Homepage