2010-05-12 11 views
7

WebSphere kümesinde, yalnızca bir kez yürütmek üzere bir zamanlayıcı görevi nasıl alabilirim? Bunun diğer uygulama sunucularında mümkün olduğunu biliyorum, ancak bunu WebSphere'de nasıl yapılacağını anlayamıyorum.WebSphere Kümesinde TimerManager'lı Tektonlar

cevap

3

Sorununuzun bir küme mi yoksa başka bir şey mi olduğundan emin değilim. Ancak bir yürütme işleminden sonra bir TimerListener'ı durdurmak isterseniz, yalnızca girilen zamanlayıcı değişkenini kullanır ve iptal edebilirsiniz.

Ör:

public static class MyTimer implements TimerListener { 
    public void timerExpired(Timer timer) {  
     timer.cancel(); 
    } 
} 

bu basit cevabı yazabilmek için özürlerimle daha örneği başına bir kez görev çalıştıran küme çevre ile ilgili bir sorun yaşıyorsanız.

2

Durumunuza uyup uymadığını değerlendirmek için this solution numaralı telefonu okumanız gerekir.

5

WebSphere'ın Zamanlayıcı hizmetini, istediğiniz şeyi yapmak için kullanabilirsiniz. Küme kapsamında bir zamanlayıcı hizmeti tanımlarsanız, her küme üyesi bir zamanlayıcı arka planını çalıştırır, ancak görev DB'si paylaşılır, bu da yalnızca bir tanesini eklediğiniz görevi gerçekleştirir. Her 30 saniyede bir DB'yi (yapılandırılabilir) yoklarlar ve ilk olarak görevin gerçekleştirileceğini görürler. 3.1 istediğini yapmasına yardımcı olabilecek yeni özellikler sunuyor EJB akılda

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/welc6tech_sch_adm.html

tutun, ama bu sadece 8 WAS edilir. Terracotta/ehcache kilitleme sistemini kullanabilirmiyiz