|
|
|
@@ -90,6 +90,8 @@ public abstract class Broadcast |
|
|
|
|
|
|
|
/** Running count of successful jobs */ |
|
|
|
private AtomicInteger successCount; |
|
|
|
private int pauseThreshold; |
|
|
|
private int lastPauseCount; |
|
|
|
|
|
|
|
|
|
|
|
public static enum BroadcastState |
|
|
|
@@ -414,6 +416,7 @@ public abstract class Broadcast |
|
|
|
receiveTime = System.currentTimeMillis(); |
|
|
|
serviceActivityCount = Integer.valueOf(0); |
|
|
|
transactions = Integer.valueOf(0); |
|
|
|
lastPauseCount = 0; |
|
|
|
} |
|
|
|
|
|
|
|
private void incrementTransactions(int delta) |
|
|
|
@@ -421,7 +424,12 @@ public abstract class Broadcast |
|
|
|
synchronized (transactions) |
|
|
|
{ |
|
|
|
transactions += delta; |
|
|
|
lastPauseCount += delta; |
|
|
|
} |
|
|
|
if (pauseThreshold > 0 && lastPauseCount >= pauseThreshold) |
|
|
|
{ |
|
|
|
pause(null); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -459,6 +467,7 @@ public abstract class Broadcast |
|
|
|
myLogger.debug("Entering Broadcast.doPost method"); |
|
|
|
BroadcastException myException = null; |
|
|
|
this.commEngine = commEngine; |
|
|
|
pauseThreshold = commEngine.getPauseThreshold(); |
|
|
|
try |
|
|
|
{ |
|
|
|
boolean notInService = commEngine.notInService(); |
|
|
|
@@ -989,7 +998,8 @@ public abstract class Broadcast |
|
|
|
// Sets state to PAUSING, which is monitored by Broadcast.Service threads. |
|
|
|
// EVentually, when all service activity ends, the state transitions to PAUSED |
|
|
|
setState(BroadcastState.PAUSING); |
|
|
|
out.write("Broadcast paused"); |
|
|
|
lastPauseCount = 0; |
|
|
|
if (out != null) out.write("Broadcast paused"); |
|
|
|
} |
|
|
|
|
|
|
|
protected void resume(PrintWriter out) |
|
|
|
|