我们正在将代码从WAS 8迁移到Liberty。在WAS 8中,我们有一个配置,用于将更新的策略放置在3到8之间的消息队列中,间隔为1小时。我们试图在Liberty中模仿相同的配置。有谁可以帮助我们如何配置它
EJB持久性计时器在Liberty中可用,而Scheduler则不可用。
EJB持久性计时器有很多配置选项,包括是否希望Liberty自动创建所需的表(这需要数据库用户有权这样做)或者是否要手动创建,其中case Liberty可以为您生成DDL。你可以在这个knowledge center document找到很多高级细节。
但是,接受所有默认值的最简单的解决方案是启用ejbPersistentTimer功能并配置DefaultDataSource,除非您另行配置,否则EJB Persistent Timers将自动使用它。
使用Derby的示例server.xml代码段:
<server>
<featureManager>
<feature>ejbPersistentTimer-3.2</feature>
... your other features
</featureManager>
<dataSource id="DefaultDataSource">
<containerAuthData user="user1" password="pwd1"/>
<jdbcDriver libraryRef="DerbyLib"/>
<properties.derby.embedded createDatabase="create" databaseName="timerdb"/>
</dataSource>
<library id="DerbyLib">
<fileset dir="C:/Drivers/derby" includes="derby.jar"/>
</library>
</server>