问题标签 [jberet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java-ee-7 - 在 Java 批处理中处理单独的事务 (JSR-352)
我正在使用 JSR 352 java 批处理规范的 jberet 实现。
实际上,我需要一个单独的事务来进行单一更新,如下所示:
我首先尝试将resetLastProductsUpdateDate方法标记为@Transactional(REQUIRES_NEW),但是没有成功。
我的问题是:
- 有没有更优雅的方式来实现这个单一的交易而无需手动处理交易?
- 虽然 UserTransation 有效,但 EntityManager.transaction 无效。我不明白为什么。
下面的类是从 Batchlet 注入的,可以正常工作;为什么我不能在resetLastProductsUpdateDate方法上使用 @Transactional 注释呢?
}
编辑
实际上,我想这两个 usertransaction 都不是一个好的解决方案,因为它会影响整个 itemwriter 事务管理。仍然不知道如何处理事务隔离:(
java - Java批处理:jobContext transientUserData未通过步骤
我正在使用 jsr-352 规范的 JBeret 实现。
这是我的工作配置,简而言之:
Itemwriter 类做这样的事情:
现在我希望在step2上调用 jobContext.getTransientUserData() 时实现更新的列表,而不是我得到的只是一个空值。
此外,每个分区都有自己的 jobContext.transientUserData,所以它在分区开始时总是以空值开始。
我认为 jobContext 本身可能会因其名称而误导常见错误。
在整个工作中带来一些数据的自然方式是什么?
java - Java EE 7 批处理 API (JSR-352):可以停止单个步骤而不是所有工作吗?
注意:JSR-352,Java EE,wildfly 17.0.1,没有 spring
我在 xml 中定义了以下工作:
我的要求是处理作业停止,我可以在 xmlRead 中覆盖 stop() (第一步)。
问题是我还需要确保始终执行第二步,但是从我的测试来看,如果我在第一批 XmlRead 中运行以下代码:
最后,作业的退出状态将为 FAILED(正确!),但永远不会执行第二步。
知道如何模拟这种情况吗?
jakarta-ee - Java Batch 作业:如何等待用户决定?
在我的 Java 批处理作业(JSR-352,JBeret)中,我已经达到了我(可选)想要等待用户决定的地步。根据我的研究,JSR-352 规范没有提供“等待”的概念。所以问题是,还有哪些其他选择?
我目前的考虑:
- 我不希望拆分工作,因为这需要保持部件之间的连接以满足监控需求。
- 仅出于此目的将 JMS 引入项目似乎有些过头了。
- 通过 JPA 或 JDBC 轮询数据库似乎也不是一个好的解决方案。
- 作业启动时具体信息尚不可用,因此不能作为作业参数传递。
jberet - Jberet - 可重试的异常类工作?
有没有办法在日志中看到重试正在发生?在将其实施到生产中之前,我需要知道这是否在我们的测试环境中工作。
由于键的一部分是时间戳和从各种来源进入表的数据,因此我们得到以下信息的情况很少见。当我们得到 - DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505 时,我们需要让 writer 重试
jakarta-ee - 如何在 java ee batch / jberet 中访问分区属性
我的工作定义如下:
引用的映射器创建一个具有定义值的属性数组,并返回它:
它在步骤开始时被正确调用,并返回定义了正确键的属性。
但是,我无法从我的阅读器步骤中获取分区计划属性。作业上下文属性和步骤上下文属性都不包含任何内容。我在控制台中没有看到错误。作业实例参数只包含运行时设置的参数。没有任何参数/属性名称冲突。尝试使用 @BatchProperty 注入它们,将字段保留为空。
批处理开始如下:
我错过了什么?
jberet - 块 ItemReader 处理多个文件
我需要通过块处理多个输入文件。在我重建轮子之前,是否有一个 BeanIO ItemReader 可以做到这一点?还是另一种方法?
jberet - 在输入文件末尾执行的侦听器
我有一个使用块读取文件并将记录插入表的过程。我需要能够在输入文件的开头插入一行到父表中,当文件关闭时,我需要更新在开始时插入的父表行。是否有听众或方法可以做到这一点?
jberet - BeanIO 项目阅读器评论需要 reader.markSupported() 返回 true
我的 beanioItemReader 映射定义如下 -
并得到例外 -
我没有看到任何记录在案的属性可以传递给 beanioItemReader 以征求意见。我可以/如何让评论起作用吗?
jberet - 使用 Jberet 时可以在 ItemProcessor 中获取 beanIOItemReader 记录号吗?
我正在使用一个块来读取文件并将内容插入数据库,表中的一列需要输入文件中的记录号。有没有办法在传递给 ItemProcessor 的对象中获取它或从 ItemProcessor 中获取它?