View Full Version : SQL Zugriff von iSeries auf Microsoft SQL-Server
@Baldur:
scheint als dritte Möglichkeit zu gehen, sieht aber sehr nach der Wiedererfindung des Rades aus, was anderes macht der JDBC Treiber nämlich auch nicht: übersetzen eines Datenbank spezifischen SQL Call Level Interfaces in RPC Aufrufe.
Ich würde da schon zu Java tendieren und notfalls einen Serverdienst schreiben, der von RPG als Client bedient wird, wenn es denn unbedingt auch was mit RPG sein muss.
Dieter
Wer suchet der findet RPC-API's:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/apis/rpc1.htm
und weiter:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/rzahp/rzahprpcover.htm
Da steht so ziehmlich alles was man braucht.
Hallo,
ich habe auch mal eine kommerzielle Lösung gefunden. Schau doch mal auf der Seite www.rjssoftware.com und suche nach rpg2sql. Das ist allerdings nicht ganz billig und benötigt glaube ich auch einen PC als Schnittstelle.
Gruß,
KM
Vielen Dank für die Antworten.
Ich habe mich entschlossen JAVA zu benutzen. Wird zwar ein weilchen Dauern, bis ich mich da eingearbeitet habe, scheint mir aber der bessere Weg zu sein.
mfg
M.Wandrey
Wie angedroht habe ich mit JAVA angefangen. "Hello World" ging ja noch.
Aber jetzt kommen die Probleme.
Ich habe den Microsoft SQL Server 2000 Driver for JDBC auf meinen Pc installiert (XP)
und im Quellcode folgendes angegeben:
public SQL_iSeries() {
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
} catch (Exception e) {
System.out.println("Class Fehler: " + e.getMessage());
}
try{
connection = DriverManager.getConnection("jdbc:microsoft:sqlserver://10.nn.nnn.nn:1433");
} catch (Exception e) {
System.out.println("Connect Fehler: " + e.getMessage());
}
}
bekomme aber beim ausführen immer die Meldung:
Class Fehler: com.microsoft.jdbc.sqlserver.SQLServerDriver
Den CLASSPATH habe ich auf dem PC als Umgebungsvariable gesetzt.
Was mache ich falsch ????
mfg
M.Wandrey
Vielleicht hilft Dir ja dieser Link weiter...
http://support.microsoft.com/default.aspx?scid=kb;en-us;313100
Gruß,
KM
@Baldur:
scheint als dritte Möglichkeit zu gehen, sieht aber sehr nach der Wiedererfindung des Rades aus, was anderes macht der JDBC Treiber nämlich auch nicht: übersetzen eines Datenbank spezifischen SQL Call Level Interfaces in RPC Aufrufe.
Ich würde da schon zu Java tendieren und notfalls einen Serverdienst schreiben, der von RPG als Client bedient wird, wenn es denn unbedingt auch was mit RPG sein muss.
Dieter
Hallo,
dieses Thema ist zwar schon älter, trifft uns jetzt aber mit voller Wucht.
Wir müssen aus unserer AS/400 L/G-Anwendung auf Tabellen von MS SQL-Server zugreifen. Der Zugriff ist bei uns Online (kein Batch-Prozess möglich). Die Programme sind In RPG geschrieben. Ich habe jedoch noch nie auf der AS/400 Java programmiert. Was ist notwendig, um so einen Java-Client zu programmieren und in RPG aufzurufen?
Wo finde ich die Entwicklungsumgebung für Java auf der AS/400?
Geht es denn nicht mit einem embedded SQL in RPG über einen Connect zu einer Fremd-DB die über einen Eintrag mit WRKRDBDIRE definiert ist?
Ich wäre sehr dankbar für direkte Hilfe.
Viele Grüße
Miggi
für direkten RPG Zugriff fehlt es schlicht an Treibern.
Es bleiben drei Wege offen:
- Installation entsprechender Middleware, soweit verfügbar (Stichwort DB2 Connect) - das ist mit SQL Server eher aufwändig und hat Limitierungen.
- Verwendung PC basierter Middleware, die aus RPG über Call Schnittstellen aufgerufen wird (habe ich keine Erfahrung mit)
- Java auf der AS/400. Von synchronen Aufrufen von Java aus RPG würde ich hier abraten (das ist zu langsam und skaliert nicht gut). Da würde ich eher einen Java Serverdienst mit asynchroner Kommunikation zwischen RPG und Java (DataQ, MsgQ o.ä) empfehlen, da liegen meine Erfahrungen eher bei Millisekunden pro Transaktion (je nach Transaktion und Hardware).
Für letzteres brauchts dann aber schon ein wenig Java Erfahrung, wenn man da nicht zuviel falsch machen will...
mfg
Dieter Bender
PS: Für den Herbst bereite ich da einen Hands On Workshop für Common vor.
Hallo,
dieses Thema ist zwar schon älter, trifft uns jetzt aber mit voller Wucht.
Wir müssen aus unserer AS/400 L/G-Anwendung auf Tabellen von MS SQL-Server zugreifen. Der Zugriff ist bei uns Online (kein Batch-Prozess möglich). Die Programme sind In RPG geschrieben. Ich habe jedoch noch nie auf der AS/400 Java programmiert. Was ist notwendig, um so einen Java-Client zu programmieren und in RPG aufzurufen?
Wo finde ich die Entwicklungsumgebung für Java auf der AS/400?
Geht es denn nicht mit einem embedded SQL in RPG über einen Connect zu einer Fremd-DB die über einen Eintrag mit WRKRDBDIRE definiert ist?
Ich wäre sehr dankbar für direkte Hilfe.
Viele Grüße
Miggi
Hallo,
schau Dir doch mal folgende Seite von Scott Klement an. Vielleicht wäre das ja eine Option für Dich. Damit kann man wohl aus RPG heraus über JDBC auf externe Datenbanken zugreifen (MySQL bzw. MSSQLSERVER). Ich hab das allerdings noch nicht probiert:
JDBC from RPG Enhancements | System iNetwork (http://systeminetwork.com/article/jdbc-rpg-enhancements)
Gruß,
KM
Hallo BenderD,
vielen Dank für die ausführlichen Infos.
ich habe mir einige Deiner Java-Beispiele auf der Homepage angesehen. Wie finde ich denn die Entwicklungsumgebung von Java auf der AS/400?
Viele Grüße
Miggi
Hallo,
typischerweise entwickelt man auf einem Client (meist Windows oder Linux) und deployed dann auf die AS/400 (meist als jar Archiv). Als Entwicklungsumgebung nimmt man dann das, was einem am Besten zusagt. Ich persönlich verwende JCreator (für Einsteigerschulungen) und Eclipse (für produktive Entwicklung).
mfg
Dieter Bender
Hallo BenderD,
vielen Dank für die ausführlichen Infos.
ich habe mir einige Deiner Java-Beispiele auf der Homepage angesehen. Wie finde ich denn die Entwicklungsumgebung von Java auf der AS/400?
Viele Grüße
Miggi