-
Zitat von Ottersberg
...Wie man etwas als Dienst implementiert auf der iSeries weiß ich zwar nicht, aber vielleicht unser iSeries-Mann.
Damit ist gemeint, dass das Javaprogramme 1x Tag gestartet und auf seine Arbeit wartet. Dadurch entfällt der ganze JIT-Teil bei den Folgeaufrufen.
Der einfachste Weg mit dem Javaprogramm (aus RPG/CL/Cobol) zu kommunzieren, ist über DataQueues.
Komplizierter wird es, wenn es nicht die Kommunikation keine Einbahnstrasse sein soll. Leider gibt es kein "Rahmenwerk" für die Java zu 3GL Kommunikation, sodass wohl jeder seine eigene Lösung hat.
Noch ein Vergleich:
Wenn eine Java-PDF-Wandlung vom "Stand aus" aufrufe, braucht sie ca. 30 Sekunden für das Umwandeln der Spooldatei. Der vorgestartete Serverdienst (über DataQueue) macht das in Sekundenbruchteilen!
/Robert
-
vielleicht sollten wir das mal ändern und eine Opensource Projekt hierzu aufmachen, ich würde meinen Java DataQ Listener einbringen - ich plane eh' den unter GNU License zu stellen
D*B
Zitat von RobertPic
Leider gibt es kein "Rahmenwerk" für die Java zu 3GL Kommunikation, sodass wohl jeder seine eigene Lösung hat.
/Robert
-
Ich habe das Prinzip verstanden. Das wäre auf jeden Fall besser, als das Programm jedesmal aufzurufen, wenn es etwas tun muss. Ich werde mich da mal einlesen und das Programm später umstellen. Fürs erste reicht das regelmäßige aufrufen aus.
-
Hallo!
Ich bekomme auch folgenden Fehler:
com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
WARNUNG: TDSChannel ( ConnectionID:1 TransactionID:0x0000000000000000) SSL handshake failed: null
Ich habe schon verschiedenste Treiber ausprobiert, aber keiner funktioniert.
(1.1 , 1.2 , JTDS)
Enweder kommt die Fehlermeldung von oben, oder "Fehler bei der Anmeldung von Benutzer".
Eigentlich müssten doch alle Zusatzprogramme installiert sein, um eine SSL Verbindung zu dem SQL Server 2005 herzustellen:
5722AC3 *INSTALLED Crypto Access Provider 128-bit
5722JC1 *COMPATIBLE Toolbox for Java
5722JV1 *COMPATIBLE Developer Kit for Java
5722JV1 *COMPATIBLE Java Developer Kit 1.3
5722JV1 *COMPATIBLE Java Developer Kit 1.4
5722JV1 *INSTALLED Java Developer Kit 1.5
2MEBEFF *INSTALLED Signature/Encryption
Hier der Code usw.
MC Press Online - Query Remote Database Tables from the iSeries Using SQL and Java
Gruß und Frohes Neues Jahr,
Henning
-
... das sieht nach einem Problem aus, dass mit dem verwendeten Treiber und der Java Umgebung zusammenhängt. Das sollte mit einer älteren Treiber Version oder einem alternativen Treiber eines anderen Herstellers zu lösen sein. (Auch Treibereinstellungen beim Connect könnten helfen, wenn man Diskussionen in anderen Foren glauben darf).
Ansonsten wäre es natürlich sinnvoller den eigenen Code und die verwendete URL zu posten statt eines Artikels!
Dennoch rate ich von solchen Wackelhaufen ab, das krankt an den selben Ecken wie die direkten RPG Aufrufe:
- erster Aufruf im Job Grotten langsam
- skaliert miserabel, da pro Job eine eigene JVM aufgemacht wird
- Java Umgebung nicht zuverlässig steuerbar, da implizit gestartet
- spätestens wenn man das mit RPG Java Calls mixt, fällt der Haufen um
- Fehler Analyse nahezu unmöglich
mfg
Dieter Bender
Zitat von LindnerSpezial
Hallo!
Ich bekomme auch folgenden Fehler:
com.microsoft.sqlserver.jdbc.TDSChannel enableSSL
WARNUNG: TDSChannel ( ConnectionID:1 TransactionID:0x0000000000000000) SSL handshake failed: null
Ich habe schon verschiedenste Treiber ausprobiert, aber keiner funktioniert.
(1.1 , 1.2 , JTDS)
Enweder kommt die Fehlermeldung von oben, oder "Fehler bei der Anmeldung von Benutzer".
Eigentlich müssten doch alle Zusatzprogramme installiert sein, um eine SSL Verbindung zu dem SQL Server 2005 herzustellen:
5722AC3 *INSTALLED Crypto Access Provider 128-bit
5722JC1 *COMPATIBLE Toolbox for Java
5722JV1 *COMPATIBLE Developer Kit for Java
5722JV1 *COMPATIBLE Java Developer Kit 1.3
5722JV1 *COMPATIBLE Java Developer Kit 1.4
5722JV1 *INSTALLED Java Developer Kit 1.5
2MEBEFF *INSTALLED Signature/Encryption
Hier der Code usw.
MC Press Online - Query Remote Database Tables from the iSeries Using SQL and Java
Gruß und Frohes Neues Jahr,
Henning
-
Hallo!
So, ich habe das soweit zum Laufen bekommen. Der lokale SQL-Server Benutzer hat für die Verbindung nicht funktioniert. Warum auch immer!
Mit einem Domänen Benutzer der auch die Datenbankrechte hat und dem JTDS Treiber klappt jetzt der Verbindungsaufbau.
Da das Java Programm ja im Batch aufgerufen wird, gibt es keine Möglichkeit, das Programm zu debuggen.
Gibt es denn andere Möglichkeiten die Fehler auszugeben(System.out.println...)? Oder Log's auf der AS zu schreiben? Man könnte natürlich auch aus dem Java Programm in eine AS Datei mit einem langen String Feld schreiben. Aber geht das nicht irgend wie besser/anders?
Gruß
Henning
-
in Java verwendet man Standard mäßig log4j für sowas. Damit kann man extern konfigurieren wieviel aus welcher class wohin und wie formatiert ausgegeben wird und es gibt fertige Freeware Programme zum anzeigen und filtern der log Ausgaben. In der Applikation wird dann ein Logger erzeugt und mit unterschiedlichen Prioritten ausgegeben.
Für Arme und Kranke gibt es auch noch System.err.println() und Co.
D*B
Zitat von LindnerSpezial
Hallo!
So, ich habe das soweit zum Laufen bekommen. Der lokale SQL-Server Benutzer hat für die Verbindung nicht funktioniert. Warum auch immer!
Mit einem Domänen Benutzer der auch die Datenbankrechte hat und dem JTDS Treiber klappt jetzt der Verbindungsaufbau.
Da das Java Programm ja im Batch aufgerufen wird, gibt es keine Möglichkeit, das Programm zu debuggen.
Gibt es denn andere Möglichkeiten die Fehler auszugeben(System.out.println...)? Oder Log's auf der AS zu schreiben? Man könnte natürlich auch aus dem Java Programm in eine AS Datei mit einem langen String Feld schreiben. Aber geht das nicht irgend wie besser/anders?
Gruß
Henning
-
Danke für die schnelle Antwort!
Gibt es denn irgendwo eine Anleitung, wie man Log4j auf der iSeries installiert und benutzt? Muss man dafür auch Apache installieren?
Ist es da auch möglich bestimmte Variablen je nach Bedarf auszugeben?
Gruß Henning
-
http://www.johnmunsch.com/projects/P...0Or%20Less.ppt
oder einfach mal mit log4j und Tutorial googeln oder yahoochzen
Ansonsten lädt man sich das jar Archiv für log4j von Apache, sorgt dafür, dass es die Applikation im classpath hat und los gehts. Ausgabe von Variablen geht da, wie das in Java immer geht, findet man aber auch Beispiele zu in allen Tutorials.
D*B
der dazu rät doch mal über das erarbeiten von ausreichenden Grundkenntnissen nachzudenken, sonst kann das Lehrgeld in Form von vergurkten Projekten kosten!
Zitat von LindnerSpezial
Danke für die schnelle Antwort!
Gibt es denn irgendwo eine Anleitung, wie man Log4j auf der iSeries installiert und benutzt? Muss man dafür auch Apache installieren?
Ist es da auch möglich bestimmte Variablen je nach Bedarf auszugeben?
Gruß Henning
-
Man kann ganz einfach entsprechende Ausgaben mit system.out bzw. system.err erstellen.
Für die Ausgabe kann man beim Starten eine Ausgabeumleitung in eine PF angeben:
java .... >/qsys.lib/mylib.lib/myfile.file/myfile.mbr 2>/qsys.lib/mylib.lib/myerr.file/myerr.mbr
-
einfach ist nicht immer einfacher, ich würde schon zu log4j raten,
- da kann man DodUnnDeufel extern konfigurieren
- da kommen Timestamps, ThreadId und sowas automatisch
- da kann man Logdateien rollieren lassen
- da kann man Logdateien automatisch verwalten lassen
...
D*B, der einen Hauch von Handke verspürt:
"Die Angst des RPG Programmierers vor dem Framework"
Zitat von Fuerchau
Man kann ganz einfach entsprechende Ausgaben mit system.out bzw. system.err erstellen.
Für die Ausgabe kann man beim Starten eine Ausgabeumleitung in eine PF angeben:
java .... >/qsys.lib/mylib.lib/myfile.file/myfile.mbr 2>/qsys.lib/mylib.lib/myerr.file/myerr.mbr
-
Ich probiere gerade das Log4j einzubauen!
import org.apache.log4j.*;
private static Logger logger = Logger.getLogger( ExtDBsql.class );
SimpleLayout layout = new SimpleLayout();
ConsoleAppender consoleAppender = new ConsoleAppender( layout );
logger.addAppender( consoleAppender );
FileAppender fileAppender = new FileAppender( layout, "MeineLogDatei.log", false );
logger.addAppender( fileAppender );
// ALL | DEBUG | INFO | WARN | ERROR | FATAL | OFF:
logger.setLevel( Level.WARN );
Wie gibt man denn eine Datei im IFS an, in die die Logdaten geschrieben werden?
Es gibt zwar viel im Internet zu finden, aber meistens nur für PC's und nicht für die iSeries.
Danke im voraus
Gruß
Henning
Similar Threads
-
By PeterKarsten in forum IBM i Hauptforum
Antworten: 8
Letzter Beitrag: 20-08-08, 12:52
-
By linguin in forum NEWSboard Linux
Antworten: 0
Letzter Beitrag: 03-01-07, 08:22
-
By cami in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 27-08-06, 17:31
-
By Christian.Hesse in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 04-08-06, 10:04
-
By binhierneu in forum NEWSboard Java
Antworten: 7
Letzter Beitrag: 19-10-04, 21:02
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