[jboss-jira] [JBoss JIRA] (WFLY-9278) EJB Acces Timeout is ignored on SFSBs when using distributed caches
Bernhard Hablesreiter (JIRA)
issues at jboss.org
Wed Aug 30 03:04:00 EDT 2017
Bernhard Hablesreiter created WFLY-9278:
-------------------------------------------
Summary: EJB Acces Timeout is ignored on SFSBs when using distributed caches
Key: WFLY-9278
URL: https://issues.jboss.org/browse/WFLY-9278
Project: WildFly
Issue Type: Bug
Components: EJB
Affects Versions: 11.0.0.CR1
Reporter: Bernhard Hablesreiter
Attachments: wildfly-request-test.zip
When using distributed caches on Stateful Session Beans, the configured access timeout is ignored. However, the caches acquire-timeout is used instead, leading to a "org.infinispan.util.concurrent.TimeoutException: ISPN000299: Unable to acquire lock after x seconds".
The configuration:
{code:xml}
<session-bean>
<stateless>
<bean-instance-pool-ref pool-name="slsb-strict-max-pool"/>
</stateless>
<stateful default-access-timeout="2000" cache-ref="distributable" passivation-disabled-cache-ref="simple"/>
<singleton default-access-timeout="2000"/>
</session-bean>
<pools>
<bean-instance-pools>
<strict-max-pool name="slsb-strict-max-pool" derive-size="from-worker-pools" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
<strict-max-pool name="mdb-strict-max-pool" derive-size="from-cpu-count" instance-acquisition-timeout="5" instance-acquisition-timeout-unit="MINUTES"/>
</bean-instance-pools>
</pools>
<caches>
<cache name="simple"/>
<cache name="distributable" passivation-store-ref="infinispan" aliases="passivating clustered"/>
</caches>
...
<subsystem xmlns="urn:jboss:domain:infinispan:4.0">
...
<cache-container name="ejb" aliases="sfsb" default-cache="passivation" module="org.wildfly.clustering.ejb.infinispan">
<local-cache name="passivation">
<locking isolation="REPEATABLE_READ" acquire-timeout="10000"/>
<transaction mode="BATCH" />
<file-store passivation="true" purge="true"/>
</local-cache>
</cache-container>
...
</subsystem>
{code}
With the above configuration, any access to a @Stateful-component does not timeout after 2 seconds, but the 10 seconds configured on the infinispan-cache.
I have attached a simple JSF web application as an eclipse project to reproduce the problem. The application calls a method on a sfsb, increments a counter and waits for 300ms. If one sends multiple request at the same time (e.g. by pressing F5 repeatedly), the problem can easily be reproduced after a few seconds.
If the cache-ref is set to "simple" the configured access timeout works as exptected, however the access to the stateful bean does not appear to be in sync with the requests the client sent. We came around this issue when trying to migrate vom WF9 to WF10 (see also this forum post: https://developer.jboss.org/thread/266303). When the cache-ref is set to "distrubted", the requests are handled correctly/in correct order (in WF9 this was also the case with cache-ref "simple"), but the access timeout is ignored.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
More information about the jboss-jira
mailing list