Autor Thema: JDBC Treiber installieren  (Gelesen 5560 mal)

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
JDBC Treiber installieren
« am: 11.07.08 - 13:22:03 »
Hallo liebe AtNotes-Gemeinde,

ich habe eine Frage zu JDBC. Ich einen Agenten neu programmieren, der Daten aus einer Oracle-DB in eine Notes-Db holt. Bis jetzt hatten wir das über einen LotusScript-Agenten mit LSXODBC unter Domino 6.5. Leider konnten wir den Agenten bzw. den ODBC Treiber auf einem Domino 7 nicht mehr zum Laufen bringen. Soweit ich heraus gefunden habe wird LSXODCB von IBM auch nicht mehr weiterentwickelt und unterstützt. Deswegen will ich diesen Agenten in Java neu schreiben.

Meine Fragen:
1. Ist es eine gute Idee diesen Agenten in Java zu schreiben? (zur Erklärung: es geht um Adressdaten, die in der Oracle-Db über einige Tabellen verteilt sind; einige joins nötig)
2. Wo bekomme ich einen JDBC Treiber her? Ist der gratis? Wird er von Oracle oder von IBM gestellt?
3. Wenn ich den Treiber habe: muss man diesen installieren, oder ist das "nur" eine jar-Datei die ich im Agenten als externe Bibliothek einbinde?

System:
Domino 6.5 unter Redhat 3 EE (Upgrade auf Domino 7 geplant)
Oracle 10g

Danke für eure Hinweise.
- alex

Offline MadMetzger

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.052
  • Geschlecht: Männlich
  • f.k.a. Alexis Pyromanis
Re: JDBC Treiber installieren
« Antwort #1 am: 11.07.08 - 18:36:25 »
Zu 1.: Wenn es per LS nicht läuft und möglicherweise nicht mehr unterstützt wird, warum nicht? Außer ihr kennt euch überhaupt nicht mit Java und auch dem Zusammenspiel mit Notes aus. Dann wäre das wohl eine schlechte Idee.
Zu 2.: Google ist dein Freund...  ;)
Zu 3.: Unter den Suchergebnissen wirst du sehen, dass der Treiber in einer JAR-Datei enthalten ist...

Edit: Da du hier im 6er-Forum gepostet hast, nehme ich an, dass du unter ND6 entwickelst. Dann musst du darauf achten, dass der Treiber kompatibel zur JRE 1.3 ist, die unter ND6 im Einsatz ist. Unter ND7 kommt schon JRE 1.4 zum Einsatz.
« Letzte Änderung: 11.07.08 - 20:04:03 von MadMetzger »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren
« Antwort #2 am: 11.07.08 - 22:46:11 »
In diesem kurzen Tutorial findest du eine Menge Beispielcode für einfachen Umgang mit JDBC:
http://java.sun.com/docs/books/tutorial/jdbc/index.html

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
[comercial] Re: JDBC Treiber installieren
« Antwort #3 am: 12.07.08 - 14:24:25 »
Ich biete zu diesem Thema aufgrund meiner wirklich sehr umfangreichen Erfahrung Blitz-Consulting/Coaching Einsätze an.
Sowohl mit dem Doing als auch mit der Wissensvermittlung insbesondere für Notes-Entwickler bin ich vertraut.
Dies beinhaltet dann auch best practices für Programmierung (Sicherheitsaspekte, Wiederverwendbarkeit, Zuverlässigkeit) und ein effektives Monitoring der Integration im laufenden Betrieb durch Administratoren.
Das Ganze auch für Integration mit anderen externen Systemen über Messaging Systemen wie WebsphereMQ oder andere Messaging Platformen und Webservices/SOA. 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: JDBC Treiber installieren (auch commercial)
« Antwort #4 am: 12.07.08 - 14:37:08 »
Um wirklich Geld zu sparen, würde ich beispielsweise sofort auf Dein Angebot zurückkommen, sowie entsprechender Bedarf besteht. Und der wird wohl nicht lange auf sich warten lassen. Allein "frickeln" wird zu teuer, und Du beherrschst das (incl. der wertvollen Aussage, was Du nicht weisst. Macht auch bei weitem nicht jeder).

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren (auch commercial)
« Antwort #5 am: 12.07.08 - 15:14:23 »
(incl. der wertvollen Aussage, was Du nicht weisst. Macht auch bei weitem nicht jeder).
Danke. Aber wo hab ich geschrieben, was ich nicht weiss?
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: JDBC Treiber installieren
« Antwort #6 am: 12.07.08 - 15:43:31 »
Du würdest es im konkreten Fall sagen, Axel. Du bist kein Dampfplauderer. Und das ist der "Kern" (man darf hier gerne auch "Nachhaltigkeit" einsetzen).

Bernhard

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
Re: JDBC Treiber installieren
« Antwort #7 am: 29.07.08 - 17:04:18 »
@MadMetzger
Danke für deine Hinweise. Ich bin grad bissl verwirrt bezüglich deiner Angaben über JRE 1.3 und JRE 1.4.
Auf der Oracle Homepage gibt es folgende Treiber-Downloads:
+ classes12.jar   (1,417,089 bytes)  - for use with JDK 1.2 and JDK 1.3
+ ojdbc14.jar  (1,352,918 bytes) - classes for use with JDK 1.4

Sind JRE und JDK Synonyme? Brauch ich für ND 6.5 dann classes12.jar?

Thx

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren
« Antwort #8 am: 29.07.08 - 17:06:48 »
@MadMetzger
Danke für deine Hinweise. Ich bin grad bissl verwirrt bezüglich deiner Angaben über JRE 1.3 und JRE 1.4.
Auf der Oracle Homepage gibt es folgende Treiber-Downloads:
+ classes12.jar   (1,417,089 bytes)  - for use with JDK 1.2 and JDK 1.3
+ ojdbc14.jar  (1,352,918 bytes) - classes for use with JDK 1.4

Sind JRE und JDK Synonyme? Brauch ich für ND 6.5 dann classes12.jar?

Tendentiell ja. Java Runtime Environment, Java Development KIt. Die Versionsnummern sind auf jeden Fall gleich und du solltest classes12.jar nehmen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
Re: JDBC Treiber installieren
« Antwort #9 am: 05.08.08 - 12:03:00 »
Hallo noch einmal.

Ich muss mich noch einmal hier melden, weil ich leider immer noch am JDBC Treiber hänge, und anderen Usern wird ein ausführlicher Beitrag hoffentlich auch helfen. Wir haben jetzt einen Testserver laufen (Version ND7), deswegen hab ich den Treiber für die JDK 1.4 verwendet (siehe oben).

Nach Recherche über domino und JDBC hab ich herausgefunden, dass es verschiedene Wege gibt einen JDBC Treiber auf einem Server zu installieren.
- ins Verzeichnis jvm/lib/ext/jodbc14.jar kopieren
- über die notes.ini mit der Angabe JavaUserClasses=Pfad/jodbc14.jar
- direkt im Java-Agenten über "Edit Project" anhängen

Laut den Großmeistern im Netz ist der erste Weg der beste und so hab ich den Treiber bei uns nach kopiert: /opt/ibm/lotus/notes/70030/linux/jvm/lib/ext/ojdbc14.jar

Wenn ich nun einen Java-Agenten erstelle habe ich leider keinen Zugriff auf die Treiber-Pakete. Da schreit der Designer gleich mit dem Fehler: OracleConnection.java2: package oracle.jdbc does not exist.
Den Code habe ich von einem Foren-Beitrag bei IBM: hier
Code
import java.sql.*;
import oracle.jdbc.OracleDriver;
public class OracleConnection {
	Driver drv = null;
	//drv = new oracle.jdbc.driver.OracleDriver();
	//...
}

Wenn ich den Treiber direkt im Agenten speichere, mit "Edit Project", dann bekomm ich den Fehler nicht; aber dabei dauert das speichern des Agenten schon >10sec

Muss ich am Server noch irgendwas aktivieren, bevor er Biblitheken aus jvm/lib/ext ladet. (Server hab natürlich neu gestartet). Oder hab ich sonst irgendwas übersehen?

Danke für jeden Hinweis.
 - alex
« Letzte Änderung: 05.08.08 - 12:53:25 von alesssandro »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren
« Antwort #10 am: 05.08.08 - 21:37:45 »
Eigentlich nicht.
Ich hab das öfters gemacht.
Eigentlich nur neu starten.
Es gibt noch gewisse debug Parameter, die du in der Notes.ini setzen kannst. Dann wird das Classloading in die log.nsf gelogt.
Hat ich aber nie ein Problem mit.
Könnte mir höchstens noch vorstellen, dass du es ins falsche jvm/lib/ext getan hast.
Mein Domino Server ist auf C:\Domino7Server
Das lib\ext in C:\Domino7Server\jvm\lib\ext
Notes und Domino haben eine eigene VM.
Vielleicht hast du es in das lib/ext von der jre getan?
Meine jre ist in
C:\j2sdk1.4.2_15\jre
Wenn ich da jars in C:\j2sdk1.4.2_15\jre\lib\ext tue, weiss Domino davon nix, weil das eine andere JVM ist.
Ansonsten muss das einfach funktionieren.

Notes Classloading funktioniert ungefähr so:
1) Zuerst schaut er in den Pfaden, die in der notes.ini unter JavaUserClasses stehen.
2) Dann schaut er in <notes_oder_domino_Programm>/jvm/lib/ext
(1 und 2 können auch umgekehrt sein, weiss nicht)
3) Jeder Agent hat einen eigenen Classloader. Er schaut dann nach den jars, die an den Agenten gebunden sind.

Er schaut nicht in die OS-Umgebungsvariable Classpath (normales jre macht das)
Jedenfalls. Und das scheint hier nicht das Problem zu sein. Ich erwähn das nur.
Du hast eine alte Version von oracle.jdbc.OracleDriver in 1) und packst einen neuen in 3). Er läd immer das untere. Websphere hat eine Einstellung, um das umzudrehen. Das kann echt nervig sein. Wenn relativ weit unten in soner Classloader Hierarchie die alte Version eines packages steht, ist es schwierig bis unmöglich in nachgeordneten Classloadern eine neuere zu laden.
OSGi soll hier Abhilfe schaffen.
« Letzte Änderung: 05.08.08 - 23:57:19 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
Re: JDBC Treiber installieren
« Antwort #11 am: 07.08.08 - 11:27:33 »
Leider funktioniert es immer noch nicht. Ich hab nachgeschaut, ob ich's ins richtige jvm/lib/ext Verzeichnis kopiert habe. Bei diesem Testserver gibt es nur eine JVM - daher ist es sicher das richtige gewesen.
Dann hab ich das ganze noch einmal über die JavaUserClasses gemacht. Hat leider auch nichts geändert. Dateirechte auf den Treiber hab ich auch beachtet.  ???

Die erwähnten debug Parameter der notes.ini für das Classloading hab ich nicht gefunden? Weiß jemand welche diese wären?

Eine andere Frage noch: Ich habe im vorigen Beitrag schon ein Code-Snippet erwähnt - hier noch einmal. Kann ich anhand dieses Codes davon ausgehen, dass das Classloading des JDBC Treibers nicht funktioniert hat. Mit dem Import des Paketes oracle.jdbc.OracleDriver sollte er eigentich auf den Treiber "zugreifen". Oder könnte der Fehler einen anderen Grund haben?
Wenn ich die Paketstruktur des Treibers anschaue (in eclipse oder unzip), dann gibt es oracle.jdbc.OracleDriver.class.

Code
import java.sql.*;
import oracle.jdbc.OracleDriver;
public class OracleConnection {
	Driver drv = null;
	//drv = new oracle.jdbc.driver.OracleDriver();
	//...
}

Der Fehler:
Zitat
OracleConnection.java2: package oracle.jdbc does not exist.

Ich bin ratlos?
 - alex

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
Re: JDBC Treiber installieren
« Antwort #12 am: 12.08.08 - 06:50:57 »
Konnte mein Problem jetzt selber lösen:

Der Designer Client zeigt immernoch den Fehler, dass er den JDBC Treiber nicht finden kann. Dies ignorierend hab ich den Agenten einfach weiterentwickelt. Wenn ich ihn am Server laufen lasse, hab ich Zugriff auf die Daten bekommen. Ich habe das Augenmerk zu sehr auf den Designer Client gelegt und dass dieser Fehler sagt, dass der Treiber am Server nicht funktioniert.

Hab jetzt den Treiber in der notes.ini des Servers mit JavaUserClasses eingebunden. Ich denke, dass es mit dem jvm/lib/ext auch gehen würde.
Wegen des Fehlers, den mir der Designer anzeigt: dachte, dass man vielleicht am Client den Treiber auch noch in notes.ini oder jvm/ext/lib kopieren muss. Hab ich nicht probiert. Da ich nun in Eclipse entwickle kommt dieser gar nicht zum Einsatz und der Fehler läßt mich kalt ;D

Grz.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren
« Antwort #13 am: 12.08.08 - 10:44:32 »
Das kann sein, dass man die extra Klassen zusätzlich im Designer einbinden muss.
Ist mir noch nicht aufgefallen.
Kann auch daran liegen, dass ich Notes Agenten in Eclipse entwickle und dann den Designer nur dazu nutze, um die Klassen aus Eclipse zu importieren.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline alesssandro

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Lasagne, mhhh.
Re: JDBC Treiber installieren
« Antwort #14 am: 12.08.08 - 11:48:00 »
Domiclipse funktioniert neben ein paar Bugs ziemlich gut. Weiß nicht, ob du's kennst. Dabei kann man sich das manuelle importieren in den Designer sparen.

LG,
 - alex

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: JDBC Treiber installieren
« Antwort #15 am: 12.08.08 - 12:18:39 »
Du mußt das nicht manuell importieren. Einfach über Projekt Bearbeiten im Agenten und die Dialogbox auf den src Ordner eines Projekts in dem Workspace von Eclipse stellen. Find ich einfacher als Domiclipse.
« Letzte Änderung: 12.08.08 - 12:20:46 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz