Datanucleus,是PMF线程保存? tomcat中的问题

时间:2012-05-29 07:57:37

标签: jdo datanucleus

你知道datanucleus中的PMF是否是线程安全的吗?我有以下问题:

我有一个PMF创建了几个PersistenceManagers,一个用于方法调用。 PMF是线程和方法之间的共享。
在单线程中运行应用程序时,Everyghing是可以的,但是当在Tomcat上部署应用程序压力测试表明,在某些情况下,持久性管理器是在同时进行的getObjectById调用上进行堆栈。
这不是锁定问题,因为非事务性读取已经开启。多线程标志也设置为true 每当我创建新的PMF时,问题就会消失。但这种解决方案很昂贵。 有关更好解决方案的任何想

1 个答案:

答案 0 :(得分:1)

PMF是线程安全的,因为JDO规范非常清楚地说明了这一点。 PM不是线程安全的,所有DataNucleus文档都会根据请求在一个PM上提供建议。由于您(比方说)每个请求有1个PM,因此没有锁定的可能性,因为PM与另一个PM没有共享。

如果你说你有阻止,你可以很容易地提供一个线程转储,显示两个PM如何相互锁定,然后演示什么阻止了什么和为什么。可能性...... L2缓存,商店经理(数据存储区)。显然使用最新版本对所有这些都有意义

相关问题