2012-04-02 84 views
2

是否有人知道如何使EJBTimers不在文件系統中,而是在選定的數據庫表中持久化? 一樣,例如,在JBoss中4.XX與EJB-deployer.xml的幫助:JBoss 7.1:持久EjbTimer - 如何?

<?xml version="1.0" encoding="UTF-8"?> 
<server> 
... 
    <mbean code="org.jboss.ejb.txtimer.EJBTimerServiceImpl" 
    name="jboss.ejb:service=EJBTimerService"> 
    <attribute name="RetryPolicy">jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay</attribute> 
    <attribute name="PersistencePolicy">jboss.ejb:service=EJBTimerService,persistencePolicy=database</attribute> 
    <attribute name="TimerIdGeneratorClassName">org.jboss.ejb.txtimer.BigIntegerTimerIdGenerator</attribute> 
    <attribute name="TimedObjectInvokerClassName">org.jboss.ejb.txtimer.TimedObjectInvokerImpl</attribute> 
    <depends optional-attribute-name="TransactionManagerFactory" proxy-type="org.jboss.tm.TransactionManagerFactory"> 
     jboss:service=TransactionManager 
    </depends> 
    </mbean> 

    <!-- A retry policy that uses a fixed interval in milli seconds --> 
    <mbean code="org.jboss.ejb.txtimer.FixedDelayRetryPolicy" name="jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay"> 
    <attribute name="Delay">100</attribute> 
    </mbean> 

    <mbean code="org.jboss.ejb.txtimer.DatabasePersistencePolicy" name="jboss.ejb:service=EJBTimerService,persistencePolicy=database"> 
    <!-- DataSourceBinding ObjectName --> 
    <depends optional-attribute-name="DataSource">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends> 
    <!-- The plugin that handles database persistence --> 
    <attribute name="DatabasePersistencePlugin">org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</attribute> 
    <!-- The timers table name --> 
    <attribute name="TimersTable">TIMERS</attribute> 
    </mbean> 
</server> 

我發現沒有什麼如何更換這一個:

<timer-service thread-pool-name="default"> 
    <data-store path="timer-service-data" relative-to="jboss.server.data.dir"/> 
</timer-service> 

迫使定時器堅持DB。

在此先感謝!

回答

3

目前,持久化EJBTimers僅存儲到文件系統。相應的issue已經存在。不幸的是,它只針對EAP系統......請看Cron Module of Seam 3。該模塊與Quartz一起工作,它提供JDBC存儲的定時器。

+0

謝謝您提供清晰和翔實的答案! – Korvin 2012-04-13 14:17:06

+1

@Korvin:不客氣!如果您接受答案,我會很高興:) – kraftan 2012-04-13 18:41:52