The program 'rvlisten' can be used as a replacement for the standard tibrvlisten that ships with Rendezvous. If you have ever squinted at the output from tibrvlisten, trying to find a particular field in a message, you will appreciate the pretty printing of the messages. You can also filter message subjects using regular expressions.

rvlisten can also be used to help you construct your test fixtures, which is often the most time consuming part of creating a test. Instead of manually creating the stimulus and expected response messages in your test fixture they can be created for you using rvlisten. Rvlisten can save the messages to an XML file and the test fixture can reference that file when running a test. Therefore, if you already have a means of stimulating the system you want to test, such as an end user GUI by monitoring a system that is already in production, you can quickly introduce RvTest into your environment.

In the bin directory of the distribution there is a windows command file that you can use to invoke rvlisten. It will set the classpath and pass the command line arguments to rvlisten. You will need to set the environment variable RVTEST_HOME to point to your installation directory and add RVTEST_HOME/bin to your path in order to use this command file. This command file probably doesn't work on Windows 98 but NT/2000/XP should be fine. A unix verison will be provided soon.

rvlisten command line options summary

The quick list of options for rvlisten is shown below.

      rvlisten [-service service] [-network network]
               [-daemon daemon] [-timestamp yes/no] [-nested yes/no]
               [-file filename] [-exclude commaDelimSubjectList] <subject-list>

      (Note: Wildcards allowed in exclude subject list)

Simple uses are

      Listen to every message published on subject a.b.c:
        rvlisten a.b.c

      Listen to every message published on subjects a.b.c and x.*.Z:
        rvlisten a.b.c "x.*.Z"

      Listen to every system advisory message:
        rvlisten "_RV.*.SYSTEM.>"

      Listen to messages published on subject a.b.c using port 7566 and write to file output.xml
        rvlisten -service 7566 -file output.xml a.b.c

rvlisten command line options descriptions

service This sets the service parameter of the RV Transport. This is the UDP port used to send traffic between rvd processes. For example a port number such as 7505. It is pretty common to segregate RV traffic in a development environment by picking a different service parameter per developer, although other strategies exist.
network This sets the network parameter of the RV Transport detailing the specifc network rvd will use to send data. An example of this parameter is lan0. You can typically leave it empty for simple installations.
daemon This sets the daemon parameter of the RV Transport. This specifies the TCP port that the client will use to connect to rvd. You can typically leave this parameter empty for simple installations.
timestamp Values are [yes][no]. Toggles the printing of timestamp information. This is the time that the message was received by rvlisten. This option does not effect output that might be saved to a file. The default value is no. Example: rvlisten -timestamp yes [other options]
nested Values are [yes][no]. Toggles the printing of nested of nested messages. Either all nested messges are printed or only the field name of the nested message. This does not affect the output that might be saved to a file. The default value is no. Example: rvlisten -nested yes [other options]
exclude This is a comma separated list of subject that should be excluded. This option allows you to 'oversubscribe' by listending to subject A.* and then excluding messages sent on the subjects A.B and A.Z. Regular expressions with wildcards are also allowed.
file Save messages to the supplied filename in XML format. If the file exists, it will be overwritten. The output format is for use in importing message definitions when constructing a test fixture.

Future directions

Another TIBCO related open source project, rvsn00p provides a GUI for listening to messges. It would be nice to introduce the XML format that is used in rvlisten to the 'save' functionality of rvsn00p.

Construct a simple program - rvplay, that plays back messages from the XML file.

Have another means of persisting messages, to database etc.