2012-02-08 72 views
0

我正在使用WebLogic 10.3.5羣集環境。 我的應用程序包含一個EJB定時器,爲此我實現了支持,如下面的example。 定時器創建爲一個確定超時的單次拍攝,然後在完成作業後再次創建。換句話說:WEBLOGIC_TIMERS中的重複定時器條目

  • 創建定時器(比方說)步行5分鐘超時
  • 定時器觸發並開始工作
  • 作業結束和一個新的計時器與同期
創建

據我所知,當應用程序服務器被觸發時,一次性定時器會被應用程序服務器自動取消。

我正在處理一個非常嚴重的問題,因爲現在我有大量的計時器實例。 在WEBLOGIC_TIMERS表中,我發現很多條目而不是一個。它們都有不同的START_TIME值和INTERVAL = -1。

這是一個生產環境,所以我很少或根本無法訪問它。 Weblogic節點已重新啓動,但沒有任何更改。

我該如何解決這個問題?我可以從WEBLOGIC_TIMERS中刪除行嗎?

+0

有關此奇怪行爲的更多信息。詢問計時器實例的下一次超時和剩餘時間(javax.ejb.Timer中的getNextTimeout()和getTimeRemaining()方法)分別獲得過去約24小時的日期。 DBMS與Weblogic集羣位於不同的服務器上,因此我請求某人檢查系統日期的差異。 Oracle服務器比weblogic服務器早幾分鐘。這可以解釋嗎?如何 ? – prepetti 2012-02-27 10:47:00

回答

1

那麼,事實證明,即使羣集的weblogic服務器和dbms服務器之間的系統日期的微小差異也會導致我描述的問題。 使系統管理員同步後,問題消失。