BizTalk Server General - Subscription problem BTS 2006

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > June 2006 > Subscription problem BTS 2006





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 Subscription problem BTS 2006
Mikael Östberg

2006-06-02, 7:16 am

Hello all!

I am migrating a quite small solution from BTS 2004 to BTS 2006 and I have a
problem with a message that can't find it's subscribers.

The Receive location is using MSMQ and recieves messages from a local
private queue. They are to be sent into an orchestration where the inport
takes a message that corresponds to a certain Schema.

The message that arrives looks like this:

<?xml version="1.0" ?>
<ProductUpdate xmlns=http://www.myurl.com/myapp/ProductUpdateSpec.xsd>
....
</ProductUpdate>

The Schema header looks like this:

<?xml version="1.0" encoding="utf-16" ?>
<xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
xmlns="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
targetNamespace=http://www.myurl.com/myapp/ProductUpdateSpec.xsd
version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:annotation>
<xs:appinfo>
<b:schemaInfo BizTalkServerEditorTool_Version="1.5"
displayroot_reference="ProductUpdate" standard="XML"
target_namespace="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
root_reference="ProductUpdate" />
</xs:appinfo>
</xs:annotation>
...
</xs:schema>

I have bound the orchestration to the receive port, receive location and
enlisted and started everything.

The error:
The published message could not be routed because no subscribers were found.
This error occurs if 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. Please use the Biztalk Administration
console to troubleshoot this failure.

When I check the subscription properties for my orchestration, I can see
this:
http://schemas.microsoft.com/BizTal...ies.MessageType ==
http://www.myurl.com/myapp/ProductU...d#ProductUpdate And
http://schemas.microsoft.com/BizTal...s.ReceivePortID ==
{217791FF-1402-4840-A518-9B0306E21B08}

According to me, all this is correct and still the message is not routing
correctly. Why is this?

Thankful for help!

Mikael Östberg


Greg Forsythe

2006-06-02, 7:16 am

What are the values for these properties in the message. You can use the
admin console to look at the message context of the failed message.
Are you using the right pipeline?

Greg

"Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
news:OY7nqEjhGHA.4404@TK2MSFTNGP05.phx.gbl...
> Hello all!
>
> I am migrating a quite small solution from BTS 2004 to BTS 2006 and I have
> a
> problem with a message that can't find it's subscribers.
>
> The Receive location is using MSMQ and recieves messages from a local
> private queue. They are to be sent into an orchestration where the inport
> takes a message that corresponds to a certain Schema.
>
> The message that arrives looks like this:
>
> <?xml version="1.0" ?>
> <ProductUpdate xmlns=http://www.myurl.com/myapp/ProductUpdateSpec.xsd>
> ...
> </ProductUpdate>
>
> The Schema header looks like this:
>
> <?xml version="1.0" encoding="utf-16" ?>
> <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
> xmlns="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
> targetNamespace=http://www.myurl.com/myapp/ProductUpdateSpec.xsd
> version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:annotation>
> <xs:appinfo>
> <b:schemaInfo BizTalkServerEditorTool_Version="1.5"
> displayroot_reference="ProductUpdate" standard="XML"
> target_namespace="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
> xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
> root_reference="ProductUpdate" />
> </xs:appinfo>
> </xs:annotation>
> ...
> </xs:schema>
>
> I have bound the orchestration to the receive port, receive location and
> enlisted and started everything.
>
> The error:
> The published message could not be routed because no subscribers were
> found.
> This error occurs if 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. Please use the Biztalk Administration
> console to troubleshoot this failure.
>
> When I check the subscription properties for my orchestration, I can see
> this:
> http://schemas.microsoft.com/BizTal...ies.MessageType ==
> http://www.myurl.com/myapp/ProductU...d#ProductUpdate And
> http://schemas.microsoft.com/BizTal...s.ReceivePortID
> ==
> {217791FF-1402-4840-A518-9B0306E21B08}
>
> According to me, all this is correct and still the message is not routing
> correctly. Why is this?
>
> Thankful for help!
>
> Mikael Östberg
>
>



Mikael Östberg

2006-06-02, 1:14 pm

Thanks for you reply!

I am using a custom pipline with an XML Validator against the schema I have.
I tried to use an XmlPipeline but that wouldn't work. It said something
about not beeing able to handle the message.

Right now, I've lost connection to the machine, so I'm a bit stuck with
that.

But about subscriptions. Can I manually set what properties the
orchestration should listen to? Now it seems like the properties match, but
it still doesn't work which is quite confusing. It would be better i I could
just set that it would listen to a specific receive location. Is that
possible in a receive location bound to orchestration set up..?

Thanks!

::m



"Greg Forsythe" <greg.forsythe@gmail.com> wrote in message
news:ebbhLejhGHA.764@TK2MSFTNGP03.phx.gbl...
> What are the values for these properties in the message. You can use the
> admin console to look at the message context of the failed message.
> Are you using the right pipeline?
>
> Greg
>
> "Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
> news:OY7nqEjhGHA.4404@TK2MSFTNGP05.phx.gbl...
have[vbcol=seagreen]
inport[vbcol=seagreen]
subscription[vbcol=seagreen]
==[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...s.ReceivePortID[vbcol=seagreen]
routing[vbcol=seagreen]
>
>



Greg Forsythe

2006-06-02, 7:14 pm

Do you have the XmlDisassembler in the custom pipeline.
This is the component that recognises the message and promotes the
properties, including the MessageType.
The XmlDisassembler uses the root node and target namespace to establish the
MessageType and to find the schema. The schema has the definitions of the
promoted properties.
The XmlValidator will only work if the MessageType has been set.
The orchestration will be subscribing to the MessageType - this is taken
from the MessageType of the message that is being received by the
orchestration.
You can add additional filters to the subscription by setting filters on the
receive shape in the orchestration.

I would try to find out why the standard XmlReceive pipeline is not working.

Greg

"Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
news:%23iCYdmkhGHA.460@TK2MSFTNGP02.phx.gbl...
> Thanks for you reply!
>
> I am using a custom pipline with an XML Validator against the schema I
> have.
> I tried to use an XmlPipeline but that wouldn't work. It said something
> about not beeing able to handle the message.
>
> Right now, I've lost connection to the machine, so I'm a bit stuck with
> that.
>
> But about subscriptions. Can I manually set what properties the
> orchestration should listen to? Now it seems like the properties match,
> but
> it still doesn't work which is quite confusing. It would be better i I
> could
> just set that it would listen to a specific receive location. Is that
> possible in a receive location bound to orchestration set up..?
>
> Thanks!
>
> ::m
>
>
>
> "Greg Forsythe" <greg.forsythe@gmail.com> wrote in message
> news:ebbhLejhGHA.764@TK2MSFTNGP03.phx.gbl...
> have
> inport
> subscription
> ==
> http://schemas.microsoft.com/BizTal...s.ReceivePortID
> routing
>
>



Kartik Paramasivam

2006-06-05, 1:16 am


In 2006, you can go to the Biztalk admin console and look at the receive
port instance which was suspended due to the routing failure.
you can right click on the suspended instance and select "Trouble shoot
routing failure". Now this will lead you to the "routing failure report".
Look at the message and then the message context inside the routing failure
report. This will show you the list of context properties which were promoted
when the message was published after the receive pipeline. This will allow
you to debug which property was not promoted.

"Mikael Ă–stberg" wrote:

> Hello all!
>
> I am migrating a quite small solution from BTS 2004 to BTS 2006 and I have a
> problem with a message that can't find it's subscribers.
>
> The Receive location is using MSMQ and recieves messages from a local
> private queue. They are to be sent into an orchestration where the inport
> takes a message that corresponds to a certain Schema.
>
> The message that arrives looks like this:
>
> <?xml version="1.0" ?>
> <ProductUpdate xmlns=http://www.myurl.com/myapp/ProductUpdateSpec.xsd>
> ....
> </ProductUpdate>
>
> The Schema header looks like this:
>
> <?xml version="1.0" encoding="utf-16" ?>
> <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
> xmlns="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
> targetNamespace=http://www.myurl.com/myapp/ProductUpdateSpec.xsd
> version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <xs:annotation>
> <xs:appinfo>
> <b:schemaInfo BizTalkServerEditorTool_Version="1.5"
> displayroot_reference="ProductUpdate" standard="XML"
> target_namespace="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"
> xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
> root_reference="ProductUpdate" />
> </xs:appinfo>
> </xs:annotation>
> ...
> </xs:schema>
>
> I have bound the orchestration to the receive port, receive location and
> enlisted and started everything.
>
> The error:
> The published message could not be routed because no subscribers were found.
> This error occurs if 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. Please use the Biztalk Administration
> console to troubleshoot this failure.
>
> When I check the subscription properties for my orchestration, I can see
> this:
> http://schemas.microsoft.com/BizTal...ies.MessageType ==
> http://www.myurl.com/myapp/ProductU...d#ProductUpdate And
> http://schemas.microsoft.com/BizTal...s.ReceivePortID ==
> {217791FF-1402-4840-A518-9B0306E21B08}
>
> According to me, all this is correct and still the message is not routing
> correctly. Why is this?
>
> Thankful for help!
>
> Mikael Ă–stberg
>
>
>

Mikael Östberg

2006-06-08, 1:19 pm

Hello!

Thanks for your answer!

The problem seems to be that the MessageType property is not promoted.

This is what the orchestration is accepting:

http://schemas.microsoft.com/BizTal...ies.MessageType ==
http://www.myurl.com/myapp/ProductU...d#ProductUpdate And

http://schemas.microsoft.com/BizTal...s.ReceivePortID ==
{217791FF-1402-4840-A518-9B0306E21B08}

But when I check the message in the Administration Console, the MessageType
looks like this:

MessageType 2 Not Promoted
http://schemas.microsoft.com/BizTal...msmq-properties


ReceivePortID {217791FF-1402-4840-A518-9B0306E21B08} Promoted
http://schemas.microsoft.com/BizTal...stem-properties


ReceivePortId however is correct.

The value of the MessageType is 2. Why is this..?

Thanks!

::m


"Kartik Paramasivam" <KartikParamasivam@discussions.microsoft.com> wrote in
message news:D665F81B-60BC-4DA9-86B2-75DE0B55E16D@microsoft.com...
>
> In 2006, you can go to the Biztalk admin console and look at the receive
> port instance which was suspended due to the routing failure.
> you can right click on the suspended instance and select "Trouble shoot
> routing failure". Now this will lead you to the "routing failure report".
> Look at the message and then the message context inside the routing

failure
> report. This will show you the list of context properties which were

promoted[vbcol=seagreen]
> when the message was published after the receive pipeline. This will allow
> you to debug which property was not promoted.
>
> "Mikael Östberg" wrote:
>
have a[vbcol=seagreen]
inport[vbcol=seagreen]
found.[vbcol=seagreen]
been[vbcol=seagreen]
subscription[vbcol=seagreen]
==[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...s.ReceivePortID ==[vbcol=seagreen]
routing[vbcol=seagreen]


Mikael Östberg

2006-06-08, 1:19 pm

Hello Greg!

Thanks for your reply!

I do have an XmlDisassembler in my custom pipeline and it's Documents
Schemas Collection has my Schema.

I also have an XML validator with the same schema. It seems that the message
comes out of the pipeline with the MessageType property set to 2 and it's
not promoted. What does this mean? doesn't the XmlDisassembler find the
xmlns?

The orcestration subscription properties are:

http://schemas.microsoft.com/BizTal...ies.MessageType ==
http://www.myurl.com/myapp/ProductU...d#ProductUpdate And

http://schemas.microsoft.com/BizTal...s.ReceivePortID ==
{217791FF-1402-4840-A518-9B0306E21B08}

The message property ReceivePortID is correct.

I guess the problem is in the pipeline..?

Thanks!

::m



"Greg Forsythe" <greg.forsythe@gmail.com> wrote in message
news:e1CuLuohGHA.1276@TK2MSFTNGP03.phx.gbl...
> Do you have the XmlDisassembler in the custom pipeline.
> This is the component that recognises the message and promotes the
> properties, including the MessageType.
> The XmlDisassembler uses the root node and target namespace to establish

the
> MessageType and to find the schema. The schema has the definitions of the
> promoted properties.
> The XmlValidator will only work if the MessageType has been set.
> The orchestration will be subscribing to the MessageType - this is taken
> from the MessageType of the message that is being received by the
> orchestration.
> You can add additional filters to the subscription by setting filters on

the
> receive shape in the orchestration.
>
> I would try to find out why the standard XmlReceive pipeline is not

working.
>
> Greg
>
> "Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
> news:%23iCYdmkhGHA.460@TK2MSFTNGP02.phx.gbl...
the[vbcol=seagreen]
xmlns=http://www.myurl.com/myapp/ProductUpdateSpec.xsd>[vbcol=seagreen]
not[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...ies.MessageType[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...s.ReceivePortID[vbcol=seagreen]
>
>



Greg Forsythe

2006-06-09, 7:18 am

Do you have "Routing enabled for failed messages" set on the receive port
Does the message have any properties in the
"http://schemas.microsoft.com/BizTalk/2005/error-report" namespace

Have you tried not specifying the schema on the XmlDisassembler.


Greg

"Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
news:ebngfewiGHA.3588@TK2MSFTNGP02.phx.gbl...
> Hello Greg!
>
> Thanks for your reply!
>
> I do have an XmlDisassembler in my custom pipeline and it's Documents
> Schemas Collection has my Schema.
>
> I also have an XML validator with the same schema. It seems that the
> message
> comes out of the pipeline with the MessageType property set to 2 and it's
> not promoted. What does this mean? doesn't the XmlDisassembler find the
> xmlns?
>
> The orcestration subscription properties are:
>
> http://schemas.microsoft.com/BizTal...ies.MessageType ==
> http://www.myurl.com/myapp/ProductU...d#ProductUpdate And
>
> http://schemas.microsoft.com/BizTal...s.ReceivePortID
> ==
> {217791FF-1402-4840-A518-9B0306E21B08}
>
> The message property ReceivePortID is correct.
>
> I guess the problem is in the pipeline..?
>
> Thanks!
>
> ::m
>
>
>
> "Greg Forsythe" <greg.forsythe@gmail.com> wrote in message
> news:e1CuLuohGHA.1276@TK2MSFTNGP03.phx.gbl...
> the
> the
> working.
> the
> xmlns=http://www.myurl.com/myapp/ProductUpdateSpec.xsd>
> not
> http://schemas.microsoft.com/BizTal...ies.MessageType
> http://schemas.microsoft.com/BizTal...s.ReceivePortID
>
>




Mikael Östberg

2006-06-13, 7:23 am

Hello again!

I have gone through almost every little part of this solution and found a
solution which had little to do with BTS.

Apparently the problem was that the MSMQ which works with UTF-16.

The resulting message arrived corrupted with double byte characters and
single byte characters were expected. Aren't there any encoding settings for
pipelines, XmlDisassemblers etc..? Or is not needed if things are done the
right way from the start?

The problem began in the sending code, where an ActiveXformatter was used
for Xml messages too. I changed the formatter to an XmlFormatter which did
the trick. I'm gonna have to use the ActiveXformatter for csv messages
though, but the I can probably set the encoding in the flat file schema,
right..?

Anyway. Thanks for helping me! Very much appreciated!

::m



"Greg Forsythe" <greg.forsythe@gmail.com> wrote in message
news:#G$vZK5iGHA.836@TK2MSFTNGP02.phx.gbl...
> Do you have "Routing enabled for failed messages" set on the receive port
> Does the message have any properties in the
> "http://schemas.microsoft.com/BizTalk/2005/error-report" namespace
>
> Have you tried not specifying the schema on the XmlDisassembler.
>
>
> Greg
>
> "Mikael Östberg" <mikael.ostberg-at-intellecta.se> wrote in message
> news:ebngfewiGHA.3588@TK2MSFTNGP02.phx.gbl...
it's[vbcol=seagreen]
==[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...s.ReceivePortID[vbcol=seagreen]
establish[vbcol=seagreen]
the[vbcol=seagreen]
taken[vbcol=seagreen]
on[vbcol=seagreen]
I[vbcol=seagreen]
something[vbcol=seagreen]
with[vbcol=seagreen]
match,[vbcol=seagreen]
I[vbcol=seagreen]
and[vbcol=seagreen]
target_namespace="http://www.myurl.com/myapp/ProductUpdateSpec.xsd"[vbcol=seagreen]
location[vbcol=seagreen]
has[vbcol=seagreen]
can[vbcol=seagreen]
http://schemas.microsoft.com/BizTal...s.ReceivePortID[vbcol=seagreen]
>
>
>



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com