本節說明已知的生命週期管理問題以及相關的解決方案。
將 ejb-timer-service 特性 minimum-delivery-interval 設定為 9000 之後,嘗試將 ejb-timer-service 特性 redelivery-interval-in-mills 設定為 7000 會導致 set 指令失敗。此時會顯示以下錯誤訊息:
[echo] Doing admin task set [exec] [Attribute(id=redelivery-interval-internal-in-millis) : Redelivery- Interval (7,000) should be greater than or equal to Minimum-delivery- interval-in-millis (9,000)] [exec] CLI137 Command set failed.
minimum-delivery-interval 是同一定時計時器的兩次傳送之間的最小間隔持續時間。
redelivery-interval-in-mills 是計時器服務在 ejbTimeout 失敗後嘗試重新傳送之前的等待時間。
問題在於,將重新傳送間隔特性與最小傳送特性相關的邏輯不正確,會阻止使用 GUI 或 CLI 設定任何最小傳送間隔大於重新傳送間隔的值。
minimum-delivery-interval-in-millis 的設定一定必須等於或高於 ejb-timer-service 特性 redelivery-interval-in-millis。問題在於 Application Server 驗證 redelivery-interval-in-millis 值是否大於 minimum-delivery-interval-in-millis 值時,所用的驗證檢查機制有錯誤。
使用這些特性的預設值,如下所示:
minimum-delivery-interval(default)=7000 redelivery-interval-in-millis(default)=5000
這些預設值以外的值將會產生錯誤。