Introduction
Cette documentation est un complément de l’article concernant l’installation et la configuration de Sybase 12.5.3a avec Real Time Data Services 3.1 pour MQ : Sybase 12.5.3a et MQ (RTDS, Real Time Data Services)
Pour les versions 12.5.4 et 15.0 ESD#2, l’installation de Real Time Data Services présente quelques différences.
Sybase 12.5.3a et Real Time Data Services 3.1
Avec Sybase 12.5.3a, les services de messages pour MQ et TIBCO sous la dénomination de Real Time Data Services 3.1 sont encapsulés au sein des exécutables et librairies pour Adaptive Server Enterprise 12.5.3a.
Il est simplement nécessaire de référencer dans la variable
d’environnement $LD_LIBRARY_PATH
l’accès aux libraires MQ lors du
démarrage du serveur Sybase 12.5.3a
Pour une version 32 bits :
…
LD_LIBRARY_PATH="/opt/mqm/lib:/Software/sybase/sybase-12.5.3a/OCS-12_5/lib:
/Software/sybase/sybase-12.5.3a/OCS-12_5/lib3p64:
/Software/sybase/sybase-12.5.3a/OCS-12_5/lib3p":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
…
Pour une version 64 bits :
…
LD_LIBRARY_PATH="/opt/mqm/lib64:/Software/sybase/sybase-12.5.3a/OCS-12_5/lib:
/Software/sybase/sybase-12.5.3a/OCS-12_5/lib3p64:
/Software/sybase/sybase-12.5.3a/OCS-12_5/lib3p":$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
…
Real Time Data Services 3.5
À partir de Sybase 12.5.4 et 15.0 ESD#2, seul Real Time Data Services 3.5 est compatible et quelques petits deltas sont apparus dans l’installation de RTDS par rapport à Sybase 12.5.3a/RTDS 3.1.
Désormais RTDS 3.5 est livré dans une distribution à part et la documentation Sybase ne met pas l’accent sur ce point.
Si il est envisagé de configurer Sybase 12.5.4 avec MQ /RTDS en gardant la
méthode d’installation de Sybase 12.5.3a, le message 15147 « Can not load
IBM MQ librairies
» apparaît même si la variable d’environnement
$LD_LIBRARY_PATH
est bien à jour pour le référencement des librairies MQ avec la
commande sp_configure 'enable real time messaging'
pour ibm_mq
.
exec sp_configure 'enable real time messaging', 1,'ibm_mq'
go
En lançant la commande truss
Unix sur le process dataserver
de Sybase
12.5.4, on voit immédiatement le problème qui se passe :
%> truss -o <tracefilename> -p <pid_dataserver>
/2: Received signal #14, SIGALRM, in sigtimedwait() [caught] /1: lseek(24, 0,SEEK_SET) = 0 /2: sigtimedwait(0xFFFFFFFF7CCFBD60,0xFFFFFFFF7CCFBE28, 0x00000000) =SIGALRM /1: close(24) = 0 /1: poll(0x1000006F788, 2,0) = 0 /1: write(1, " 0 0 : 0 0 0 0 0 : 0 0 0"..,142) = 142 /1: write(3, " 0 0 : 0 0 0 0 0 : 0 0 0"..,142) = 142 /1: stat("/Software/sybase/sybase-12.5.4a-64b",0x10000CC4830) = 0 /1: stat("/Software/sybase/sybase-12.5.4a-64b/ASE-12_5/lib/libsybibmmq.so",0x10000CC4110) Err#2 ENOENT /1: sigprocmask(SIG_SETMASK,0xFFFFFFFF7F01D4C0, 0x10000CC3200) = 0 /1: sigprocmask(SIG_SETMASK, 0x10000CC31EC,0x00000000) = 0 /1: fstat(23,0x10000CC3190) = 0 /1: sigprocmask(SIG_SETMASK,0xFFFFFFFF7F01D4C0, 0x10000CC3200) = 0
Avec la version 12.5.4 ou 15.0, Sybase recherche désormais la librairie
libsybibmmq.so
dans le répertoire $SYBASE/$SYBASE_ASE/lib
, d’où le
message Err#2 ENOENT
pour indiquer (No Entry for this library
) qui remonte dans
la trace truss
.
Ces librairies ne sont installées qu’avec Sybase Real Time Data Services qui est devenu un CD à part et que l’on installe classiquement avec un InstallShield dans la distribution Sybase 12.5.4 ou 15.0 concernée.
Classiquement en fonction de la plateforme 32 bits ou 64 bits, voici les librairies RTDS qui sont installées pour RTDS 3.5 / Sybase ASE :
Plateforme | Installation | Bibliothèque d’interface | Nom du fichier |
---|---|---|---|
Solaris 32-bit | $SYBASE/$SYBASE_ASE/lib |
TIBCO EMS IBM MQ | libsybtibems.so
libsybibmmq.so |
Solaris 64-bit | $SYBASE/$SYBASE_ASE/lib |
TIBCO EMS IBM MQ | libsybtibems.so
libsybibmmq.so |
Linux 32-bit | $SYBASE/$SYBASE_ASE/lib |
TIBCO EMS IBM MQ | libsybtibems.so
libsybibmmq.so |
AIX 64-bit | $SYBASE/$SYBASE_ASE/lib |
TIBCO EMS IBM MQ | libsybtibems.so
libsybibmmq.so |
HP-UX 64-bit | $SYBASE/$SYBASE_ASE/lib |
TIBCO EMS IBM MQ | libsybtibems.sl
libsybibmmq.sl |
Windows 32-bit | %SYBASE%\%SYBASE_ASE%\bin |
TIBCO EMS IBM MQ | sybtibems.dll
sybibmmq.dll |