我正在使用一次接收多个XML文件的Web服务,其中包含学生的数据 我需要处理该文件并将值存储到数据库。
因为我使用了JMS队列。我正在创建对象消息并推送到队列。 但是当队列正在处理消息时,另一条消息可用于进程,并且由于我的数据库表被锁定。
考虑到我有一个包含5000个值的列表,并且在for循环中我正在迭代列表并处理JMS消息。
这正是我的情景。问题是在处理一条消息时,我的表被锁定,其余文件保持在队列中。
建议一些解决方案
答案 0 :(得分:1)
编辑:错字和链接
答案 1 :(得分:0)
如果我理解正确,那么数据库处理就在收听消息的侦听器中。
您必须担心数据库隔离和表/行锁定,因为每个侦听器都在自己的线程中运行。
您必须锁定行或将数据库上的ISOLATION级别设置为SERIALIZABLE,以保证一次只有一个线程可以INSERT或UPDATE表。