Bug 997671 - EJB timer service cannot disable persistence configuration.
Summary: EJB timer service cannot disable persistence configuration.
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: JBoss Enterprise Application Platform 6
Classification: JBoss
Component: EJB
Version: 6.1.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Jaikiran Pai
QA Contact: Jan Martiska
Russell Dickenson
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-08-16 00:24 UTC by Eiichi Nagai
Modified: 2018-12-02 15:30 UTC (History)
1 user (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2013-08-16 05:15:18 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Eiichi Nagai 2013-08-16 00:24:49 UTC
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"/>
-->
  </timer-service>

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 05:15:18 UTC
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.