Java가 제 프로그래밍 언어가 아니기 때문에 Java에 대한 전문 지식이 일반적으로이 영역에 제한되어 있습니다.Java 콘솔 응용 프로그램이 잠겼습니다.
시나리오
는이 응용 프로그램은 서비스 나 데몬처럼 무기한 실행하도록되어있다. 주된 목적은 다른 프로세스에 의해 삽입 될 때 DB의 일부 행을 처리하는 것입니다.
응용 프로그램은 때때로 System.out.println을 통해 로그 메시지를 출력합니다. 또한 다른 로그 파일을 사용합니다. 이전에 log4j를 사용했지만 그 순간은 비활성화되어 있습니다.
또한 도움이 될 경우 Windows 서버 환경에서 실행 중입니다. 나는 지금 리눅스를 사용할 수 없다.
문제
문제, 드문 경우에, 나는 잠 깁니다 준비/찌르다 ENV에서 응용 프로그램을 찾거나 더 이상 DB 행을 처리하지 않는 것이다. 화면에 Enter를 몇 번 누르고 나면 이전과 같이 평소대로 처리를 시작합니다. 사용자의 입력을 기대하지 않기 때문에 이상합니다. 응용 프로그램에있는 모든 입력은 명령 줄에서 또는 DB에서입니다.
또한 DB 문제가 아닌지 확실히 알고 있습니다. 앱이 테이블 잠금을 기다리지 않습니다. 일부 파일 잠금 또는 System.out 스트림이 잠겨있을 수 있습니다. 나중에 화면의 키 스트로크가 응용 프로그램을 '깨우는'것을 볼 때까지 나는 가능성을 생각하지 않았습니다.
누군가 내가 이것을 더 디버깅 할 수있는 방향으로 가르키고 있는지 궁금합니다.
감사합니다. 원인이라고 생각합니다. 나는 때때로 나는 선택 모드에 있다는 것을 결코 알지 못한다. – Scalable