Friday, August 12, 2011

Error: "The published message could not be routed because no subscribers were found."

Charan: Hey Rohit I am getting the error "The published message could not be routed because no subscribers were found." as shown below. Do you have any idea how I can get rid of it?

Rohit: As this error is stating that  "the subscribing orchestration or send port has not been enlisted, or if some of the message properties necessary for subscription evaluation have not been promoted." Let  trouble shoot this error by using the BizTalk Administration console. 

First check the properties in the context of message and verify if you can see the desired properties promoted.

Charan: hmmm ok I am opening the routing failure reports:

I can see the property 'Customer' is promoted in the context of message.

Rohit: Then the second step would be to check the subscription. Let me check the Activation Subscription:

I can't see any subscription. Have you forgot to enlist the Send Port/Orchestration.

Charan: Let me check 
ohh... yes I forget to start the send port.

Rohit: Then start it and resume the message again.

Charan: I have started it and resuming the message.

Charan: hmmm... I am still getting the same error

Rohit: Let me check the Activation Subscription details.

I can see that you have specified the wrong name in send port subscription. It is showing as "ab" and based on the value of property Customer in the context of the message I think it should be "abc". Correct it in send port filter and resume the message.

Charan: Ah!! at last it worked !!!

Rohit Sharma

Tuesday, August 9, 2011

The Cumulative update package 3 for BizTalk Server 2009 is now available

The Cumulative update package 3 for BizTalk Server 2009 is now available. The cumulative update package for Microsoft BizTalk Server 2009 contains hot fixes for issues that were fixed after the release of BizTalk Server 2009. You can download it from here:

Tuesday, August 2, 2011

Debatching XML message

Charan: hmmm I am in little trouble. I have ax XML message confirming to schema shown below and I want to debatch it so that the size of message can be reduced by splitting it into little chunks but don't know how to do it.

Rohit: You can debatch this message by splitting message based on ResponseRecord. To do this you need to perform 3 steps.

1. Convert the schema to envelope.
2. Create schema for single ResponseRecord
3.Create a receive port using XMLReceive pipeline.

Step1: Convert the schema to envelope by following these steps:
1.1 Set Envelope property to Yes by selecting the <Schema>

1.2 Set Body XPath to ResponseRecords as shown below.

Step2: Create schema for single ResponseRecord which would be parse the  debatched records by XMLReceive pipeline.
2.1 Import the batch schema into this schema.

2.2 Set the Data Structure Type of Root Node to ResponseRecord from the imported schema

2.3 Rename the Root node to ResponseRecord and make sure that Target Namespace is Empty

Deploy this solution.

Step3: Create a receive location using the XMLReceive pipeline and send port to test the solution.

Rohit Sharma