我已經創建了EJB 3 Timer,並將其部署到weblogic羣集中。 createTimer參數是createTimer(1000,20000,null); 這應該每20秒創建一個循環計時器。但計時器始終每30秒創建一次。我甚至將intervalDuration更改爲40和50秒,但超時方法始終每30秒觸發一次。ejb輪詢器每隔30秒觸發一次
下面是從WEBLOGIC_TIMERS表中的條目 1 @@ OSBNode2_1355845459844(BLOB)1355846770914 1000 TimerearTimerTest.jarTimerTest OSBDomain OSBCluster
下面是從ACTIVE表中的條目 timer.1 @@ OSBNode2_1355843156331 -96726833478167425/OSBNode2 OSBDomain OSBCluster 18-DEC-12 service.TimerMaster 8866906753834651127/OSBNode1 OSBDomain OSBCluster 18-DEC-12 service.SINGLETON_MASTER 8866906753834651127/OSBNode1 OSBDomain OSBCluster 18-DEC-12
誰能幫我調查爲什麼總是計時器trigge rs每隔30秒而不是我的intervalDuration值?
下面是EJB ----- >>
package com.timertest;
import java.util.*;
import javax.annotation.Resource;
import javax.ejb.*;
@Stateless(mappedName = "TimerTest")
public class TimerTest implements TimerTestRemote
{
@Resource
private SessionContext ctx;
@Override
public void createMyTimer()
throws EJBException
{
ctx.getTimerService().createTimer(1000, 20000, null);
}
@Timeout
public void timeout(Timer timer)
{
System.out.println("-> Timed Out ..."+ new Date());
}
}
Below is the and weblogic descripor-------->>
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-ejb-jar
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.2/weblogic-ejb-jar.xsd">
<wls:weblogic-enterprise-bean>
<wls:ejb-name>TimerTest</wls:ejb-name>
<wls:stateless-session-descriptor>
<wls:stateless-clustering>
<wls:home-is-clusterable>true</wls:home-is-clusterable>
<wls:home-load-algorithm>round-robin</wls:home-load-algorithm>
<wls:stateless-bean-is-clusterable>true</wls:stateless-bean-is-clusterable>
<wls:stateless-bean-load-algorithm>round-robin
</wls:stateless-bean-load-algorithm>
</wls:stateless-clustering>
<wls:business-interface-jndi-name-map>
<wls:business-remote>TimerTestRemote</wls:business-remote>
<wls:jndi-name>TimerTest</wls:jndi-name>
</wls:business-interface-jndi-name-map>
</wls:stateless-session-descriptor>
<wls:enable-call-by-reference>false</wls:enable-call-by-reference>
<wls:jndi-name>TimerTest</wls:jndi-name>
</wls:weblogic-enterprise-bean>
<wls:timer-implementation>Clustered</wls:timer-implementation>
</wls:weblogic-ejb-jar>
在此先感謝
嗨Nayan,感謝您的迴應..我遇到的問題是時間總是觸發在每30秒。在創建時間時給出的intervalDuration完全被忽略了......你能否讓我知道爲什麼intervalDuration沒有被反映出來。我甚至清理了表格並重新部署了時間,但仍然每隔30秒發生一次 –
@EswaramoorthyBabu我根據您的意見刪除了帖子,請參閱編輯部分 –