Bug 997671 - EJB timer service cannot disable persistence configuration.
EJB timer service cannot disable persistence configuration.
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: EJB (Show other bugs)
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: Jaikiran Pai
Jan Martiska
Russell Dickenson
Depends On:
  Show dependency treegraph
Reported: 2013-08-15 20:24 EDT by Eiichi Nagai
Modified: 2013-10-23 19:02 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2013-08-16 01:15:18 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Eiichi Nagai 2013-08-15 20:24:49 EDT
Description of problem:
EAP 5 could disable EJB timer service persistence by NoopPersistencePolicy. However, EAP 6 does not have setting to disable persistence configuration.

Version-Release number of selected component (if applicable):
JBoss EAP 6.1.0

How reproducible:

Steps to Reproduce:
1. Remove data-store attribute in timer-service subsistem.
ex) standalone.xml 
  <timer-service thread-pool-name="default">
    <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/>

2. Start EAP 6 server
3. You can confirm following exception.
ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.ejb3.timerService.fileTimerPersistence: org.jboss.msc.service.StartException in service jboss.ejb3.timerService.fileTimerPersistence: Failed to start service
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]
	at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
Caused by: java.lang.IllegalArgumentException: JBAS014747: abstractPath is null
	at org.jboss.as.controller.services.path.AbsolutePathService.convertPath(AbsolutePathService.java:81)
	at org.jboss.as.controller.services.path.PathManagerService.resolveRelativePathEntry(PathManagerService.java:85)
	at org.jboss.as.ejb3.timerservice.persistence.filestore.FileTimerPersistence.start(FileTimerPersistence.java:116)
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	... 3 more

Actual results:
Even if data-store is not necessary for persistence, we must set it.

Expected results:
We need setting to disable persistence configuration.

Additional info:
If you do not need EJB timer service persistence data, you can delete persistence data file (standalone/data/timer-service-data/*) before EAP server re-boot.
Comment 1 Jaikiran Pai 2013-08-16 01:15:18 EDT
This isn't a bug. The EJB spec says that timers are persistent by default, unless the user explicitly marks it as non persistent. 

If this is being requested as an enhancement i.e. disabling persistence completely at the server level then please open a dev discussion in the wildfly dev mailing list http://lists.jboss.org/pipermail/wildfly-dev/ so that we can decide whether this is worth introducing in upstream and what its implications will be for applications which have timer persistence enabled.

Note You need to log in before you can comment on or make changes to this bug.