2011-10-20 6 views
0

나는 데이터베이스와 자바 쓰레드 교착 상태에 문제가있다. 그래서 잠그기 위해 자바 쓰레드를위한 시간을 정할 수 있으며, 모든 시스템 멈춤을 막기 위해 풀어 준다. 이 트릭을 통해 DB에서 잠금을 해제하여 정상적인 워크 플로로 시스템을 되돌려 놓고 일부 쿼리가 실패하더라도 아무런 문제가 발생하지 않도록합니다 ...잠시 후 잠금 장치를 확보하고 해제하려면 어떻게해야합니까? Java

+0

를 사용하여, 당신은 식별하고 루트를 고정 고려해야한다 증상을 해킹하는 대신에 – lobster1234

+0

시간이 많이 걸리지 만 매우 드문 것이므로 로컬 시스템에서 재현 할 수 없으므로 문제를 찾을 수 없습니다. ( – whatswrong

+1

Java 스레드 교착 상태가 있습니까? 아니면 데이터베이스 교착 상태 (또는 라이브 록)가 있습니까? –

답변

0

시도 Statement.setQueryTimeout().

그러나 대부분의 경우이 작업은 적절한 해결책이 아닌 해킹으로 간주되어야합니다. @ lobster1234가 말했듯이 근본 원인을 찾아 수정합니다.

+0

AFAIK 쿼리 시간 초과가 모든 JDBC 드라이버에 구현되지 않았습니다. –

0

데이터베이스가 지원하는 경우이 구성되어 있는지 확인, 제한 시간 대기 (잠금) 또는 IMO (즉시 잠금 오류를보고합니다)를 사용할 경우, NOWAIT 옵션

+0

조언을 주셔서 감사합니다, 이것을 확인하려고합니다 – whatswrong

+0

나는 postgresql 잠금 대기 시간 제한이 지원되지 않습니다, 교착 상태 만 참조하십시오 – whatswrong

관련 문제