小编Sun*_*nce的帖子

第一台服务器关闭时,EJB Persistent Timer不会在第二台服务器上触发

计时器目前只在一台服务器上启动,这是我想要的,但当我关闭该服务器时,它不会在另一台服务器上启动.

  • 我有2个自由16.x服务器,它们都使用相同的数据源连接到相同网络版本的derby db.

server.xml中:

<dataSource id="DefaultDataSource" jndiName="jdbc/DefaultDataSource" connectionSharing="MatchOriginalRequest" commitOrRollbackOnCleanup="rollback">
    <jdbcDriver libraryRef="DerbyLib"/>
    <properties.derby.client databaseName="/opt/db-derby-10.13.1.1-bin/databases/TEST_DB" createDatabase="false" serverName="localhost" portNumber="1088"/>
    <containerAuthData user="user1"  password="{xor}XXXX" />
</dataSource>
<library id="DerbyLib">
    <fileset dir="/opt/db-derby-10.13.1.1-bin/lib"/>
</library>
Run Code Online (Sandbox Code Playgroud)
  • 每个服务器都使用EJB计时器为其部署了相同的EAR

EJB:

@Schedule(hour="*", minute="*", second="*", persistent=true)  
public void timerExpired()
{
    log.debug("%s collecting status...", System.getProperties().get("wlp.server.name"));
}
Run Code Online (Sandbox Code Playgroud)

当他们每个人都使用他们自己的嵌入式版本的德比时,定时器每秒都会在每个服务器上启动.然后我将它切换到德比的网络版本,其中两个服务器使用相同的数据源,现在只有一个触发我想要的,但我希望它在第一个服务器关闭时继续触发.

ejb timer java-ee websphere-liberty

2
推荐指数
1
解决办法
158
查看次数

标签 统计

ejb ×1

java-ee ×1

timer ×1

websphere-liberty ×1