Zitat Zitat von tarkusch Beitrag anzeigen
Wie ist das gemeint?
Schreibe ich dann ein ServiceProgramm, welches das Java-Pgm aufruft?

Code:
     D getExampleValue...
     D                 PR             8F   ExtProc(*JAVA:
     D                                      'com.npci.cloud.iseries.+
     D                                       CALIB.CA9050JSRV':
     D                                      'getExampleValue')
     D  company                      10I 0 VALUE
     D  store_number                 10I 0 VALUE
     D  bus_date                     10I 0 VALUE
Sorry, ich stehe bei diesem Thema völlig auf der Leitung.
... ich habe mit AMQP keine eigene Erfahrung und finde für meinen Geschmack bei den Stichworten AMQP und insbesondere RabbitMQ zuviel Rauch (reichlich Schlagworte vertreten) und zu wenig Feuer (Inhalt!).

Synchrone Aufrufe von Java per RPG JNI würde ich prinzipiell vermeiden, das skaliert nicht vernünftig und freut allenfalls IBM und JSON Verarbeitung per RPG ist für mich ungefähr genauso sinnvoll, wie das schreiben einer Dialoganwendung mit CL. Sicherlich geht vieles, wenn man die limitierten Möglichkeiten einer Programmiersprache trickreich ausreizt und als technisches Muster mag das auch Spass machen, aber andere sollen das ja dann auch verstehen, verwenden, Fehler analysieren und Änderungen vornehmen können.
Ohne die wirkliche Aufgabenstellung zu kennen, ist es immer schwierig Ratschläge zu geben (eines der großen Probleme in Foren), versuche ich es trotzdem wieder mal:
Wenn ich denn als Client einen mehr oder weniger nebulösen Serverdienst verwenden muss, dann suche ich erst mal eine möglichst standardisierte Implementierung, der ich vertraue (bei RabittMQ hätte ich da erst mal Probleme), Java oder .Net geht (fast) immer, ich würde Java vorziehen, weil ich das besser beherrsche und eine eigene Middleware (ist auch Open Source) für performante Schnittstellen zwischen Java und AS/400 native (sprich RPG) habe.
Aus der fachlichen Analyse bekomme ich dann (Wunsch) Schnittstellen in RPG Denke und Notation, vorstellbar als Prototyp in der Form:

d getSomeDS PR like(someDS)
d EXPROC('SRVPGMXXX_getSomeDS')
d someInfo like(someInfo)

Das gesamte JSON Geschäft, inklusive Transfer der DS someInfo) nach JSON und Extraktion von someInfo aus der Anwort des Serverdienstes würde ich in Java machen. Im Java erfolgt dann auch der Aufruf des eigentlichen Serverdienstes, zusätzlich natürlich auch einstellbare Protokollierungen per log4j etc.

D*B