Domino - Welten verkleben mit Perl

von Arnd Koch,
assono GmbH, Standort Kiel,

Wenn man Notes/Domino und Perl in einem Satz erwähnt, werden die meisten (zumindest die, die beides kennen) sicher sofort an OLE-Automatisierung denken, aber es geht auch anders.

So kann man mit dem Perlmodul "Inline::Java" die Java-Schnittstellen des Domino-Servers nutzen und so die Stärken von Perl und Java kombinieren.
Gerade wenn man mal ein kleines Tool für zwischendurch benötigt, ist Perl hier sehr nützlich - im Hintergrund verrichtet natürlich immer noch Java die Arbeit.

Das folgende Perl-Programm listet alle Datenbanken im Datenbankverzeichnis des Domino-Servers auf und gibt jeweils einige Informationen aus (Replik-ID, Datenbanktitel, Pfad & Dateiname):

1 #! /usr/bin/perl


2


3
use strict;


4
use warnings;


5
use Inline (


6
Java => 'STUDY',


7
CLASSPATH => 'NCSO.jar', # NCSO.jar des domino servers



muß im classpath stehen



8
STUDY => ['lotus.domino.NotesFactory'],


9
AUTOSTUDY => 1


10
);


11


12


13
my $session;


14
my $dbdirectory;


15
my $database;


16


17
eval{


18
$session = lotus::domino::NotesFactory->createSession("servername", "user", "password");


19
$dbdirectory
= $session->getDbDirectory("");


20


21
##


22
# kleiner stolperstein in der funktion "getFirstDatabase" :


23
# "datenbanken suchen" muß im serverdokument für http-clients aktiviert werden:


24
#


25
# http://ianconnor.blogspot.com/2007/07/diiop-notesexception-server-access.html


26
#


27
$database
= $dbdirectory->getFirstDatabase($dbdirectory->{DATABASE});


28
};


29
# prüfen ob eine exception geworfen wurde


30
if($@){


31
die($@->toString()) if(ref($@)); # fehler in java


32
die($@); # oder in perl


33
}


34
# informationen für alle datenbanken im dbdirectory ausgeben


35
while(ref($database)){


36
eval{


37
print "[".$database->getReplicaID()."] : "


.
$database->getTitle()." -> "


.
$database->getFilePath()."\n";


38
$database = $dbdirectory->getNextDatabase();


39
};


40
if($@){


41
warn($@->toString()) if(ref($@));


42
die($@);


43
}


44
}


45

46
# am schluß noch aufräumen


47
$dbdirectory->recycle();


48
$session->recycle();





Links:

http://strawberryperl.com/

http://search.cpan.org/~patl/Inline-Java-0.52/

Fachbeitrag IBM Domino JavaScript Java Entwicklung

Sie haben Fragen zu diesem Artikel? Kontaktieren Sie uns gerne: blog@assono.de

Sie wollen eine individuelle Lösung? Kontaktieren Sie uns

Weitere interessante Artikel

Sie haben Fragen? Wir sind für Sie da.

Wir verwenden Ihre Daten, um Sie einmalig per E-Mail zu kontaktieren. Wir geben Ihre Daten nicht an Dritte weiter. Siehe: Datenschutzhinweise
assono GmbH

Standort Kiel (Zentrale)
assono GmbH
Lise-Meitner-Straße 1–7
24223 Schwentinental

Standort Hamburg
assono GmbH
Bornkampsweg 58
22761 Hamburg

Telefonnummern:
Zentrale: +49 4307 900 407
Techn. Hotline: +49 4307 900 403
Vertrieb: +49 4307 900 402

E-Mail-Adressen:
kontakt@assono.de
bewerbung@assono.de