Postgres und pljava - eine lange Geschichte... Fehler beim Installieren... 
Donnerstag, September 24, 2009, 11:51 AM - Postgres, pljava, openTMS
Für openTMS wollen wir unser TM als serverseitige (Java) Komponente einsetzen. Um Java in Postgres serverseitig einsetzen zu können, ist es notwendig das mitgelieferte pljava zu "aktivieren", da per default ausgeschaltet. Das erwies sich als komplizierter als gedacht. Hier mein Weg zu einer funktionsfähigen Installation (für Windows).

Ich bekam die verschiedensten Fehlermeldungen, von dll nicht gefunden, ulkige Pfadnamen etc. Wichtig war u.a. die korrekte Schreibweise der Pfadnamen in der conf datei (also \\ statt \ verwenden). Etwas mühsam zu eruieren, auch mit der Suche im Web.

Zu beachten ist, dass ich Postgres unter C:\ProgrammeDatenbanken installiert habe. Pfade sind entsprechend anzupassen!

OK, hier nun die Details:

Schritte install pljava bei Postgres
====================================

Annahme Postgres unter: C:\ProgrammeDatenbanken\PostgreSQL\8.4

1) Anpassen in Systemsteuerung - korrekten Java Pfad einsetzen!
PATH
C:\Program Files\IDM Computer Solutions\UltraEdit\;C:\Program Files\IDM Computer Solutions\UltraCompare\;c:\Program Files\Java\jre6\bin\client\

Wenn nicht gesetzt, kann Java von Postgres nicht ausgeführt werden.

2) postgresql.conf in C:\ProgrammeDatenbanken\PostgreSQL\8.4\data anpassen

Einträge am Ende "entkommentieren". Hier die Einträge:

WICHTIG: Bei den Pfadnamen mit \ mussmit \\ geschrieben werden!

custom_variable_classes = 'pljava'
pljava.classpath ='C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\lib\\pljava.jar'
pljava.statement_cache_size = 10
pljava.release_lingering_savepoints = true
pljava.vmoptions = '-Xmx512M'
pljava.debug = false
dynamic_library_path = '$libdir;C:\\ProgrammeDatenbanken\\PostgreSQL\\8.4\\lib'
log_min_messages = info

3) in pgadmin Script C:\ProgrammeDatenbanken\PostgreSQL\8.4\share\pljava install.sql ausführen; vorher auswählen einer Datenbank

4) Testen mit
SELECT sqlj.install_jar('file:///C:/ProgrammeDatenbanken/PostgreSQL/8.4/lib/examples.jar',
'samples', true);
SELECT sqlj.set_classpath('javatest', 'samples');

Dann z.B.
SELECT * FROM javatest.listSupers();


Dann sollte alles funktionieren..

Viel Erfolg!
  |  0 Trackbacks   |  Permalink   |  Related Link