Applet无法使用JRE 6u25

时间:2011-05-14 07:02:04

标签: java applet snmp

我有一个连接到设备的小程序,并通过SNMP协议获得其参数。它在JRE 6u20上工作正常,但在将JRE更新到6u25后效果不佳。

在6u20上检索设备参数花了几秒钟,但是在6u25它需要更多,最后大多数参数都没有被检索。

有一个SwingWorker用于阅读每个参数,我使用这个Java SNMP Package

这些版本的JRE之间的差异是什么?如何找出导致问题的原因?

1 个答案:

答案 0 :(得分:4)

最后我弄明白了问题是什么。 Java SNMP Package GetRequest不是线程安全的。在JRE 6u20上没有问题,因为JRE 6u20中的SwingWorker默认线程池只有一个工作线程但在JRE 6u25中工作线程的数量是10

SwingWorker.MAX_WORKER_THREADS = 10;

通过在SNMP get request方法中添加“ synchronized ”关键字,问题就解决了。

synchronized public SNMPVarBindList getMIBEntry(String itemID)