IMO you shouldn't relay on the order of *any* JMS provider.
If order is relevant for you... I don't know... you probably are doing something wrong in your design. (just IMHO)
Yes, I agree, this is not a good (neither portable) design, but it's one of the options we are considering for now, mainly for 2 reasons (given our whole context): it might be the easiest to implement and the one with best performance.
Other options would be to check the domain before the message is sent (so if the throughput to that domain is too high we could return the JMS message to the queue) or to do this kind of sorting before adding the
message to the queue.
Anyway, do you think that's possible?
BTW, order was not a problem on our initial design, much the opposite, we design the application to achieve high paralelization thorugh JMS and clusteriing. Just later we realized this high performance could cause problems with some SMTP providers :-(
What about using selectors, and having multiple listeners with different selectors... one for each property you need?
I thought about selectors too, but I don't think it would work, as the values of the properties are dynamic (i.e., there could be hundreds of different domains)...