Pregunta

Hay dos opciones para configurar su sesión de JBPM.

  1. Usted puede poner sus asignaciones jbpm en la misma sesión de Hibernate, y como resultado, tienen sus tablas en la base de datos con las tablas de aplicaciones.

  2. Usted puede poner las asignaciones jbpm en una sesión de Hibernate separada, y tenerlos en una base de datos independiente.

He visto un artículo que recomienda el método 1, y puedo ver por qué, ya que le permite tener referencias de clave externa a los datos JBPM objetos directamente. El único problema que he visto emergente es si intenta guardar el objeto jbpm mientras que un proceso de JBPM se está ejecutando, se llega a un punto muerto en la base de datos.

Aparte de eso, qué método sería mejor, y por qué razones?

¿Fue útil?

Solución

Depende de la arquitectura se quiere construir.

Si desea uno de los componentes del flujo de trabajo de gestión centralizada, donde varias aplicaciones diferentes se comunican con una sola base de datos es el camino a seguir.

Otoh, si el flujo de trabajo es específica sólo para algunas aplicaciones, es mejor mantener las bases de datos separadas. De esta manera, se puede actualizar jBPM más tarde en algunas aplicaciones y dejarlo como lo es en otros.

Pero también se puede decidir tener una base de datos separada para cada aplicación, incluso si hay una gran cantidad. De esta manera, el rendimiento en tiempo de ejecución queda grande ya que no hay una mesa enorme para gestionar)

Como se puede ver, jBPM es muy flexible en la forma de integrar en su arquitectura. Por lo que tendrá que hacer el análisis por sí mismo y decidir cuál es el mejor enfoque, tenido en cuenta corriente y las futuras evoluciones de su arquitectura.

Otros consejos

Poner tanto sus tablas de aplicación y la base de datos jBPM en 1 le permite actualizar ambas tablas jBPM y los datos de aplicación en una sola transacción. Esto es útil si, por ejemplo, desea actualizar algún atributo de datos de la aplicación cuando se realiza una tarea en jbpm. Esto ayuda a mantener los datos de conseguir dañado. De lo contrario, si se compromete la transacción jbpm y luego se encuentra con un problema de comprometer su transacción de datos de la aplicación, usted tiene una muy gran problema ...

Hemos tenido un caso en el que decidimos mantener la base de datos jbpm por separado con el fin de ser capaz de actualizar la versión o tal vez usar otro proveedor al que sería necesario para diferentes clientes. Como se mencionó anteriormente, nos encontramos con situaciones en las que tuvimos que tratar con sesiones de hibernación separadas para una sola operación en el nivel de aplicación. Con el fin de mantener la coherencia en esas condiciones, se decidió utilizar una herramienta llamada atomikos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top