-
Hallo Dieter, und *all
ich möchte mich an dieser Stelle für deine Unterstützung und Hilfe und auch allen anderen mal bedanken. Ich hoffe wir machen in dem Forum so weiter.
Zum Thema: Das Java Programm erhält mehrere Eingangsparameter
1. Ein SQL Selectstring
2. Bibliotheksnamen
3. DTAQ Namen
Im Programm wird das SQL ausgeführt und die resultierenden Daten werden in die DTAQ geschrieben.
Die aufrufenden Anwendungen können nun die Daten aus der
DTAQ verarbeiten.
Für mich ist dieses kleine Progrämmchen erstmal der Einstieg
in die Java Umgebung und alles weitere wird man sehen.
Direkt noch eine Frage:
Kann man eigentlich die Feldbeschreibungen(COLHDG)
auch in dem Result Set finden ?
Viele Grüße an alle
Michael
-
Hallo,
so ähnlich habe ich das vermutet.
Du rufst ein main auf, kannst da nix zurück geben und brauchst dafür die DTAQ. Dazu gibt es zwei Alternativen:
- dur rufst keine main auf, sondern eine normale Objekt Methode mit Rückgabe Möglichkeit. Dazu müsstest du aus dem RPG ein Objekt deiner Jaav Klasse erzeugen und könntest dann aufrufen (ist immer noch in RPG gedacht).
- aus Java Sicht ist das ganze ein Server Dienst, den man asynchron über eine Q anticken kann. Dazu stellst du das ganze so um, dass die Anforderung über eine EingangsQ kommt, ergänzt um die Angabe wohin geantwortet werden soll (so ne art session).
Diesen Java Server startest du jetzt per SBMJOB ein einziges Mal und in deinem Server liest du dann (selbstredend nicht in der Main) in einer Schleife aus der DTAQ (mit wait -1) und dann weiter wie gehabt. Einfacher zu programmieren, geht ab wie Schmidts Katze da der Start Overhead wegfällt, zieht viel weniger essourcen, da nur eine JVM für alle. Und du hast im RPG allen Java Kram vom Hals und brauchst nur DTAQ!
An die Feldbeschreibungen müsste man eigentlich über MetaData drankommen (oder notfalls aus dem Repository)
mfg
Dieter Bender
 Zitat von mk
Hallo Dieter, und *all
ich möchte mich an dieser Stelle für deine Unterstützung und Hilfe und auch allen anderen mal bedanken. Ich hoffe wir machen in dem Forum so weiter.
Zum Thema: Das Java Programm erhält mehrere Eingangsparameter
1. Ein SQL Selectstring
2. Bibliotheksnamen
3. DTAQ Namen
Im Programm wird das SQL ausgeführt und die resultierenden Daten werden in die DTAQ geschrieben.
Die aufrufenden Anwendungen können nun die Daten aus der
DTAQ verarbeiten.
Für mich ist dieses kleine Progrämmchen erstmal der Einstieg
in die Java Umgebung und alles weitere wird man sehen.
Direkt noch eine Frage:
Kann man eigentlich die Feldbeschreibungen(COLHDG)
auch in dem Result Set finden ?
Viele Grüße an alle
Michael
-
Hallo dieter,
okay soweit habe ich das verstanden.
Ich rufe allerdings im RPG nicht die Main Methode sondern die
Verarbeitungsmethode auf. Soweit klappt das jetzt auch.
Frage : Gibt es denn im RPG soetwas wie das ResultSet im Java?
Mit der Serverjob Variante das werde ich mir noch überlegen.
Danke und schönes Wochenende( zumindest den Rest davon)
Gruss Michael
-
Hallo Michael,
wenn du nicht die main aufrufst, brauchst du die DTAQ nicht. Du kannst dir allerdings nur elementare Variablen und Strings ins RPG zurück geben lassen, das beantwortet auch die Frage mit dem ResultSet. Du musst dann aus dem RPG das ResultSet soweit durchhampeln bis du was zurück bekommst, was du ins RPG mapen kannst.
Der Haken an der Sache überhaupt ist allerdings das starten einer JVM aus RPG heraus, das hat immensen Overhead, verbraucht immens Ressourcen (deshalb empfiehlt IBM das wohl) und instabil ist es auch noch, da nach dem Müller Prinzip gearbeitet wird: der erste ruft die JVM so auf wie er das will (classpath etc.) die folgenden müssen sehen wie sie zurecht kommen.
Meine klare Empfehlung: Finger weg von diesem Mix!!!
Dieter Bender
 Zitat von mk
Hallo dieter,
okay soweit habe ich das verstanden.
Ich rufe allerdings im RPG nicht die Main Methode sondern die
Verarbeitungsmethode auf. Soweit klappt das jetzt auch.
Frage : Gibt es denn im RPG soetwas wie das ResultSet im Java?
Mit der Serverjob Variante das werde ich mir noch überlegen.
Danke und schönes Wochenende( zumindest den Rest davon)
Gruss Michael
-
Hallo Dieter, Hallo Michael
 Zitat von BenderD
aus Java Sicht ist das ganze ein Server Dienst, den man asynchron über eine Q anticken kann....geht ab wie Schmidts Katze da der Start Overhead wegfällt, zieht viel weniger essourcen, da nur eine JVM für alle
Um nur ein Beispiel zu nennen: Meine Spool2PDF-Umwandlung dauert beim Erstaufruf ca. 30-40 Sekunden, obwohl alle betoffenen Objekte mit Level 40 optimiert sind.
Die Folgeaufrufe gehen in 2-3 Sekunden über die Bühne.
Meine Serverjobs sind zwar (noch) nicht "Java-rein", aber spätetstens ab dem 2. Javapgrogramm wird es 2 Java-Serverjobs geben. Zwei deshalb, weil wir die Serverjobs zwischen dringend (User wartet auf Eregebnis z.B. Gewicht von Waage) und "darf etwas dauern" (e-mail/fax) unterscheiden.
Natürlich sind neue Serverjobs immer mit Arbeit verbunden (beim Starten aufdrehen, beim Sichern abdrehen bzw. auf das Ende warten ....), deshalb neigt man dazu auch Lösungen ohne neue Serverjobs in Betracht zu ziehen....
Einzig offene Frage für mich: Ob eine Parameterstruktur im DataQueue-Eintrag, der Weisheit letzter Schluss ist. Ich versehe die Dinger zwar immer mit einer Versionsnummer, aber so eine Art Properiesformat in einem DataQueue-Eintrag wäre mir lieber.
 Zitat von BenderD
man sieht den Java Klassen meist an, ob sie von einem RPG Programmierer geschrieben wurden; ...Problem ist dabei halt nur, dass der Versuch Java so zu programmieren wie RPG, zu einem Design führt, bei dem man von einem Problem ins nächste stolpert, von denen man kein einziges hätte, wenn das Design Objekt orientiert und Java angemessen wäre.
Leider lassen sich 16 Jahre (inkl. Schulzeit) prozedurales Programmieren nicht so einfach "ausblenden". Ohne "nachdenken", "sprudelt" es halt nur strukturierte Programme aus dem "Hirn" - aber das gibt sich auch noch....
Im Gegensatz zu VB/VBA/Access ist Java gnadenlos (s.o.) konsequent. Während man in VB... kaum Probleme mit dem "alten Stil" hat, sucht man bei Java z.B. vergeblich nach einem Case für Strings...
LG
Robert P.
-
Hallo Robert,
wie so ein Server Dienst von der Parameterschnittstelle her aussehen soll? ich bin mir da auch noch nicht so ganz sicher; vielleicht IBMs Arbeit gemacht, ein remote JNI (Java native Interface) geschrieben und einen kleinen Pre Compiler der aus dem ganzen *JAVA Quatsch in RPG die erforderlichen Aufrufe generiert. Für kleinere Sachen würde ich das auch so ähnlich machen, wie du, vielleicht ein bisschen professioneller, ich habe ein wenig Erfahrungs Vorsprung.
Zu den mehreren Diensten und Prioritäten, Java hat das schon, die Server können Multithreaded sein.
mfg
Dieter Bender
 Zitat von RobertPic
Hallo Dieter, Hallo Michael
Um nur ein Beispiel zu nennen: Meine Spool2PDF-Umwandlung dauert beim Erstaufruf ca. 30-40 Sekunden, obwohl alle betoffenen Objekte mit Level 40 optimiert sind.
Die Folgeaufrufe gehen in 2-3 Sekunden über die Bühne.
Meine Serverjobs sind zwar (noch) nicht "Java-rein", aber spätetstens ab dem 2. Javapgrogramm wird es 2 Java-Serverjobs geben. Zwei deshalb, weil wir die Serverjobs zwischen dringend (User wartet auf Eregebnis z.B. Gewicht von Waage) und "darf etwas dauern" (e-mail/fax) unterscheiden.
Natürlich sind neue Serverjobs immer mit Arbeit verbunden (beim Starten aufdrehen, beim Sichern abdrehen bzw. auf das Ende warten ....), deshalb neigt man dazu auch Lösungen ohne neue Serverjobs in Betracht zu ziehen....
Einzig offene Frage für mich: Ob eine Parameterstruktur im DataQueue-Eintrag, der Weisheit letzter Schluss ist. Ich versehe die Dinger zwar immer mit einer Versionsnummer, aber so eine Art Properiesformat in einem DataQueue-Eintrag wäre mir lieber.
Leider lassen sich 16 Jahre (inkl. Schulzeit) prozedurales Programmieren nicht so einfach "ausblenden". Ohne "nachdenken", "sprudelt" es halt nur strukturierte Programme aus dem "Hirn"  - aber das gibt sich auch noch....
Im Gegensatz zu VB/VBA/Access ist Java gnadenlos (s.o.) konsequent. Während man in VB... kaum Probleme mit dem "alten Stil" hat, sucht man bei Java z.B. vergeblich nach einem Case für Strings...
LG
Robert P.
Similar Threads
-
By TARASIK in forum IBM i Hauptforum
Antworten: 21
Letzter Beitrag: 30-03-11, 13:48
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By codierknecht in forum NEWSboard Java
Antworten: 7
Letzter Beitrag: 23-03-05, 08:31
-
By mk in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 09-09-04, 08:22
-
By WPF in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 09-07-04, 09:30
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks