BizTalk Server General - Content Based Routing of the MSMQ Label field (Routing Failure)

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > September 2005 > Content Based Routing of the MSMQ Label field (Routing Failure)





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 Content Based Routing of the MSMQ Label field (Routing Failure)
rodk

2005-09-22, 8:58 pm

========
Summary:
========

I am using
BizTalk Server 2004 Adapter for MSMQ v2.0 (Adapter for MSMQ)

I have a Biztalk receive port called ReceivePortMsmq (the underlying MSMQ
port is .\PRIVATE$\BIZTALKRECEIVEPORT1)
I have a Biztalk send port called SendPort1. SendPort1 is configured for
MSMQ (but that doesn't really matter for this problem because I'm having
problems with the Content Based Routing).

I want to set up a filter on SendPort1 so that if an MSMQ message
has a label of TriggerLabel, then the message is sent to SendPort1.

Unfortunately, the filter does not work on the Label field of MSMQ
and a routing failure occurs for the message.

========
Details:
========

The intended sequence is:
() Send MSMQ message to ReceivePortMsmq
() BizTalk reads message
() Check Filter on SendPort1. Since it matches, place the message
in the MSMQ associated with SendPort1

If I set up Content Based Routing under SendPort1 this way:
Edit..., Filters & Maps, Filters

MSMQ.Label == TriggerLabel

Note: MSMQ.Label appears in the drop-down because the Assemblies folder
contains Microsoft.BizTalk.Adapter.MSMQ.MsmqAdapterProperties.dll

When I send the message to ReceivePortMsmq, I get a Routing Failure.

I run the Health and Activity Tracking (HAT) tool,
Operations, Messages
I get 2 messages
%%%%%%%%%%
"empty" means the field value is empty/blank

Message 1:

Message Type: empty
Message Status: Suspended
Service Status: Suspended (not resumable)
Service Name: empty
Assembly Name: empty
Service Class: Routing failure report
Service Pending Job: None
Retry Count: 0
Timestamp: 9/22/2005 12:43:44 PM
Submitter: WIN2003ES\Adminstrator
MsgBox Server: WIN2003ES
MsgBox DB: BizTalkMsgBoxDb
Host: BizTalkServerApplication
OriginatorSID: WIN2003ES\Administrator
OriginatorPID: s-1-5-7
Inbound Adapter: MSMQ
Inbound URL: FORMATNAME:DIRECT=OS:.\PRIVATE$\BIZTALKRECEIVEPORT1
Outbound Adapter: empty
Outbound URL: empty
Service Instance ID: 2891f095-6479-4686-b083-925340c39d90
Message ID: 2204d6ba-c83c-446c-95a3-d639dc138c0e


Message 2:

Message Type: empty
Message Status: Suspended
Service Status: Suspended (not resumable)
Service Name: MSMQ (receive)
Assembly Name: empty
Service Class: Messaging
Service Pending Job: None
Retry Count: 0
Timestamp: 9/22/2005 12:43:46 PM
Submitter: WIN2003ES\Adminstrator
MsgBox Server: WIN2003ES
MsgBox DB: BizTalkMsgBoxDb
Host: BizTalkServerApplication
OriginatorSID: WIN2003ES\Administrator
OriginatorPID: s-1-5-7
Inbound Adapter: MSMQ
Inbound URL: FORMATNAME:DIRECT=OS:.\PRIVATE$\BIZTALKRECEIVEPORT1
Outbound Adapter: empty
Outbound URL: empty
Service Instance ID: 084c002f-ed6f-48b8-b2f7-74c97ff4a3ea
Message ID: 897dfca2-7015-4551-8d4f-d53cb11eb1b2


If I look at the Message Details for Message 1, I see:
Message ID: 2204d6ba-c83c-446c-95a3-d639dc138c0e
Content
ReceivePortName=ReceivePortMsmq, IsPromoted=True
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties
Label=TriggerLabel, IsPromoted=False
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties

If I look at the Message Details for Message 2, I see:
Message ID: 897dfca2-7015-4551-8d4f-d53cb11eb1b2
Label=TriggerLabel, IsPromoted=False
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties
note: the property ReceivePortMsmq is not present

%%%%%%%%%%

It appears that the MSMQ.Label is not getting promoted.

If you look in the Adapter for MSMQ Help
(Start, Programs, Microsoft BizTalk 2004 Adapter for MSMQ 2.0, Documentation)
in the aricle:
BizTalk 2004 Adapter for MSMQ Properties
there is this excerpt:
--------
Message Labels
You can use the Message Queuing Label property in filters by adding a
reference to MSMQAdapterProperties.dll and selecting the property in the
Filter dialog box. You can also use the property in other contexts because
the adapter for MSMQ automatically adds it to the message context.
--------

So the excerpt implies to me that no promotion is needed, even though the
Context for the Messages in the Health and Activity Tracking tool
states that Label is not promoted.

What steps are needed for Content Based Routing to work with
the Microsoft Biztalk 2004 Adapter for MSMQ 2.0?

I know my MSMQ installation works because if I do this on
the Send Port:
Edit..., Filters & Maps, Filters
BTS.ReceivePortName == ReceivePortMsmq

then when I send a message to ReceivePortMsmq, BizTalk reads the message
and places the message in the SendPort1 MSMQ queue.

%%%%%%%%
Configuration:

Receive Port: ReceivePortMsmq
Receive Location: Receive Location1
Transport Type: MSMQ
Address (URI): FORMATNAME:DIRECT=OS:.\PRIVATE$\BIZTALKRECEIVEPORT1
Receive Handler: BizTalkServerApplication
Receive Pipeline: Microsoft.BizTalk.DefaultPipelines.PassThruReceive

Send Port: SendPort1
Transport, Primary
Transport Type: MSMQ
Address (URI): FORMATNAME:DIRECT=OS:.\PRIVATE$\BIZTALKSENDPORT1
Retry Count: 3
Retry Interval: 5
Ordered Delivery: False
Transport, Secondary: none specified
Send, General
Send pipeline: Microsoft.BizTalk.DefaultPipelines.PassThruTransmit
Filters & Maps, Filters
MSMQ.Label == TriggerLabel


%%%%%%%%

Eldar Musayev

2005-09-23, 5:52 pm


MSMQ.Label property exists in the context, but it is not promoted it
BizTalk 2004. It is goign to be fixed in BizTalk 2006, but in BTS 2004 you
may have to include a custom pipeline component that would promote this
property.
Regards,
Eldar
http://blogs.msdn.com/eldarm/default.aspx

This posting is provided "AS IS" with no warranties, and confers no rights.
Business Process Integration Team

Get Connected!
Meet and interact with key BizTalk Server program managers, developers, and
testers, and let them and other BizTalk Server community team members and
Most Valuable Professionals help you solve your product questions.

Navigate to http://msdn.microsoft.com/subscriptions/support/ in your
webrowser and register as a managed customer to receive MSDN Managed
Newsgroup Support!

MSDN managed newsgroups are available in English to MSDN Universal,
Enterprise, Professional, and Operating Systems subscribers to receive
free, unlimited technical support on select Microsoft technologies as well
as to share ideas with other subscribers.
--------------------[vbcol=seagreen]
Failure)[vbcol=seagreen]
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties[vbcol=seagreen]
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties[vbcol=seagreen]
Namespace=http://schemas.microsoft.com/BizTalk/2003/msmq-properties[vbcol=seagreen]
Documentation)[vbcol=seagreen]
because[vbcol=seagreen]
Microsoft.BizTalk.DefaultPipelines.PassThruReceive[vbcol=seagreen]
Microsoft.BizTalk.DefaultPipelines.PassThruTransmit[vbcol=seagreen]

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com