> How can I limit the number of times the system Sieve filter
> is used to scan a message, preferably to just once?

There's no way to do this. The entire idea of a system sieve is that
it applies to every enqueue. If you filters to apply to only a subset
of enqueues, use source channel filters instead.

> Unfortunately, when I enabled debugging logging on my "test" system,
> I discovered that the system Sieve filters seem to be applied
> whenever a message is processed by any of the channels. In other words,
> the system Sieve filter code is invoked an arbitrary number of times
> for every message. I can imagine circumstances where this might be
> useful, but in our environment this wastes a *lot* of processing time.

> I've added a test for the existance of the Received header line that's
> added by the "conversion" channel, so now the Sieve overhead isn't quite
> as bad as it was. Ideally there should be some way for the sieve filter
> to add a header line of its own, which might include a "filter file
> version number" for example. I can't find a way to do that, though.

We have added a facility of this sort to iMS, but AFAIK Process has
not done anything like this to PMDF. However, nothing prevents you
from using other PMDF mechanisms to add a header that can then be