02-26-06 03:47 PM
Hrm. The SQL solution would definitely work.
What about this? Since the goal of my Orchestration is throttling and
not real FIFO behavior, what if I correlated the messages on something
other than MessageType?
Say, for example, I promoted a property to the Message Context that
consisted of the the current time, rounded to the nearest minute. If I
correlated on MessageType and this other property, I would get a new
Orchestration instance every minute. Each Orchestration instance would
process its batch of messages in a FIFO manner. While this would result
in a sort of batching functionality rather than the one at a time
functionality I currently have, I'm sure that this would still be
acceptable.
Tomas Restrepo (MVP) wrote:
> Hi Craig,
>
> I don't know all the answers (sorry) but fwiw, here are a few comments
> inline...
>
>
> it might just be persistence points, and those definitely involve
> serializing state to the db (at least as I view things, dehydration implie
s
> a persistence point, but not necessarily otherwise, I might be wrong).
>
>
> Not really, since the receive port simply takes messages (almost as fast a
s
> it can, depending on available resources) and pushes them into the
> messagebox. As long as the messages can be routed, the messagebox is happy
> to take them and correlate them to the active subscription of your
> orchestration's receive shape.
>
> It sounds to me like you're going to need to change the design somewhat to
> have accumulate messages in another way, so that biztalk doesn't choke on
> them. The usual workaround I've seen for performance problems with convoys
> of this nature is to have the messages simple routed into a SQL database
> that records the order of the message, and then have an orchestration that
> reads them "manually" and sends them.
>
>
[ Post a follow-up to this message ]
|