Forum Replies Created
-
AuthorPosts
-
The no matching subscription error is caused when a message is published to the MessageBox and Biztalk cannot find a subscriber for that message.
Receive ports and Orchestrations publish to the MessageBox
Send Ports and Orchestrations subscribe to messages from the MessageBoxBased on your scenario it could be either of the receive ports reporting the error.
The each orchestration needs to be bound to its respective receive port, enlisted and started. This can be done using the Biztalk Explorer.
p.s. If you wish to pass a message to another orchestration, writing it to a file is probably not the best way. You can use direct ports, start orchestration or call orchestration. The orchestrations do not need to be in the same project to do this.
Thanks for your help.
It works perfectly.regards,
ok here is how i do it.
i go into the project settings and set ReDeploy to true.
I have my pipelines in a separate project so I dont have to go into each port and change pipelines to something that is built into biztalk.
when i am ready to ReDeploy I un-enlist the orchestrations. I remove inbound/outbound maps from the ports (maps that are referenced by the assembly i am about to re-deploy) and then i just right-click the project and hit deploy. This causes the project to be undeployed from the biztalk server, new copy deployed and then port bindings set.
if you don’t have outbound/inbound maps then it’s just 2 steps.
1) un-enlist
2) deployBy the way: All my ports are Specify Later
Gino
This is the method of returning the identity from an updategram not a stored proc
It extends the example of adding a new order to SQL found here:
[url]http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/74cfc9d0-0974-4f4a-81f5-6768ff245df1.asp[/url]Hmmm, so the response above is telling us how to get the return code back from a stored proc to Biztalk. I have always wondered how to do that!
You can also just return data in an SQL statement in your stored proc.
Are you already doing that? i.e. you have a request/response, right?The response is the result of an SQL statement at the end of the stored proc that has the \”for xml auto\” clause.
If your order has an identity column, you can access the system variable @@identity (in the SQL stored proc) and return it as a \”normal\” column with the as statement.
Something like this:
Select field1, field2, @@identity as orderid
for xml autoThe SQL Adapter wizard will build a response schema that will have field1, field2, and orderid as elements.
Neal Walters
http://Biztalk-Training.comIf you are willing to live on the \”wild side\” you can just rebuild, then copy the .DLL to the GAC, restart Biztalk host, and go – as long as you don’t change the way you deal with the ports.
I think somebody created a blog that describes when you can ge away with this shortcut.
I’ve been donig it several times a day for the last few weeks. I have been developing on my notebook, I do a rebuild, copy .DLL to test server, restart there, and it has been working fine.
Neal Walters
http://Biztalk-Training.comIt’s necessary, but you can shorten the process.
Use BizTalk Deployment Wizard! You can make a Binding File, which sets the ports. In fact, I haven’t use this function yet, but I’d like to, because it’s really good.
But you must Enlist/Un-enlist, and Start/Stop process the application after all. I think, there’s a BizTalk wizard to make a self-starting application, but I don’t know which is that.
If you check the SDK/Sample projects, you can see, that there’s a Setup.bat, Cleanup.bat file, which builds, deploys, binds the project.
Thanks for your message.
With a helper function, it’s OK.
Raoul
JMan, I am assuming you are still using the Insert New Order example on MSDN
You need to use the updg:returnid attribute
1. Open the [b:eceb982134]InsertOrdersService [/b:eceb982134]schema in the BizTalk Editor.
2. Right-click the [b:eceb982134]after[/b:eceb982134] node, click [b:eceb982134]Insert Schema Node[/b:eceb982134], and then click [b:eceb982134]Child Field Attribute[/b:eceb982134].
3. Locate the [b:eceb982134]Data Type [/b:eceb982134]property of the new attribute, and then select the [b:eceb982134]updg:returnid[/b:eceb982134](Reference) type located at the bottom of the list.
4. Right-click the [b:eceb982134]InsertOrderResponse[/b:eceb982134] node, click [b:eceb982134]Insert Schema Node[/b:eceb982134], and then click [b:eceb982134]Any Element[/b:eceb982134]. Set [b:eceb982134]Process Contents[/b:eceb982134]=Skip and [b:eceb982134]MaxOccurs[/b:eceb982134]=unbounded
5. Save the schema.
6. Open the map that creates the updategram
7. Connect the [b:eceb982134]updg:returnid[/b:eceb982134] to the same concatenate functoid as the [b:eceb982134]updg:at-identity[/b:eceb982134] attribute on the [b:eceb982134]Orders[/b:eceb982134] node
8. Change the concatenate functoid string parameter from 1 to X
9. Open the orchestration
10. Create a message using the [b:eceb982134]InsertOrderResponse[/b:eceb982134]
11. Change the [b:eceb982134]SendOrderUpdate[/b:eceb982134] port to a Request/Response port.
I am not sure of the format of the reponse message, you may have to write it to a file
We had an MSMQT port that was not picked up by using this technique.
Neal
You were totally correct – I have redone it and it worked.
Thanks a million
Regards
JManYes that worked, thank you very very very much.
Regards
JManHey greg.forsythe,
Thanks for your response.
I changed the sproc parameter from Text to nText and it all seems to work good.Have a good day.
— StevenXml is very specific about character encoding.
Unless specified otherwise the default encoding is UTF-8.
<?xml version=\”1.0\” encoding=\”UTF-8\”?>You can set the encoding to ISO8259-1 (US-ASCII) on the incoming message
<?xml version=\”1.0\” encoding=\”ISO-8259-1\”?>or possibly use UTF-16 – although this will require changing the data, also using ntext rather than text in SQL
Use System.Diagnostics.Debug.WriteLine(\”xxx\”);
Then in Visual Studio, do a \”Debug Attach\” to process BTSNTSvc.exe.
I think the messages will appear in the Debug or Output window of Visual Studio.
Or write a C# helper class that writes to a file. Create a special \”C:\\Biztalk\\DebugOutput\” directory, and then each file name should have a GUID in it so that multiple orch’s don’t write to same file.
The nice thing about this technique is that the entire \”stream\” of each orchestration is in one file. Helper class could do the work of date/time stamping each line written.Alternatively, log debug messages to an SQL table, then use query analyzer or write a little ASP.NET viewer for it.
Neal
-
AuthorPosts