Désactiver un composite qui bloque le démarrage d'Oracle SOA Suite

Lors du démarrage du serveur managé Oracle SOA tous les composites sont chargés en mémoire. Il est parfois possible qu’un composite ne se charge plus correctement, ce qui peut empêcher le démarrage du serveur.
Dans cet article nous allons montrer comment désactiver un composite sans démarrer le serveur SOA.

Déploiement du ShareSoaInfraPartition

Pour désactiver un composite, nous allons utiliser le ShareSoaInfraPartition.ear. Cette application permet de récupérer et de remplacer le fichier « deployed-composites.xml » depuis le MDS.

  1. Récupérer le package ShareSoaInfraPartition.
  2. Déployer le package sur le serveur d’administration.

Désactivation d’un composite

Une fois l’application ShareSoaInfraPartition.ear déployée, nous allons récupérer le fichier deployed-composites.xml, pour le manipuler.

  1. Rendez-vous sur « $MIDDLEWARE_HOME/oracle_common/common/bin ».
  2. Démarrer le weblogic scripting tool et connectez-vous au serveur Weblogic.
    ./wlst.sh
    connect('weblogic',PASSWORD,'t3://ADMIN-HOST:PORT)
  3. Une fois connecter sur le serveur d’administration, exécuter la commande suivante pour exporter le fichier de configuration.
    exportMetadata(application='ShareSoaInfraPartition',server='AdminServer',toLocation='/tmp',docs='/deployed-composites/deployed-composites.xml')
  4. Ouvrir le fichier « deployed-composites.xml » puis supprimé la(les) ligne(s) qui correspond à (aux) composite(s) à désactiver. Par exemple :
    <composite-series name="default/ValidationConges" default="default/ValidationConges!1.0">
    <composite-revision dn="default/ValidationConges!1.0" state="on" mode="active" location="dc/soa_fddae3fb-1330-47e2-8389-98cae0e60355">
    <composite dn="default/ValidationConges!1.0*soa_fddae3fb-1330-47e2-8389-98cae0e60355" deployedTime="2013-10-18T17:49:45.976+02:00"/>
    </composite-revision>
    </composite-series>
  5. Une fois le fichier modifié, exécutez le commande suivante pour importer la configuration sur le serveur.
    importMetadata(application='ShareSoaInfraPartition',server='AdminServer',fromLocation='/tmp',docs='/deployed-composites/deployed-composites.xml')
  6. Il ne vous reste plus qu’à démarrer votre serveur SOA.

Conclusion

Nous avons vu dans cet article, une technique qui peut s’avérer très pratique lors ce qu’un composite bloque le démarrage du serveur SOA. Mais il ne faut pas oublier que nous avons juste supprimés la référence au composite, le projet est toujours sur le MDS, un nettoyage du MDS serait judicieux.