[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [xmlblaster] I_AccessFilter

Peter Antman wrote:

I am now looking into the new mime based connent filtering/query stuff.
I do look verry promissing. However I have one problem with it. Let me
explain my problem domain.

We use XPATH based querys to route content. To be able to do this before
the mime filters where invented we stuffed the content XML into the key
header part. This has worked fine. It however has a couple of flawes:

1. The key part is merged into the dom. The more XML content, the more

2. Since XML blaster has not inherant notion of a destination in the JMS
  sense all content published will be parsed/queried by all XPATH
  queries, even if the are not at all applyable to the content.

Therefore I would like to migrate to the mime based aproach. If I
understand it correctly it would the be possible to publish with a for
for example channel tag in key, have client filter exact on that (or
oid, I do not remember) and then let the I_Access filter have its say
only for the one that actually matched exact first. In that way we could
lower the number of queries put against each message.

However: we must be able to handle huge number of queries > 100 000.
With the current I_AccesFilter implementation this does not seem like an
options. Why. If I understand it correctly, each subscription means an
instance of an I_AcessFilter.

No i don't think so, the plugin should only be loaded once.

The broker will, for each subscriber,
check the filter. The filter takes the "raw" MessageUntit. What does

No, it takes the preparsed (the xmlKey is preparsed) MessageUnitWrapper.

that mean: if I want to write an XPath based content router I would have
to recreate a DOM tree of the content in each filter. Say I have 5000
different quieries to be placed against the same content, I would have
to create 5000 DOM trees of the same content. This will be verry slow.

Is there any chance we could for mime type xml have a precreated DOM
tree of the content available in the filter?

The filter framework does not support it itself, but you are
free to code anything into the filter plugin you like.