21 février 2013

Connectivité Oracle dans WebLogic: OCI driver


Dans mes conventions d'installation, le client Oracle 10g (Instant client) est placé dans le sous-répertoire /opt/oracle/oraClient. Par ailleurs, dans un environnement de cluster WebLogic, le client Oracle doit être installé sur chaque machine (serveur) hébergeant WebLogic.
A partir du panneau « Domain Structure », sélectionner le menu « Services/JDBC/Data sources ».


Vous devez obtenir la fenêtre « Summary of JDBC Data Sources ».


Actionnez le bouton New pour obtenir la fenêtre de création de data sources :


Spécifiez :
- Le nom du data source. Exemple : OCIDataSource-1
- Le nom JNDI : Exemple : OCIDataSource-1
- Le type de base : Oracle
- Le driver OCI : Oracle’s Driver (OCI) Versions 9.0.1,9.2.0,10
Actionnez le bouton Next.


Spécifiez les éventuelles options transactionnelles et actionnez Next pour introduire les propriétés de connexion.


Actionnez le bouton Next .

Remarquez l’URL générée :

jdbc:oracle:oci:@TEST

Les paramètres Host Name et Port ont été ignorés. TEST est le nom d’entrée dans le fichier TNSNAME.ORA . Exemple de fichier TNSNAME.ORA :

TEST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.104)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.19)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.63)(PORT = 1521))
(LOAD_BALANCE = yes)
(FAILOVER = yes))
(CONNECT_DATA =
(SERVICE_NAME = test.EPR)
(FAILOVER_MODE =
(TYPE=SELECT)
(METHOD=BASIC)
(RETRY=200)
(DELAY=5)) ) )

La spécification du service doit être compactée (enlever les fins de lignes et autres tabulations…)  pour être acceptée par le driver Oracle !

TEST = (DESCRIPTION =(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.104)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.19)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 163.104.114.63)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = yes))(CONNECT_DATA =(SERVICE_NAME = test.EPR)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 200)(DELAY = 5))))

Actionnez le bouton Test Configuration de façon à obtenir le message "Connection test succeeded".


Actionnez le bouton Next pour passer à l’écran permettant de spécifier le cluster ou les serveurs concernés.


Actionnez le bouton Finish.


A partir du panneau « Change Center », validez la configuration en actionnant Activate Changes.


Exemple de déclaration d’environnement Oracle dans le script commEnv.sh

Variable d’environnement pour le serveur WebLogic
Commentaire
ORACLE_HOME
Pointe sur le client Oracle. Ici Instant Client 10g :
/opt/oracle/oraClient/ora_10g/instantclient_10_2
TNS_ADMIN
Pointe sur le répertoire de TNSNAME.ORA :
/opt/oracle/oraClient/network/admin
LD_LIBRARY_PATH
Pointe entre autre sur les binaires du client Oracle : ORACLE_HOME
WEBLOGIC_CLASSPATH
Référence, entre autre, les classes du client Oracle :
ojdbc14.jar ; orai18n.jar
# Set up BEA Home
BEA_HOME="/opt/weblogic"
# Set up WebLogic Home
WL_HOME="/opt/weblogic/wls_9.1"
# Set up Oracle instant client
ORACLE_HOME="/opt/oracle/oraClient/ora_10g/instantclient_10_2"
export ORACLE_HOME
TNS_ADMIN="/opt/oracle/oraClient/network/admin"
export TNS_ADMIN
# Reset JAVA_HOME, JAVA_VENDOR and PRODUCTION_MODE unless JAVA_HOME
# and JAVA_VENDOR are pre-defined.
LINUX|Linux)
arch=`uname -m`
if [ -n "${LD_LIBRARY_PATH}" ]; then
LD_LIBRARY_PATH=${ORACLE_HOME}:${LD_LIBRARY_PATH}:${WL_HOME}/server/native/linux/${arch}:${WL_HOME}/server/native/linux/${arch}/oci920_8
else
LD_LIBRARY_PATH=${ORACLE_HOME}:${WL_HOME}/server/native/linux/${arch}:${WL_HOME}/server/native/linux/${arch}/oci920_8
fi
LD_LIBRARY_PATH=${PATCH_LIBPATH}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
WEBLOGIC_CLASSPATH="${ORACLE_HOME}/ojdbc14.jar${CLASSPATHSEP}${ORACLE_HOME}/orai18n.jar${CLASSPATHSEP}${PATCH_CLASSPATH}${CLASSPATHSEP}${JAVA_HOME}/lib/tools.jar${CLASSPATHSEP}${WL_HOME}/server/lib/weblogic_sp.jar${CLASSPATHSEP}${WL_HOME}/server/lib/weblogic.jar${CLASSPATHSEP}${WL_HOME}/server/lib/webservices.jar"
export WEBLOGIC_CLASSPATH


Bibliographie

  • ASP.NET Data Web Controls(Scott Michell)
  • Building Custom PHP Extensions(Blake Schwendiman)
  • Développer avec CORBA en JAVA ET C++(David Acremann)
  • Java Native Interface(Sheng Liang)
  • Mastering WebLogic Server(Gregory Nyberg; Robert Patrick)
  • Oracle Database 10g RAC on Linux(Julian Dyke; Steve Shaw)
  • Test Process Improvement(Martin Pol)
Back to top