Arka uç webapp Tomcat 6 sunucu uygulamasında dağıtılıyor. Webapp'ta çeşitli izleme konuları başlatıldı. Sorun kapatma ile.Tomcat üzerinde çalışan bir webapp tarafından sahip olunan yerel iletilerin düzgün bir şekilde nasıl kapatılacağı anlatılıyor
- Webapp'in kapatılması istendiğini nasıl anlarım?
- Bunu iş parçacıklarımda nasıl kullanmalıyım?
Şu anda iş parçacığı aşağıdaki gibidir. Sunucuya kapatma talimatı verildiğinde (shutdown.sh), temiz bir kapatma işlemi tamamlanır ve bu iş parçacığı nedeniyle askıda kalmaz - Neden?
class Updater extends Thread {
volatile boolean interrupted = false;
@Override
public void run() {
Integer lastUpdateLogId = CommonBeanFactory.getXXX()
.getLastUpdateLogRecordKey(MLConstants.SMART_DB_NAME);
List<UpdateLog> updateLogRecords;
while (!interrupted) {
boolean isConfigurationUpdateRequested = false;
try {
TimeUnit.SECONDS.sleep(5);
} catch (InterruptedException e) {
setInterrupted(true);
}
updateLogRecords = CommonBeanFactory.getXXX()
.getLastFactsUpdateLogRecords(MLConstants.XXXX, lastUpdateLogId);
for(UpdateLog updateLog : updateLogRecords) {
if (updateLog.getTable_name().equals(MLConstants.CONFIG_RELOAD)) {
isConfigurationUpdateRequested = true;
}
lastUpdateLogId = updateLog.getObjectKey();
}
if (isConfigurationUpdateRequested) {
Configuration.getInstance().loadConfiguration();
}
}
}
public boolean getInterrupted() {
return interrupted;
}
public void setInterrupted(boolean interrupted) {
this.interrupted = interrupted;
}
}