noviembre 03, 2010

Desplegando múltiples procesos de BPMN en Oracle SOA Suite 11g

Resulta que esta vez me encuentro trabajando con la versión 11g de Oracle SOA Suite. Estamos construyendo una aplicación que contiene dos procesos dentro de la misma composición SCA y como era de esperarse: las cosas no son tan triviales como los bonitos manuales de Oracle lo explican, pero aquí mi experiencia.






Supuestamente en la documentación de Oracle e incluso en los asistentes de JDeveloper se menciona que es posible crear mas de un proceso BPMN y ponerlo dentro del mismo diagrama de coposición. Dicho proceso se almacenará bajo la carpeta Processes/ y cuando sea desplegado el proyecto todos los procesos en dicha carpeta serán incluidos.
En mi caso tenía dos procesos:
El primero que hice y funcionaba correctamente Processes/Clientes.bpmn podía desplegarlo y usarlo sin ningún problema.
El segundo Processes/Resguardo.bpmn que cuando lo agregué y lo intenté desplegar no funcionó y arrojaba el siguiente error:


<Nov 1, 2010 5:40:45 PM CST> <Error> <oracle.integration.platform.blocks.deploy.servlet> <SOA-21037> <Sending back error message: Error during deployment: Deployment Failed: Error occurred during deployment of component: Resguardo to service engine: implementation.bpmn, for composite: PSDProcesses: java.lang.NullPointerException..> 
java.lang.RuntimeException: oracle.bpm.metadata.exception.MetadataException: BPM-70812: Process 'Process2' not found.  Cause: The specified process was not found.  Action: Check that the name of the process is correct

####<Nov 1, 2010 5:37:26 PM CST> <Error> <oracle.integration.platform.blocks.deploy.servlet> <alfredozn-z.silvermoon> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <80027211986643af:-7d8a5c59:12c09c2abc2:-7fd3-0000000000000052> <1288654646667> <SOA-21037> <Sending back error message: Error during deployment: Error occurred during deployment of component: Resguardo to service engine: implementation.bpmn, for composite: PSDProcesses: java.lang.NullPointerException..> 
####<Nov 1, 2010 5:40:45 PM CST> <Error> <ServletContext-/soa-infra> <alfredozn-z.silvermoon> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <80027211986643af:-7d8a5c59:12c09c2abc2:-7fd3-0000000000000081> <1288654845206> <BEA-000000> <Error during deployment
oracle.fabric.common.FabricException: Deployment Failed: Error occurred during deployment of component: Resguardo to service engine: implementation.bpmn, for composite: PSDProcesses: java.lang.NullPointerException
 at oracle.integration.platform.blocks.deploy.StandaloneCompositeDeploymentCoordinatorImpl.coordinateCompositeDeployment(StandaloneCompositeDeploymentCoordinatorImpl.java:37)
 at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deployNewComposite(BaseDeployProcessor.java:359)
 at oracle.integration.platform.blocks.deploy.servlet.BaseDeployProcessor.deploySARs(BaseDeployProcessor.java:219)
 at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:160)
 at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeployWork(DeployProcessor.java:110)
 at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.doDeploy(DeployProcessor.java:97)
 at oracle.integration.platform.blocks.deploy.servlet.DeployProcessor.process(DeployProcessor.java:79)
 at oracle.integration.platform.blocks.deploy.servlet.CompositeDeployerServlet.doPost(CompositeDeployerServlet.java:153)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
 at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
 at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
 at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
 at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
 at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
 at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
 at java.security.AccessController.doPrivileged(Native Method)



Después de estar buscando por un largo tiempo como resolver esto por fin encontramos una solución, una muy triste y por casualidad, pero la única con la que hemos podido corregir ese error.


Resulta que, para poder arreglarlo es necesario realizar las siguientes acciones:


  1. Intentar desplegar el proyecto y obtener el error mencionado anteriormente.
  2. Reiniciar la máquina, con "la máquina" me refiero a toda la computadora y no solo al weblogiic.
  3. Volver a desplegar la aplicación, ya no habrá errores.
Por que ocurre esto?, no lo sé a ciencia cierta, pero lo que si intente sin resultados fue encontrar configuración  faltante en el proceso, quitarlo del Weblogic, reiniciar el weblogic, reinstalar, sobre escribir, subir la versión, re hacerlo, una prueba aislada (un nuevo proyecto con dos rpocesos sencillos) y otras pruebas menores que ya no recuerdo pero estuve mucho tiempo revisándolo. 
Lo mas triste de esta solución es que ya lo hemos podido reproducir y efectivamente hasta el momento se ha convertido en nuestra única solución.