dk.netarkivet.harvester.harvesting.monitor
Class HarvestMonitor

java.lang.Object
  extended by dk.netarkivet.harvester.distribute.HarvesterMessageHandler
      extended by dk.netarkivet.harvester.harvesting.monitor.HarvestMonitor
All Implemented Interfaces:
CleanupIF, HarvesterMessageVisitor, javax.jms.MessageListener

public class HarvestMonitor
extends HarvesterMessageHandler
implements javax.jms.MessageListener, CleanupIF

Listens for CrawlProgressMessages on the proper JMS channel, and stores information to be presented in the monitoring console.


Field Summary
static ChannelID HARVEST_MONITOR_CHANNEL_ID
          The JMS channel on which to listen for CrawlProgressMessages.
 
Method Summary
 void cleanup()
          Close down the HarvestMonitor singleton.
static int getAutoRefreshDelay()
          Returns the delay in seconds after which a harvest monitor webpage should refresh itself.
static java.lang.String getChartFilePath(long jobId)
          Returns the path of the chart image file, relative to the webapp directory.
static InMemoryFrontierReport getFrontierExhaustedQueues(long jobId)
          Retrieves the latest frontier extract report stored for the given job ID, that contains only exhausted queues.
static InMemoryFrontierReport getFrontierReport(long jobId)
          Retrieves the latest frontier report stored for the given job ID.
static InMemoryFrontierReport getFrontierRetiredQueues(long jobId)
          Retrieves the latest frontier extract report stored for the given job ID, that contains only retired queues.
static HarvestMonitor getInstance()
           
static StartedJobInfo getMostRecentRunningJobInfo(long jobId)
          Returns the most recent running job info record available for the given job ID.
static StartedJobInfo[] getMostRecentRunningJobInfos(long jobId)
          Returns a configurable number of the most recent running job info records available for the given job ID.
 void visit(CrawlProgressMessage msg)
          This method should be overridden and implemented by a sub class if message handling is wanted.
 void visit(FrontierReportMessage msg)
          This method should be overridden and implemented by a sub class if message handling is wanted.
 void visit(JobEndedMessage msg)
          Cleans up the database on transitions to status DONE and FAILED.
 
Methods inherited from class dk.netarkivet.harvester.distribute.HarvesterMessageHandler
onMessage, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.jms.MessageListener
onMessage
 

Field Detail

HARVEST_MONITOR_CHANNEL_ID

public static final ChannelID HARVEST_MONITOR_CHANNEL_ID
The JMS channel on which to listen for CrawlProgressMessages.

Method Detail

cleanup

public void cleanup()
Close down the HarvestMonitor singleton. This removes the HarvestMonitor as listener to the JMS scheduler and frontier channels, closes the persistence container, and resets the singleton.

Specified by:
cleanup in interface CleanupIF
See Also:
CleanupIF.cleanup()

getInstance

public static HarvestMonitor getInstance()
Returns:
the singleton instance for this class.

visit

public void visit(CrawlProgressMessage msg)
Description copied from class: HarvesterMessageHandler
This method should be overridden and implemented by a sub class if message handling is wanted.

Specified by:
visit in interface HarvesterMessageVisitor
Overrides:
visit in class HarvesterMessageHandler
Parameters:
msg - a CrawlProgressMessage

visit

public void visit(JobEndedMessage msg)
Cleans up the database on transitions to status DONE and FAILED.

Specified by:
visit in interface HarvesterMessageVisitor
Overrides:
visit in class HarvesterMessageHandler
Parameters:
msg - a JobEndedMessage

getAutoRefreshDelay

public static final int getAutoRefreshDelay()
Returns the delay in seconds after which a harvest monitor webpage should refresh itself. This delay is set by overriding the value of the HarvesterSettings.HARVEST_MONITOR_REFRESH_INTERVAL property.

Returns:
the delay in seconds after which a harvest monitor webpage should refresh itself

getMostRecentRunningJobInfos

public static StartedJobInfo[] getMostRecentRunningJobInfos(long jobId)
Returns a configurable number of the most recent running job info records available for the given job ID.

Parameters:
jobId -
Returns:
the most recent running job info records available for the given job ID.
See Also:
HarvesterSettings.HARVEST_MONITOR_DISPLAYED_HISTORY_SIZE

getMostRecentRunningJobInfo

public static StartedJobInfo getMostRecentRunningJobInfo(long jobId)
Returns the most recent running job info record available for the given job ID.

Parameters:
jobId -
Returns:
the most recent running job info records available for the given job ID.

visit

public void visit(FrontierReportMessage msg)
Description copied from class: HarvesterMessageHandler
This method should be overridden and implemented by a sub class if message handling is wanted.

Specified by:
visit in interface HarvesterMessageVisitor
Overrides:
visit in class HarvesterMessageHandler
Parameters:
msg - a FrontierReportMessage

getFrontierReport

public static InMemoryFrontierReport getFrontierReport(long jobId)
Retrieves the latest frontier report stored for the given job ID.

Parameters:
jobId - the job id
Returns:
a frontier report

getFrontierRetiredQueues

public static InMemoryFrontierReport getFrontierRetiredQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only retired queues.

Parameters:
jobId - the job id
Returns:
a frontier report that contains only retired queues.

getFrontierExhaustedQueues

public static InMemoryFrontierReport getFrontierExhaustedQueues(long jobId)
Retrieves the latest frontier extract report stored for the given job ID, that contains only exhausted queues.

Parameters:
jobId - the job id
Returns:
a frontier report that contains only exhausted queues.

getChartFilePath

public static java.lang.String getChartFilePath(long jobId)
Returns the path of the chart image file, relative to the webapp directory. If no chart is available, returns a default empty image.

Parameters:
jobId - the job id
Returns:
the path of the chart image file, relative to the webapp directory.