[
https://jira.jboss.org/jira/browse/JBTM-468?page=com.atlassian.jira.plugi...
]
Mark Little commented on JBTM-468:
----------------------------------
The recovery manager already supports suspending and resuming of itself
(suspendScan/resumeScan). But we will add the ability to terminate.
make RecoveryManager restartable
--------------------------------
Key: JBTM-468
URL:
https://jira.jboss.org/jira/browse/JBTM-468
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: Application Server Integration, Recovery
Affects Versions: 4.5
Reporter: Jonathan Halliday
Assignee: Mark Little
Fix For: 4.6
Stopping and restarting the transaction manager inside JBossAS causes problems, because
the recovery system does not like to be restarted once it is stopped:
java.lang.IllegalThreadStateException
at java.lang.Thread.start(Thread.java:571)
at
com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.start(RecoveryManagerImple.java:236)
at
com.arjuna.ats.arjuna.recovery.RecoveryManager.startRecoveryManagerThread(RecoveryManager.java:226)
at
com.arjuna.ats.jbossatx.jts.TransactionManagerService.start(TransactionManagerService.java:285)
Options would seem to be disposing the static singleton _recoveryManager in
RecoveryManager and recreating it on the next start, effectively causing a new
RecoveryManagerImple to be instantiated, or keep the RecoveryManagerImple instance and
rework its impl so that the PeriodicRecovery _periodicRecovery is disposed and recreated
on restart.
Either one has slightly odd semantics as the PeriodicRecovery is a Thread (which
can't be restarted so has to be replaced) and also the object that has the module list
and the server socket, so disposal and/or recreation of this state will be needed on
restart. Maybe better to rename stop() to dispose() or something similarly final, to
indicate the semantics are 'throw this away and start again' rather than giving
the impression that stop/start == suspend/resume which is misleading.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira