| Matt Meleski 2004-11-25, 8:46 pm |
| 1) In an Orchestration, the reason I believe they are immutable , is because
if you were allowed to change even one attribute on a message at any time,
then the Orchestration state would have to be persisted to the messagebox
database (this is a expensive operation). An orchestration will
save its state to the database at certain times, so if the server hosting the
orchestration goes down, when the server comes back on line, the
orchestration will be restored to its last persistance point. But persistance
comes at a cost, because it causes high write activity on the messagebox
database.
To see at what points an orchestration will persist see the below link.
http://msdn.microsoft.com/library/d...g_orch_rrdy.asp
But of course there are ways in an orchestration to get around this:
For example, in an expression shape:
contruct newmessage
{
newmessage = origmessage
// if there are distinguished fields
newmessage.id = 22;
}
Matt.
"john" wrote:
> I have read that messages are immutable. I think that's why I can't modify a
> message in an orchestration. But why are they immutable ??
> When I use a Call Rules shape and transmit a message, does the rule engine
> create a new message or does it modify the existing one ?
> Same question when I call a C# component which modify the message using an
> XmlDocument parameter.
>
>
>
|