Oracle SOA Coherence Cluster

Pour rappel, la SOA Suite 11g embarque un serveur coherence en interne qui entre autre s’occupe de la partie déploiement  d’applications SOA  composites en mode cluster.
En effet pour déployer une application composite sur un cluster, il suffit de déployer cette application composite sur un seul nœud du cluster et Coherence propage le déploiement sur les autres nœuds composant le cluster. Si le déploiement échoue sur un nœud Coherence entreprend alors un rollback de l’application composite déployée sur tous les nœuds.

Coherence communique avec les autres nœuds du cluster Coherence suivant deux modes  Unicast (i.e. : monodiffusion) ou  Mutlicast (i.e. : multidiffusion)
Oracle recommande d’utiliser le mode Unicast, or par défaut le mode configuré est le mode multicast et d’ailleurs on retrouve souvent l’erreur ci-dessous dans les logs du domaine SOA.

####<Jan 7, 2013 9:27:59 AM CET> <Error> <oracle.integration.platform.blocks.cluster> <Z8H7241V> <soa_server1>
<[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <0000JkK7RSGFKAcLPis1yd1GucPw000002> <1357547279670>
<BEA-000000> <Starting in multicast, rather than unicast, mode for SOA/Coherence clustering.  This is not the configuration recommended by the Oracle Enterprise
Deployment Guide (EDG).  If continuing to use multicast you may run into deployment issues if there are multicast address conflicts with other servers on your network. 
If attempting unicast operation, make sure the unicast well-known addresses (-Dtangosol.coherence.wka1, -Dtangosol.coherence.wka2...) and ports are set for scaling out
to multiple servers per the EDG.>

Pour corriger cette erreur, voici la procédure à suivre pour changer le mode de diffusion du cluster Coherence : Multicast vers Unicast
Procédure :
Editer le fichier setDomainEnv.cmd (cas Windows) ou setDomainEnv.sh (cas Unix) et remplacer la propriété EXTRA_JAVA_PROPERTIES par défaut ci-dessous  (*) par la propriété (**).
(*)

set EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Dsoa.archives.dir=%SOA_ORACLE_HOME%soa -Dsoa.oracle.home=%SOA_ORACLE_HOME% -Dsoa.instance.home=%DOMAIN_HOME%
-Dtangosol.coherence.clusteraddress=227.7.7.9 -Dtangosol.coherence.clusterport=9778 -Dtangosol.coherence.log=jdk -Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl
-Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true -Djavax.net.ssl.trustStore=%WL_HOME%serverlibDemoTrust.jks

(**) (Exemple d’un cluster 4 nœuds)

EXTRA_JAVA_PROPERTIES=%EXTRA_JAVA_PROPERTIES% -Dsoa.archives.dir=%SOA_ORACLE_HOME%soa -Dsoa.oracle.home=%SOA_ORACLE_HOME% -Dsoa.instance.home=%DOMAIN_HOME%
-Dtangosol.coherence.log=jdk -Dtangosol.coherence.wka1=z8h7241v.hml-societe.hmlmma.fr -Dtangosol.coherence.wka2=z8h7242v.hml-societe.hmlmma.fr
-Dtangosol.coherence.wka3=z8h7243v.hml-societe.hmlmma.fr -Dtangosol.coherence.wka4=z8h7244v.hml-societe.hmlmma.fr -Dtangosol.coherence.localhost=z8h7241v.hml-societe.hmlmma.fr 
-Djavax.xml.soap.MessageFactory=oracle.j2ee.ws.saaj.soap.MessageFactoryImpl -Dweblogic.transaction.blocking.commit=true -Dweblogic.transaction.blocking.rollback=true
-Djavax.net.ssl.trustStore=%WL_HOME%serverlibDemoTrust.jks

Opération terminée !