当前,我们有一组服务,每个服务都在各自的wildfly 9.0实例中运行。其中一些具有使用jberet 1.2.0实现的批处理作业。

每个wildfly实例都有一个用于服务的数据源(jdbc,oracle)和一个用于jberet的作业存储库。目前,jberet表已放入此wildfly实例的单个数据源的数据库中。

现在,我们将所有批处理作业移到单独的wildfly实例中,以使批处理产生的负载远离其他wildfly实例。

因此,现在我们有了一个带有x个数据源的standalone.xml(每个服务一个)。

定义作业存储库的最佳实践是什么?


一个单独的作业存储库,该存储库指向仅包含jberet内容的数据源(新的数据库)
每个服务有一个作业存储库,指向该服务的数据源(这甚至可能吗?如何?从https://github.com/fcorneli/jberet-eap6/blob/master/eap6-batch/src/main/resources/schema/wildfly-batch_1_0.xsd来看,我猜这是不可能/预期的。)
jberet数据是否已进入其中一项服务的现有数据库之一(如何选择其中一项?负载,大小?)

最佳答案

如果仅部署一个战争文件:当前,您只能拥有一个作业库。

如果您在一个Wildfly实例中部署了多个战争文件:
如果可以将WildFly 10用于批处理应用程序,则可以使用jboss-all.xml部署描述符为每个部署定义不同的作业存储库。

如果您确实希望将它们全部添加到同一数据库中,则如果要查看它们来自哪个应用程序,则在APPLICATIONNAME字段中有一个JOB_INSTANCE字段。名称从java:app/AppName解析。这可以帮助您过滤出正在查看的应用程序作业。

10-07 19:47
查看更多