James Strachan wrote:

> Noel J. Bergman wrote:
> > My particular use case involves selecting the next message in the
> > destination whose scheduled time is less than or equal to now.  If there
> > were a "now" operation available in the query language, I wouldn't have
to
> > change the selector, but the expression would still have to be
constantly
> > reevaluated.  And in that case, I'd want both pull and push behavior to
be
> > supported.

> That should be pretty simple to add to the selector syntax via a NOW()
> function (to avoid 'NOW' clashing with some property on the message).

Yes, I meant as a function ("operation").  Sorry for the shorthand without
the ().  BTW where in the JMS Specification does it support custom functions
for selectors?

> Though the filter would have to be constantly re-evaluted as typically
> the assumption is that a selector is true or false but doesn't change
> its value over time

The assumption is that a selector's value would not change for a given
message so,  as an optimization, one wouldn't have to reapply the selector
to a message already in the destination.

> > One alternative is writing a broker to handle scheduling, which means
> > posting all messages intended to be rescheduled to the broker, which
> > would post them back when the schedule time occurs, thus handling
> > scheduling in a similar manner to how MQ handles subscriptions.

> Yeah - I think handling the scheduled publish of messages is probably
> a better idea as its more powerful and flexible

And I can start with a purely JDBC-based implementation, which would satisfy
my most pressing needs in a local clustering environment.  As a side-effect,
an additional near-term upside would be avoiding the need for XA, since
there seems to be an outstanding issue of there not being properly working
XA transaction manager available as Open Source.  Eventually, though, I'd
like XA across JMS, JDBC and Commons Transactions.

        --- Noel



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to