ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/server/uk/org/iscream/cms/server/client/monitors/Heartbeat__Monitor.java
(Generate patch)

Comparing projects/cms/source/server/uk/org/iscream/cms/server/client/monitors/Heartbeat__Monitor.java (file contents):
Revision 1.8 by tdb, Wed Mar 7 01:22:47 2001 UTC vs.
Revision 1.11 by tdb, Wed Mar 7 21:38:14 2001 UTC

# Line 53 | Line 53 | public class Heartbeat__Monitor extends MonitorSkeleto
53                  _logger.write(toString(), Logger.WARNING, "Erronous Monitor.Heartbeat.checkPeriod value in configuration using default of " + checkPeriod + " seconds");
54              }
55              
56 <            // perform the checks (use HB hash, although they *should* be the same)
57 <            Iterator i = _hosts.keySet().iterator();
58 <            while(i.hasNext()) {
59 <                // get host
60 <                String source = (String) i.next();
61 <                // check it
62 <                boolean remove = analyseHB(source);
63 <                if(remove) {
64 <                    i.remove();
56 >            synchronized(this) {
57 >                // perform the checks (use HB hash, although they *should* be the same)
58 >                Iterator i = _hosts.keySet().iterator();
59 >                while(i.hasNext()) {
60 >                    // get host
61 >                    String source = (String) i.next();
62 >                    // check it
63 >                    boolean remove = analyseHB(source);
64 >                    if(remove) {
65 >                        i.remove();
66 >                    }
67                  }
68              }
69              
# Line 74 | Line 76 | public class Heartbeat__Monitor extends MonitorSkeleto
76          if (packet.getParam("packet.attributes.type").equals("heartbeat")) {
77              String source = packet.getParam("packet.attributes.machine_name");
78              if (!_hosts.containsKey(source)) {
79 <                HashMap registerHash = new HashMap();
80 <                registerHash.put(source, new Register(source, _name, 1));
81 <                _hosts.put(source, new HeartbeatHolder(registerHash));
79 >                synchronized(this) {
80 >                    HashMap registerHash = new HashMap();
81 >                    registerHash.put(source, new Register(source, _name, 1));
82 >                    _hosts.put(source, new HeartbeatHolder(registerHash));
83 >                }
84              }
85              HeartbeatHolder lastHeartbeat = (HeartbeatHolder) _hosts.get(source);
86              lastHeartbeat.setLastHeartbeat(System.currentTimeMillis()/1000);
# Line 131 | Line 135 | public class Heartbeat__Monitor extends MonitorSkeleto
135          // time since last heartbeat (seconds)
136          long timeSinceLastHB = (System.currentTimeMillis()/1000) - lastHeartbeat;
137          // time since (or until if negative) the expected heartbeat
138 <        long timeSinceExpectedHB = timeSinceLastHB + (long) hostHBinterval;
138 >        long timeSinceExpectedHB = timeSinceLastHB - (long) hostHBinterval;
139          
140          // best do a check in case the expected heartbeat is in the future
141          if(timeSinceExpectedHB < 0) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines