Currently Being Moderated

TimerService

VERSION 5

Created on: Sep 23, 2005 9:32 AM by Dimitris Andreadis - Last Modified:  Jul 13, 2006 1:28 PM by Dimitris Andreadis

The TimerService

 

Introduced in JBoss v4.0.3, the TimerService is a simple mbean that follows

the JBoss ServiceLifecycle model and can be used to configure an external

javax.management.timer.Timer

mbean, to produce periodically JMX notifications.

 

By subscribing and reacting to those notification from a 3rd mbean, you can have

a simple way of scheduling periodic tasks.

 

The attributes that can be configured on the TimerService are shown below:

 

  • NotificationType: the type of the produced javax.management.timer.TimerNotification

  • NotificationMessage: the string message to put in the produced notifications

  • TimerPeriod: every how often to emit notifications, e.g. 500msec, 10sec, 5min, 1h.

  a zero value will produce just one notification

  • Repeatitions: how many timer notifications to emit when the period is not zero;

  a zero value produces infinite notifications

  • FixedRate: whether the periodic notifications should be produced at

  a FixedRate (true) or a FixedDelay (false, default) - since v4.0.5

  • TimerMBean: the ObjectName of the JMX Timer to configure; should be

  combined with a dependency.

 

Example

 

(taken from server/default/deploy/monitoring-service.xml)

 

Configure a periodic 'heartbeat' timer notification to be emitted every 5 seconds.

In this example we have inlined the creation of the Timer in the depends

block, however, a single Timer could have been declared independently with

multiple TimerService instances pointing to it.


  <mbean code="org.jboss.monitor.services.TimerService"
         name="jboss.monitor:name=Heartbeat,type=TimerService">
    <attribute name="NotificationType">jboss.monitor.heartbeat</attribute>
    <attribute name="NotificationMessage">JBoss is alive!</attribute>
    <attribute name="TimerPeriod">5sec</attribute>
    <depends optional-attribute-name="TimerMBean">
      <mbean code="javax.management.timer.Timer"
             name="jboss.monitor:name=Heartbeat,type=Timer"></mbean>
    </depends>
  </mbean>

 

Seeing is believing

 

If you want to see/log the emitted notifications from the above example,

you can configure a NotificationListener as follows. (Note we subscribe

to the Timer mbean not the TimerService!)


  <mbean code="org.jboss.monitor.services.NotificationListener"
         name="jboss.monitor:service=NotificationListener">
    <attribute name="SubscriptionList">
      <subscription-list>
        <mbean name="jboss.monitor:name=Heartbeat,type=Timer"></mbean>
      </subscription-list>
    </attribute>
  </mbean>

 

Related:

 

 

Referenced by:

 

 

 

Average User Rating
(0 ratings)




There are no comments on this article

More Like This

  • Retrieving data ...

Incoming Links