【发布时间】:2010-10-01 07:11:12
【问题描述】:
我们已经实现了基于客户端服务器套接字的应用程序来处理多个购物车请求。每天我们都会收到数以千计的购物车请求。
为此,我们实现了多线程架构来同时处理请求。我们将 Oracle 连接池用于数据库操作,并为连接池大小设置了最佳值。根据我们的业务流程,我们有一个主数据库表,我们需要通过多个线程同时使用多个连接会话更新同一组行。现在遇到了一些死锁问题,因为多个线程将尝试同时使用多个连接会话更新同一行上的数据,而且我们还有其他一些表上的主键违规。有时,通过同时在多个连接会话中插入相同的数据,数据库也会被锁定。
请建议我立即处理上述问题的好方法。
【问题讨论】:
-
如果您能向我们展示一些代码,那将有所帮助...一般来说,如果您必须更新相同的数据,这些操作将被序列化...