Tomcat에서 실행중인 서블릿에서 22 분마다 메소드를 실행하려고합니다. 그래서 나는이 코드를 사용하고 있습니다 :이 내가 오류를 타이머에 관한 모든 시간을 얻고로 할 수있는 끔찍한 방법입니다 느낌이있어타이머가 Tomcat 서버에서 문제를 일으킬 때
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
update();
} catch (SQLException | NamingException | InterruptedException e1) {
e1.printStackTrace();
}
}
}, 22 * 60 * 1000, 22 * 60 * 1000);
을 때마다 나는의 새 버전을 업로드 서블릿 이전 타이머가 멈추지 않는다고 생각합니다. 그런 다음 데이터베이스 연결 경고를받습니다. 내가 모든 것을 다시 시작하고 신선한 것을 시작하면.
javax.naming.NameNotFoundException: Name comp is not bound in this Context
at org.apache.naming.NamingContext.lookup(NamingContext.java:770)
at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at my.app.database.DatabaseManager.connect(DatabaseManager.java:44)
at my.app.database.DatabaseManager.returnInfo(DatabaseManager.java:133)
at my.app.genParse.Generate.updateHistory(Generate.java:89)
at my.app.MyServer$1.run(MyServer.java:52)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)
또한 새로운 버전으로 재 출시에
:SEVERE: The web application [/myApp] appears to have started a thread named [Timer-7] but has failed to stop it. This is very likely to create a memory leak.
무슨 달성하거나이를 방지 할 수있는 더 좋은 방법?
감사합니다. 지금 사용하고 있으며 더 잘 돌아가고있는 것으로 보입니다. – RegDHunter