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. The Standard filtering provided by Nirvana complies fully with the JMS filtering specification. There are also some advanced filtering capabilities provided which are outside the JMS specification.

All Nirvana filtering is handled by the Nirvana server and therefore 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.