-
Zugriff SQL Server per RPG
Hallo,
ich möchte über ein RPG Programm auf SQL Server 2022 Datenbanken zugreifen können. Da dies irgendwie über JDBC Treiber möglich sein soll, möchte ich dieses Forum kontaktieren.
Ev. gibt es eine ausführliche Doku zu diesem Thema. Am besten wäre natürlich ein vorhandenes Beispiel zu meinem Problem.
Liebe Grüße aus Oberösterreich
Hermann
-
Schaust Du dir mal Ardgate/Appserver von Dieter Bender an.
https://sourceforge.net/projects/appserver4rpg/
Dieter ist auch hier im Forum anwesend. Ich denke er hilft dir gerne bei Fragen.
kf
-
Ich würde dir da direkt Java empfehlen, da Java sowohl auf DB2 als auch SQL-Server native per JDBC zugreifen kann und zusätzliche Batchjobs wie Ardgate nicht erforderlich sind.
Auch ist die ernsthafte Frage, wie lange ArdGate noch gepflegt wird.
Ich weiß nicht, ob es je einen Nachfolgepflleger gibt.
Auch auf Windows/Linux-Büxen gibts genug Tools, die das sehr gut können, z.B. Talend Open Studio.
Letzteres hat auch grafische Frontends für komplette, automatisierbare, Worklflows.
Und wenn dir dies zu kompliziert ist, kann das letztlich der SQL-Server native ebenso.
Man richtet da einen Verbindungsserver zur DB2 for i ein und kann Daten lesen, schreiben, löschen, ebenso mit simplen SQL-Befehlen.
-
Hallo
Vielen Dank für Eure Antworten! Wir müssen direkt aus einer RPG Anwendung DAten auf einen SQL Express Server 2022 schreiben bzw. lesen (autom. Lagersystem von Kardex). Ich habe am Wochenende im Internet etwas recherchiert und bin auf die Module und Serviceprogramme von Scott Klement gestoßen die auf mich relativ einfach wirken. Nach einigen Versuchen am Weochenende bin ich meiner Meinung nach schon relativ weit nur denke ich, dass mir der korrekt Treiber für die JDBC Verbindung fehlt. Ich habe die Treiber mssql-jdbc-12.4.2.jre11.jar und mssql-jdbc-12.6.3.jre8.jar ausprobiert (ADDENVVAR). Mein Verbindungsstring im RPG Programm sieht wie folgt aus:
conn = JDBC_ConnProp('com.microsoft.sqlserver.jdbc.SQLSer verDriver'
: 'jdbc:sqlserver://AT3DBKADX1:1433'
: prop);
Der Parameter prop enthält lediglich den Namen der Datenbank, den Benutzer und das Kennwort.
Von JAVA bekomme ich dann folgende Meldung retour:
Exception in thread "main" java.lang.UnsupportedClassVersionError: JVMCFRE199E bad major version 55.0 of class=com/microsoft/sqlserver/jdbc/SQLServerDriver, the maximum supported major version is 52.0; offset=6
at java.lang.ClassLoader.defineClassImpl(Native Method) at java.lang.ClassLoader.defineClassInternal(ClassLoa der.java:399)
at java.lang.ClassLoader.defineClass(ClassLoader.java :360)
at java.security.SecureClassLoader.defineClass(Secure ClassLoader.java:154)
at java.net.URLClassLoader.defineClass(URLClassLoader .java:730)
at java.net.URLClassLoader.access$400(URLClassLoader. java:96) at java.net.URLClassLoader$ClassFinder.run(URLClassLo ader.java:1187)
at java.security.AccessController.doPrivileged(Access Controller.java:782)
at java.net.URLClassLoader.findClass(URLClassLoader.j ava:605)
at java.lang.ClassLoader.loadClassHelper(ClassLoader. java:950)
at java.lang.ClassLoader.loadClass(ClassLoader.java:8 95)
at sun.misc.Launcher$AppClassLoader.loadClass(Launche r.java:353)
at java.lang.ClassLoader.loadClass(ClassLoader.java:8 78)
Da ich von JAVA keine Ahnung habe sagen mir diese Protokolleinträge eher nichts!
Ich denke, dass der Verbindungsaufbau schon relativ weit ist und dass nur der entsprechende Treiber (welcher?) fehlt.
Vielen Dank im Voraus
Hermann
-
Dein Java-Program (bzw. die JAR-Files) sind nicht für die Java-Version die du verwendest kompatibel.
Welche Java-Version verwendest du?
Ich würde dir hier auch Ardgate empfehlen.
Java sollte eigentlich nie direkt in Applikationen aufgerufen werden, sondern als Service im Batch laufen.
-
Das Problem ist hier i.d.R. der SQL-Server Express.
Dieser wird häufig als interne Datenbank innerhalb einer Anwendung verwendet und ist von extern gar nicht erreichbar, da der IP-Zugang nicht geöffnet wird.
-
Das Programm kommt nicht mal soweit, sonst wäre die Fehlermeldung ein Timeout oder Connection Refused.
Die Verfügbaren Java-Versionen solltest du in /QOpenSys/QIBM/ProdData/JavaVM/ finden.
Und in der QSH kannst du via java -version prüfen, welche gerade im Zugriff ist.
-
Per QSH kannst du "java -version" aufrufen und du musst dann den passenden Treiber von Microsoft laden:
https://learn.microsoft.com/de-de/sq...cation-support
-
... ganz so einfach ist das leider nicht. MS SQL Server hat Anforderungen was die Mindestversion des Treibers angeht, der Treiber hat Anforderungen, was die Mindestversion von Java angeht, die AS/400 hat Einschränkungen, was die höchste unterstützte Java-Version angeht.
Auch hier hat ArdGate Vorteile, weil der Serverteil auch auf einer beliebigen anderen Büchse im Netz laufen kann. Was den Support angeht, ist ArdGate gegen die anderen Varianten klar im Vorteil, weil die Technologien (RPG - Java) klar entkoppelt sind. Zur Fehleranalyse im Java Teil bracuht man keinerlei AS/400 Knowhow, für Analysen im native Teil braucht man keinerlei Java Knowhow. Zudem verfügt ArdGate über skalierbares logging zur Problemanalyse (ich habe bisher für Support noch nie Zugang zur Büchse gebraucht).
Was Zukunftsfähigkeit angeht: da ist RPG Knowhow eher der Flaschenhals! Aber jeder ist selber seines Glückes Schmied.
Viel Erfolg wünscht D*B
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 28
Letzter Beitrag: 19-04-21, 08:09
-
By JIM in forum IBM i Hauptforum
Antworten: 13
Letzter Beitrag: 14-07-08, 07:55
-
By Wandrey in forum NEWSboard Programmierung
Antworten: 21
Letzter Beitrag: 16-05-08, 13:08
-
By epsih2 in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 29-11-04, 10:06
-
By schreibr in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 07-11-01, 07:07
Tags for this Thread
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