Jakarta ee JBoss 4.2.2 MDB在Mesage上长时间运行
我试图使用MDB(onMessage)运行长时间运行的JDBCSQL查询,并将输出导出到磁盘 我在使用onMessage时遇到超时,因为确认发生在onMessage成功完成之后。理想情况下,我希望立即确认消息,因为工作处理(JDBC查询导出)内置了自己的重试/错误处理Jakarta ee JBoss 4.2.2 MDB在Mesage上长时间运行,jakarta-ee,jboss,jms,ejb-3.0,message-driven-bean,Jakarta Ee,Jboss,Jms,Ejb 3.0,Message Driven Bean,我试图使用MDB(onMessage)运行长时间运行的JDBCSQL查询,并将输出导出到磁盘 我在使用onMessage时遇到超时,因为确认发生在onMessage成功完成之后。理想情况下,我希望立即确认消息,因为工作处理(JDBC查询导出)内置了自己的重试/错误处理 MDB onMessage是否有一种方法可以允许这种即时确认,或者有更好的方法来处理Java EE空间中长时间运行的进程的异步运行。您可以使用TransactionManagementType.BEAN手动确认消息: @Messa
MDB onMessage是否有一种方法可以允许这种即时确认,或者有更好的方法来处理Java EE空间中长时间运行的进程的异步运行。您可以使用TransactionManagementType.BEAN手动确认消息:
@MessageDriven
@TransactionManagement(TransactionManagementType.BEAN)
public class TestMDB implements MessageListener {
@Resource
UserTransaction tx;
@Override
public void onMessage(Message msg) {
String txt="";
try {
tx.begin();
TextMessage txtMsg = (TextMessage) msg;
txt = txtMsg.getText();
tx.commit();
} catch (Exception e) {
try {
tx.rollback();
} catch (Exception e1) {
//....
}
}
// call some EJB transactional method
// or
try {
tx.begin();
//do some db stuff
tx.commit();
}catch(Exception e){
//...
}
}
}
这个问题提到了JDBC和SQL,但它是否与Microsoft Access有关?(mdb标记当前被定义为“ms access”的别名,并被自动转换。)我的错,mdb用于消息驱动Bean。我将尝试更新标签。谢谢