This is archived documentation for an older version of Nirvana (v3.1). Please refer to documentation for the latest version if required.

How to use Nirvana filtering ?

Nirvana supports filtering at 2 levels. The 1st is between client and server and the 2nd is between server and server.

Nirvana dynamically supports the changing filtering rules.

All Nirvana filtering is handled within the Nirvana server. This significantly reduces client overhead and network bandwidth consumption.

Server to Client filtering

Filtered susbscriptions is a mechanism that allows a Nirvana subscriber to enforce a server side message selector such that only messages matching that selector are pushed down the connection. For example if you have a channel containing BOND trades for multiple bonds and each bond trade message has a dictionary entry called BONDNAME indicating what bond the trade was made on.

If you wanted to receive all trades you would simply do a:

myChannel.addSubscriber(mySubscriber);

while if you wanted to receive only trades on bond1 you woud do a:

myChannel.addSubscriber(mySubscriber,”BONDNAME = ‘bond1’);

Nirvana's filtering capabilities fully support the JMS 1.1 message selector format of filtering.

Server to Server filtering

Server to server dynamic content routing is enabled by specifing filtering selectors to apply across Nirvana channel joins. For information on how to apply these filters please see the FAQ on creating channel joins.