Major change in the java package naming. This has been held off for some time now, but it really needed doing. The future packaging of all i-scream products will be; uk.org.iscream.<product>.<subpart>.* In the case of the central monitoring system server this will be; uk.org.iscream.cms.server.* The whole server has been changed to follow this structure, and tested to a smallish extent. Further changes in other parts of the CMS will follow.
Implemented Queue size limiting.
The whole server package structure has been changed. Old Package: uk.ac.ukc.iscream.* New Package: uk.org.iscream.*
Now makes use of the ConfigurationProxy.
Given all the classes that extend Thread a name using Thread.setName(). It is only representative as far as it will tell us which class the Thread is, but this will go some way to aiding debugging. If time permitted, more effort could be taken to name each thread according to what it was dealing with.
Changes due to the alterations in the XML creation code. The XMLPacketMaker now only needs to be created once, and can then be called multiple times to create XML packets. This should be more efficient in the long run.
Further attempts to sort this class out. This has gone very much to the extreme now. Every access to the lists and hostmap is synchronized on this object. This means that only one of the bits may be executed at once. Whilst this may clearly solve some problems, it does open this class to becoming a major bottleneck, and could possibly lead to deadlock externally (although I think our Queue's avoid this issue).
Just for the record, Collections.synchronizedList() doesn't work :) I've now manually synchronized the methods that access the lists and map, and put the sections of the run method that do the same in synchronized blocks. This should work, I hope. A lot of hoping seems to be going on here :)
Added a try catch section for creating the XMLPacket. Hopefully fixed the JVM deadlock/crash thing. Fixed the problem with clients not receiving Queue data if they've called the SETHOSTLIST command on a Handler.
Some ClassCastExceptions going on that only just came up when the client got to 1.1 protocol :)
Changes to fix a bug where the server wouldn't send queueStat packets if the client had set a hostlist.
Oh, some nasty concurrency stuff going on in here. If I've understood the API correctly what I've done should make the Lists's and Map's thread safe, without worrying about synchronize() bits everywhere.
Modification to the Queue system; - interval of monitor is now configurable. - attempt to identify each Queue better, although this is still hard.
Now monitor the Queue here every 60 seconds, reporting back to the Queue in the PacketSorter class.
All of these classes have been javadoc'd and commented.
General bug fixing. It now works for the features it should.
Now supports "all hosts".
Initial Checkin. This class sends XML packets to those clients that have shown interest in receiving it. This should make using the client more scalable.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.