2011-05-14 4 views
3

장치에 연결하고 해당 매개 변수를 SNMP 프로토콜로 가져 오는 애플릿이 있습니다. JRE 6u20에서는 정상적으로 작동하지만 JRE를 6u25로 업데이트 한 후 제대로 작동하지 않습니다.애플릿이 JRE 6u25에서 작동하지 않습니다.

6u20에서 장치 매개 변수를 검색하는 데 몇 초가 걸렸지 만 6u25에서는 훨씬 많은 시간이 걸렸으며 결국에는 대부분의 매개 변수가 검색되지 않았습니다.

각 매개 변수를 읽을 수있는 SwingWorker가 있으며 여기에 Java SNMP Package을 사용합니다.

이러한 JRE 버전 간의 차이점은 무엇입니까? 문제를 만드는 방법을 찾는 방법?

+1

@ 앤드류 : 감사합니다. 질문을 편집했습니다. – Mehdi

+0

아마도 분명한 질문 일지 모르지만 버그 데이터베이스를 확인 했습니까? –

+0

@Andrew : 6u24 및 6u23 버전을 사용해 보았지만 6u25로 작동하지 않습니다. 아니요, 버그 데이터베이스를 확인하지 않았습니다. 나는 그것을 지금 점검 할 것이다. – Mehdi

답변

4

마침내 나는 문제가 무엇인지 알아 냈습니다. Java SNMP Package GetRequest는 스레드로부터 안전하지 않습니다. JRE 6u20에서 SwingWorker의 기본 스레드 풀은 하나 개의 작업자 스레드를 가지고 있기 때문에 JRE를 6u20에 아무 문제가 없었다하지만, JRE에 SNMP 얻을 요청에 "동기화"키워드를 추가하여 작업자 스레드의 수는 10

SwingWorker.MAX_WORKER_THREADS = 10; 

입니다 6u25 방법은 문제가 해결됩니다.

synchronized public SNMPVarBindList getMIBEntry(String itemID) 
관련 문제