BizTalk Server General - Ordered delivery of messages in biztalk

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > January 2006 > Ordered delivery of messages in biztalk





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 Ordered delivery of messages in biztalk
abhijeet.raje@gmail.com

2005-04-13, 5:56 pm

Hi,

Input to Biztalk: file with records
0,A
1,B
2,C
3,D
4,E
5,F
6,G
7,H
8,I
9,J

Logic within orchestration: do some processing on all the individual
records and Delete some records

Output from sendport: Ordered delivery of messages. I.e. I can not send
7th record before 3rd record
0,A
2,C
3,D
4,E
6,G
7,H
8,I

P.S.
1, Can't use envelop schema as it will publish all the messages in
message box and there is no means to know the order in which they come.
2, Cannot you orchestration to de batch because example is small but
real data is 100,000 records 500 mb file size.
3. Not using MSMQ, MSMQT
4. So what i am looking for? Considering above constrains how can I
be able to maintain the order/sequence of messages i am processing.

In short, FIFO.

Any ideas??

Abhijeet

Doug Girard [MSFT]

2006-01-31, 6:59 pm

Abhijeet,

If you want end to end FIFO, you need to uphold these ordering semantics
throughout the entire process. That means you'll need a receive adapter
which supports in order receives and you'll also need a way to serialize
outbound sends, either with an in-order adapter or some other clever
technique. All processing in between needs to also maintain this ordering.
I'm not completely sure I understand your scenario, but here's my first
guess:

Receive inbound with an in-order adapter. You can use a disassembling
component to perform the interchange processing, breaking apart your file
into multiple records. These records will each be sent as their own
document, but will be enqueued in the message box in order. Then you can
create an orchestration which subscribes to these messages. If you can
process separate interchanges in parallel then you can initialize a
correlation set on the InterchangeId, creating one orchestration instance
for each interchange. If you have even more strict FIFO requirements,
you'll probably need an orchestration instance which has a correlation set
created on the ReceivePortName or something similar, essentially creating a
singleton orchestration instance for entirely serialized processing.
Either way, the orchestration must use a Receive Shape with OrderedDelivery
= True. It must then process the documents sequentially and use
DeliveryNotification = True on send shapes to ensure the sends are
completed by the messaging engine before continuing on to the next
message's processing. Subsequent receives will be done in a loop using the
instantiated correlation set.

Hope this gets you started...

Regards,
Doug Girard [MSFT]

Note: This posting is provided "AS IS" with no warranties, and confers no
rights.
--------------------
>From: "abhijeet.raje@gmail.com" <abhijeet.raje@gmail.com>
>Newsgroups: microsoft.public.biztalk.general
>Subject: Ordered delivery of messages in biztalk
>Date: 13 Apr 2005 08:34:21 -0700
>Organization: http://groups.google.com
>Lines: 42
>Message-ID: <1113406461.540200.187300@z14g2000cwz.googlegroups.com>
>NNTP-Posting-Host: 139.149.1.194
>Mime-Version: 1.0
>Content-Type: text/plain; charset="iso-8859-1"
>X-Trace: posting.google.com 1113406466 15141 127.0.0.1 (13 Apr 2005

15:34:26 GMT)
>X-Complaints-To: groups-abuse@google.com
>NNTP-Posting-Date: Wed, 13 Apr 2005 15:34:26 +0000 (UTC)
>User-Agent: G2/0.2
>Complaints-To: groups-abuse@google.com
>Injection-Info: z14g2000cwz.googlegroups.com; posting-host=139.149.1.194;
> posting-account=0zlBOA0AAACST1340c7q5-awDV-sW2-N
>Path:

TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.sul.t-online.de!t-onli
ne.de!news.glorb.com!postnews.google.com!z14g2000cwz.googlegroups.com!not-fo
r-mail
>Xref: TK2MSFTNGXA01.phx.gbl microsoft.public.biztalk.general:12950
>X-Tomcat-NG: microsoft.public.biztalk.general
>
>Hi,
>
>Input to Biztalk: file with records
>0,A
>1,B
>2,C
>3,D
>4,E
>5,F
>6,G
>7,H
>8,I
>9,J
>
>Logic within orchestration: do some processing on all the individual
>records and Delete some records
>
>Output from sendport: Ordered delivery of messages. I.e. I can not send
>7th record before 3rd record
>0,A
>2,C
>3,D
>4,E
>6,G
>7,H
>8,I
>
>P.S.
>1, Can't use envelop schema as it will publish all the messages in
>message box and there is no means to know the order in which they come.
>2, Cannot you orchestration to de batch because example is small but
>real data is 100,000 records 500 mb file size.
>3. Not using MSMQ, MSMQT
>4. So what i am looking for? Considering above constrains how can I
>be able to maintain the order/sequence of messages i am processing.
>
>In short, FIFO.
>
>Any ideas??
>
>Abhijeet
>
>


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com