XmlBlaster Logo



XmlBlaster Logo

Type NEW
Priority LOW
Topic XmlBlaster provides a facility to record all message transfers with the possibility to play back this flow in slow/fast motion
The class InvocationRecorder can be plugged into a client or the server, to follow all CORBA/RMI/XmlRpc method invocations with exact timestamp. Every invocation is stored and may be later played back.

The recorder is activated when a Java client uses the fail save xmlBlaster access mode -> see I_XmlBlasterAccess.registerConnectionListener()

Allows to kill the db-file during execution

Following error handling is possible if the queue overflows:

  • ONOVERFLOW_EXCEPTION: This is the default behaviour, the recorder framework throws an XmlBlasterExcption
  • ONOVERFLOW_DISCARD: In this mode messages are destroyed if the queue is full
  • ONOVERFLOW_DISCARDOLDEST: The oldest message from the queue is destroyed to have space for a new one
On pullback of messages it is possible to use a motion factor to allow 'slow motion' or 'fast motion' reply:
pullback(long startDate, long endDate,
         double motionFactor) throws XmlBlasterException

Example how to configure the FileRecorder plugin in your xmlBlaster.properties file:


These parameters allow to configure the message recorder behavior.

Property Default / Example Description Implemented
queue.maxEntries 1000 How many messages to tail back on client side if they can't be delivered to xmlBlaster. -1 sets it to unlimited. yes
recorder.type FileRecorder The plugin type to use for tail back messages in fail save mode yes
recorder.version 1.0 The plugin version to use yes

These settings apply only if you use the FileRecorder plugin:

recorder.path ${user.home}/tmp Where to put the persistence file. Please give the path only, without the file name. yes
recorder.destroyOld false If a file based plugin is configured you can configure to destroy old messages on client restart. yes
recorder.useSync false true: Sync the harddisk on any IO. This is not recommended as it slows down processing from ~5000msg/sec to ~90msg/sec. Defaults to false, which is save for application crashes. yes
recorder.mode "exception" What happens if the queue is full (onOverflow):
exception or discard or discardOldest

NOTE: Configuration parameters are specified on command line (-someValue 17) or in the xmlBlaster.properties file (someValue=17). See requirement "util.property" for details.
Columns named Impl tells you if the feature is implemented.
Columns named Hot tells you if the configuration is changeable in hot operation.

See REQ util.recorder.persistence
See REQ client.failsafe
See API org.xmlBlaster.util.def.Constants
See API org.xmlBlaster.util.recorder.I_InvocationRecorder
See API org.xmlBlaster.util.recorder.ram.RamRecorder
See API org.xmlBlaster.util.recorder.file.FileRecorder
See API org.xmlBlaster.util.recorder.file.FileIO
See API org.xmlBlaster.client.I_XmlBlasterAccess
See TEST org.xmlBlaster.test.qos.TestFailSave
See TEST org.xmlBlaster.test.qos.TestInvocationRecorder
See TEST org.xmlBlaster.test.qos.TestFailSaveAsync
See TEST org.xmlBlaster.test.classtest.FileIOTest
See TEST org.xmlBlaster.test.classtest.InvocationRecorderTest

This page is generated from the requirement XML file xmlBlaster/doc/requirements/util.recorder.xml

Back to overview