【发布时间】:2013-09-08 00:38:44
【问题描述】:
我的网络服务一次接收多个包含学生数据的 XML 文件 我需要处理该文件并将值存储到数据库。
为此,我使用了 JMS 队列。我正在创建对象消息并推送到队列。 但是当队列正在处理消息时,另一条消息可用于处理,因此我的数据库表被锁定。
考虑到我有一个包含 5000 个值的列表,并且在 for 循环中我正在迭代列表并处理 JMS 消息。
这正是我的场景。问题是在处理一条消息时,我的表被锁定,其余文件保持在队列中。
提出一些解决方案
【问题讨论】:
-
我不太明白JMS和数据库之间的联系。您使用什么 JMS 提供程序?
-
实际上我只是通过使用 JMS 队列在后端处理数据库操作,以便用户立即获得响应并在后端运行处理
-
请出示代码。您的方法或设计似乎有问题。
-
从 JMS 队列读取和写入数据库通常需要考虑事务性。你的交易边界在哪里?您是否在每条消息之后提交或在事务中聚合多条消息等。请在问题中详细说明和/或阅读事务。这可能是问题的一部分
-
再次,请显示代码和/或添加更多信息,以便我们可以在那里回答:oracle row contention causing deadlock errors