|
Home > Archive > BizTalk Server General > August 2004 > BTS.InterchangeID & BTS.MessageID
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
BTS.InterchangeID & BTS.MessageID
|
|
| NickH2472 2004-08-23, 5:50 pm |
| We are attempting to obtain a unique reference for a flat-file output and are
considering the use of InterchangeID or MessageID. They both *appear* to be
unique Hex values, but we cannot find any information relating to how they
are generated. Can anyone explain how they are generated and whether they are
unqiue?
Cheers, Nick
| |
| Gilles [MSFT] 2004-08-23, 5:50 pm |
| Hello,
>We are attempting to obtain a unique reference for a flat-file output and are
>considering the use of InterchangeID or MessageID. They both *appear* to be
>unique Hex values, but we cannot find any information relating to how they
>are generated. Can anyone explain how they are generated and whether they are
>unqiue?
The MessageID (http://msdn.microsoft.com/library/e....asp?frame=true)
is a unique identifier for the message. It is a Guid. the previous page shows the COM documentation but the .NET property behaves the same.
Thanks,
-Gilles.
| |
| NickH2472 2004-08-23, 5:50 pm |
| Thanks Gilles,
I understand that the MessageID is unique per message within an
orchestration for example (am I correct here?), but where does the
InterchangeID come into play?
My experience with Interchange information relates to EDI messages, however
as far as I'm aware Biztalk treats each message separately within its
internal mechanism. So, what does the InterchangeID provide over and above
the MessageID? Can I use the InterchangeID to track an instance of an
orchestration for example?
Cheers, Nick
"Gilles [MSFT]" wrote:
> Hello,
>
>
> The MessageID (http://msdn.microsoft.com/library/e....asp?frame=true)
> is a unique identifier for the message. It is a Guid. the previous page shows the COM documentation but the .NET property behaves the same.
>
> Thanks,
> -Gilles.
>
>
| |
| Sam Vanhoutte 2004-08-24, 8:13 am |
| I was told it like this:
The interchange is the batch of messages that is sent to Biztalk.
The message is a part of the interchange.
If you have a flat file that is split up in two different messages on the
msgbox, they will have the same interchangeid, but a different messageid.
best regards
Sam Vanhoutte
"NickH2472" <NickH2472@discussions.microsoft.com> wrote in message
news:A2EDFEB7-7292-4F13-9543-605B6E32BA25@microsoft.com...
> Thanks Gilles,
> I understand that the MessageID is unique per message within an
> orchestration for example (am I correct here?), but where does the
> InterchangeID come into play?
>
> My experience with Interchange information relates to EDI messages,
however[vbcol=seagreen]
> as far as I'm aware Biztalk treats each message separately within its
> internal mechanism. So, what does the InterchangeID provide over and above
> the MessageID? Can I use the InterchangeID to track an instance of an
> orchestration for example?
>
> Cheers, Nick
>
> "Gilles [MSFT]" wrote:
>
and are[vbcol=seagreen]
to be[vbcol=seagreen]
they[vbcol=seagreen]
they are[vbcol=seagreen]
(http://msdn.microsoft.com/library/e...ssageclassmessa
geidtopic.asp?frame=true)[vbcol=seagreen]
shows the COM documentation but the .NET property behaves the same.[vbcol=seagreen]
| |
| Gilles [MSFT] 2004-08-24, 6:59 pm |
| Hello,
[...]
>The interchange is the batch of messages that is sent to Biztalk.
>The message is a part of the interchange.
>
>If you have a flat file that is split up in two different messages on the
>msgbox, they will have the same interchangeid, but a different messageid.
Yes, this is correct. The message ID is unique per message.
| |
| Martijn Hoogendoorn 2004-08-25, 4:19 am |
| On Mon, 23 Aug 2004 16:33:25 GMT, Gilles [MSFT] wrote:
> Hello,
>
>
> The MessageID (http://msdn.microsoft.com/library/e....asp?frame=true)
> is a unique identifier for the message. It is a Guid. the previous page shows the COM documentation but the .NET property behaves the same.
>
> Thanks,
> -Gilles.
Hi Nick, Gilles,
I'm assuming you need this value for some kind of logging purpose...
I've had a conversation with Hans Peter Mayr a while ago, and he told me
the following things about those Guids:
"I recommend that you avoid using MessageID to try and link BAM to HAT.
The problem is that msgID is only created for messages at the point that
they are enqueued into the message box. So for messages that are created in
an orchestration, for example, they actually don't have a msgID unless and
untill they are persisted to the message box."
"Also, be aware that the interchangeID is associated with the raw message
that arrives to the pipeline. If this raw interchange actually contains
multiple individual messages, they will all get the same InterchangeID,
each message would get it's own MessageID"
"In fact, there may be many messages, each with it's own ID, in the inbound
and outbound pipelines. For example, if the message arrives encrypted, it
will have one msgID for the raw message and another for the decrypted
message. Remember that all messages are immutable, so every time the
message is changed at all, you get a new msgID"
Simply put, you cannot simply assume any of these IDs will stay the same
until you know the entire system they go through and even then it's
relatively dangerous to assume they stay the same.
What I would recommend is using a pipeline component in the receive
pipeline before or after the ffdisassembler component and promote a
property, inserting your own GUID. This way, that value is 100% guaranteed
to be unique throughout the entire process, no matter that kind of
permutations you apply to the message itself, as long as you don't remove
that field or change it's value ofcourse.
feel free to e-mail me if you need more information!
HTH,
Martijn Hoogendoorn
|
|
|
|
|