Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SimpleReadWriteEJBLock的锁定问题_Java_Locking_Ejb 2.x_Jboss 4.0.x - Fatal编程技术网

Java 使用SimpleReadWriteEJBLock的锁定问题

Java 使用SimpleReadWriteEJBLock的锁定问题,java,locking,ejb-2.x,jboss-4.0.x,Java,Locking,Ejb 2.x,Jboss 4.0.x,首先,我正在使用Oracle和JBoss 4.0.4,在JBoss方面我几乎是个新手 我们的分布式应用程序使用CMPBeans和SimpleReadWrite。。。etc锁定策略,据我所知,这似乎是当时的最佳选择。(原始开发人员不再与我们合作,我无法轻易从他们那里获得反馈,更不用说完全缺乏文档了) 相关配置如下所示: <container-configuration extends="Standard CMP 2.x EntityBean with cache invalidation"&

首先,我正在使用Oracle和JBoss 4.0.4,在JBoss方面我几乎是个新手

我们的分布式应用程序使用CMPBeans和SimpleReadWrite。。。etc锁定策略,据我所知,这似乎是当时的最佳选择。(原始开发人员不再与我们合作,我无法轻易从他们那里获得反馈,更不用说完全缺乏文档了)

相关配置如下所示:

<container-configuration extends="Standard CMP 2.x EntityBean with cache invalidation">
  <container-name>Standard CMP 2.x EntityBean</container-name>
  <locking-policy>org.jboss.ejb.plugins.lock.SimpleReadWriteEJBLock</locking-policy>
  <container-cache-conf>
    <cache-policy>org.jboss.ejb.plugins.LRUEnterpriseContextCachePolicy</cache-policy>
    <cache-policy-conf>
      <min-capacity>150</min-capacity>
      <max-capacity>1000000</max-capacity>
      <overager-period>600</overager-period>
      <max-bean-age>1800</max-bean-age>
      <resizer-period>400</resizer-period>
      <max-cache-miss-period>60</max-cache-miss-period>
      <min-cache-miss-period>1</min-cache-miss-period>
      <cache-load-factor>0.75</cache-load-factor>
    </cache-policy-conf>
  </container-cache-conf>
  <container-pool-conf>
    <MaximumSize>1000</MaximumSize>
  </container-pool-conf>
  <cache-invalidation>true</cache-invalidation>
</container-configuration>
事务超时,然后在锁定的表上锁定来自每个其他用户的每个其他事务。每次发生这种情况时,我们都必须重置服务或终止锁定的DB会话。。。或者希望问题会自行解决(有时锁会在几秒钟内解除)


有什么不对劲吗?一个更具体的问题是,为什么超时事务最终锁定了资源,而不是安静地回滚?非常感谢您的帮助。

我忘了包括原始配置中的相关部分:

<container-configuration>
  <container-name>Standard CMP 2.x EntityBean with cache invalidation</container-name>
  <call-logging>false</call-logging>
  <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-binding-name>
  <container-interceptors>
        ...      
  </container-interceptors>
  <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
  <instance-cache>org.jboss.ejb.plugins.InvalidableEntityInstanceCache</instance-cache>
  <persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
  <locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
  <container-cache-conf>
        ...      
  </container-cache-conf>
  <container-pool-conf>
    <MaximumSize>100</MaximumSize>
  </container-pool-conf>
  <commit-option>A</commit-option>
</container-configuration>

带缓存失效的标准CMP2.x EntityBean
假的
实体rmi调用程序
...      
org.jboss.ejb.plugins.EntityInstancePool
org.jboss.ejb.plugins.InvalidableEntityInstanceCache
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager
org.jboss.ejb.plugins.lock.QueuedPressimisticejblock
...      
100
A.

我忘了包括原始配置中的相关部件:

<container-configuration>
  <container-name>Standard CMP 2.x EntityBean with cache invalidation</container-name>
  <call-logging>false</call-logging>
  <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-binding-name>
  <container-interceptors>
        ...      
  </container-interceptors>
  <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</instance-pool>
  <instance-cache>org.jboss.ejb.plugins.InvalidableEntityInstanceCache</instance-cache>
  <persistence-manager>org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>
  <locking-policy>org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock</locking-policy>
  <container-cache-conf>
        ...      
  </container-cache-conf>
  <container-pool-conf>
    <MaximumSize>100</MaximumSize>
  </container-pool-conf>
  <commit-option>A</commit-option>
</container-configuration>

带缓存失效的标准CMP2.x EntityBean
假的
实体rmi调用程序
...      
org.jboss.ejb.plugins.EntityInstancePool
org.jboss.ejb.plugins.InvalidableEntityInstanceCache
org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager
org.jboss.ejb.plugins.lock.QueuedPressimisticejblock
...      
100
A.
这看起来是。

这看起来是