by vijaymstech | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Expose Orchestration as WCF Service – Errors – Resolutions
Error 1 :
Receive location for address “/ExposeOrchWCFService/ExposeOrchWCFService_ProcessPO_prtRcvPO.svc” not found. (The BizTalk receive location may be disabled.)
Resolution:
WCF Service Publishing Wizard will create a new Receive location in the application you have specified in the wizard. That receive location need to be enabled.
Error 2:
Cannot open database “BizTalkMgmtDb” requested by the login. The login failed.
Login failed for user ‘NT AUTHORITYNETWORK SERVICE’.
Resolution:
This happens when you create Orchestration and expose as WCF Service. The WCF Publishing Wizard will create Website in IIS. If newly created application is running under ASP.Net 4.0 Application pool, you will see this error while browsing the .svc file. All you need to do is to change the Application Pool to WCFHttpAppPool
Error 3:
The requested service, ‘http://localhost/ExposeOrchWCFService/ExposeOrchWCFService_ProcessPO_prtRcvPO.svc’ could not be activated. See the server’s diagnostic trace logs for more information.
Resolution:
Check whether BizTalk Orchestration and application is started.
by vijaymstech | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Error Message:
The server was unable to process the request due to an internal error. For more information about the error, either turn on IncludeExceptionDetailInFaults (either from ServiceBehaviorAttribute or from the <serviceDebug> configuration behavior) on
the server in order to send the exception information back to the client, or turn on tracing as per the Microsoft .NET Framework 3.0 SDK documentation and inspect the server trace logs.
The Messaging engine failed to process a message submitted by adapter:WCF-BasicHttp Source
URL:/ExposeOrchWCFService/ExposeOrchWCFService_ProcessPO_prtRcvPO.svc. Details: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.
Resolution:
Receive Port ID for the tight coupled orchestration with the Receive port is different that the one which was created by WCF Service publising wizard. You need to change Receive Port configuration to Direct.
https://social.msdn.microsoft.com/Forums/en-US/97de9430-89c3-4512-a016-1ee30d92fd20/published-message-could-not-be-routed?forum=biztalkgeneral
https://social.msdn.microsoft.com/Forums/en-US/e1441f35-ef5d-49dc-8173-43b34e2bacac/biztalk-server-errorthe-messaging-
engine-failed-to-process-a-message-submitted-by?forum=biztalkgeneral
by vijaymstech | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Compile Error:
use of unconstructed message ‘messageName’
Cause:
If you have 1 message in orchestration, and you are using map to construct message out of same schema then you encounter this error.
Resolution:
Change you logic to use 2 schema or create 2 message variable for the same message.
by vijaymstech | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Exposing Orchestration as WCF Service – Notes
Exposing Orchestration as WCF Service – Notes
Orchestration with Receive and Send as two different Port (One-Way):
If you create an orchestration with independent Receive and Send Ports, then WCF Service Wizard will create void as return type for the client Service Reference.
You need to use WCFHttpPool to host the Orchestration in IIS.
WCF publishing wizard will create a new WCF-BasicHttp receive location. It will be a one-way receive location. This port will be running under BizTalk Isolated Host Instances.
WCF Publishing wizard will create a large text as the service reference name like
<Name Given As Service Reference Namespace>.<OrchProjectName_OrchestrationName_ReceivePort Name>.
By default, WCF Publishing Wizard creates BasicHttpBinding_ITwoWayAsynVoid as interface type name for WCF Service.
You need make sure the Receive Port is configured as Direct Binding.
Code for Calling WCF from Console Application:
RcvProcessPO.ExposeOrchWCFService_ProcessPO_prtRcvPOClient client = new
RcvProcessPO.ExposeOrchWCFService_ProcessPO_prtRcvPOClient(“BasicHttpBinding_ITwoWayAsyncVoid”);
RcvProcessPO.PurchaseOrder po = new RcvProcessPO.PurchaseOrder();
po.PONum = “7002”;
po.PODate = “09/09/2015”;
po.POAmount = “1200”;
po.POQty = “120”;
client.RcvProcessPO(po);
Two way – Request Response port in Orchestration:
Make sure Request Response port is configured in Orchestration, and it should be bind directly to the Message Box.
Check WCFHttpPool application pool identity user has permission to biztalk databases.
Verify value passed to the client function is of reference type and you need to pass it as ref.
It will be difficult to stop port/location to examine the context or messages in BizTalk. Since it is Request Respond Receive Location, you cannot stop it. Even if you stop, WCF service will not be invoked at it says “Receive location is disabled”
Code for calling Request Response WCF from Console Application:
CalculatePOAmount.ExposeOrchReqResp_CalculatePOAmount_prtCalculatePOAmountClient client = new
CalculatePOAmount.ExposeOrchReqResp_CalculatePOAmount_prtCalculatePOAmountClient(“BasicHttpBinding_ITwoWayAsync”);
CalculatePOAmount.CalculatePOAmountRequest req = new CalculatePOAmount.CalculatePOAmountRequest();
CalculatePOAmount.PurchaseOrder po = new CalculatePOAmount.PurchaseOrder();
po.PONum = “4567”;
po.PODate = “09/09/2015”;
po.POQty = “12”;
po.POUnitPrice = “100”;
CalculatePOAmount.CalculatePOAmountResponse resp = new CalculatePOAmountResponse();
resp.PurchaseOrder = po;
client.CalculatePOAmount(ref po);
resp.PurchaseOrder = po;
Console.WriteLine(” The calculated PO Amount = {0}”, resp.PurchaseOrder.POAmount.ToString());
Console.ReadLine();
by community-syndication | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Error 1 : Receive location for address “/ExposeOrchWCFService/ExposeOrchWCFService_ProcessPO_prtRcvPO.svc” not found. (The BizTalk receive location may be disabled.) Resolution: WCF Service Publishing Wizard will create a new Receive location in the application you have specified in the wizard. That receive location need to be enabled. Error 2: Cannot open database “BizTalkMgmtDb” requested by the login. The […]
Blog Post by: vijaymstech
by Gautam | Aug 10, 2016 | BizTalk Community Blogs via Syndication
Bill Chesnut, @BizTalkBill
Bill is Cloud Platform & API Evangelist at SixPivot located in Melbourne Australia. He started his career in 1983 with the US Defense as an IBM Systems Programmer. He switched to the Microsoft Windows platform in 1994, and has been involved with Windows development ever since.
Most recently, Bill has been driving various application integration projects using BizTalk Server 2000, 2002, 2004, 2006 and 2006 R2 to connect a variety of Microsoft Business Solutions applications with other systems. Bill is also a Microsoft Certified Trainer and has been actively training BizTalk developers since the release of BizTalk 2004. He is also a member of the elite Microsoft Virtual Technology Specialist (VTSP) team, a small group of selected industry experts working as an extension to the Microsoft Technology Specialist teams. He is also a Microsoft Integration Microsoft Valuable Professional (MVP)
Bill is very involved in the Microsoft User Group Community as leader of the Melbourne .Net User Group. Bill has also been working closely with Microsoft to run the BizTalk User group in Melbourne. Bill is also the primary organizer of the BizTalk Saturday BizTalk Hands on Days around Australia and New Zealand. Bill also maintain a blog at http://www.biztalkbill.com/
He has also spoke couple of times in Integration User Group – Integration Monday
Last year Bill also delivered sessions in Microsoft Ignite New Zealand and Microsoft Ignite Australia
It’s really great to have him as one of the reviewer of our book– Robust Cloud Integration with Azure. Here is his thoughts about the book.
1. What do you think about the outline of the book?
I think this book will be a great reference for those integration developers moving from on-premises to the cloud and to help those developers already working in the cloud leverage the full Microsoft PaaS Integration stack.
2. What is your expectation from the book or how do you think this book would be valuable for its reader’s time and money?
There are a number of different technologies in Azure and the question always come up about what particular component to use and when to use them, this book should offer some well needed guidance to help answer those question and get integration developers start on the cloud integration journey.
I welcome Bill to our book reviewer team and I am sure his guidance will shape the book to a valuable resource for cloud integration.
Related links:
by community-syndication | Aug 9, 2016 | BizTalk Community Blogs via Syndication
Last week I was in Las Vegas for SpringOne Platform. This conference had one of the greatest session lists I’ve ever seen, and brought together nearly 2,000 people interested in microservices, Java Spring, DevOps, agile, Cloud Foundry, and cloud-native development…. Read More ›
Blog Post by: Richard Seroter
by vijaymstech | Aug 9, 2016 | BizTalk Community Blogs via Syndication
MessageContextPropertyBase vs MessageDataPropertyBase vs PartContextPropertyBase
By default, none of the value for the property schema base will be selected. But even though you have not selected anything, once you promote a field and assign it to promoted property field in Property Schema, property schema base value will be
“MessageDataPropertyBase” by default when deployed.
If you select the property schema base as MessageContextPropertyBase, then it will be added to the context property of the message but not promoted. To promote the field you need to use custom pipeline component to add that to promoted property field.
To use MessageDataPropertyBase promoted field value, you need to create an instance of the message and use it, where as MessageContextPropertyBase value can be accessed without creating an instance of the message. This behavior is similar to the static variable in any programming language.
So many times, I have wondered how to have a global variable assigned, while doing BizTalk Process. If you think little bit aloud and you can treat this MessageContextPropertyBase as global variable. But you have to make sure, this gets added to the newly created message or you have to get it in local variable. When you need to pass to another orchestration, you can do so by passing it as an Orchestration Parameter.
PartContextPropertyBase:
PartContextPropertyBase is used for setting context properties for individual Message Parts of a Multipart Message. A multipart message can have more than one part.
It is similar to MessageContextPropertyBase and works on Multipart Messages
https://masteringbiztalkserver.wordpress.com/2011/06/06/using-partcontextpropertybase-in-biztalk-server/
http://sachipa.blogspot.in/2012/07/property-schema-property-schema-base.html
Related Links:
https://abdulrafaysbiztalk.wordpress.com/tag/messagecontextpropertybase/
https://masteringbiztalkserver.wordpress.com/2011/03/08/difference-between-messagecontextpropertybase-and-messagedatapropertybase/
https://masteringbiztalkserver.wordpress.com/2011/06/06/using-partcontextpropertybase-in-biztalk-server/
http://biztalkcollections.blogspot.in/2008/02/messagecontextpropertybase-magnified.html
http://iworkonsoftware.blogspot.in/2008/07/property-schema-base.html
http://www.codeproject.com/Articles/117356/Unleashing-the-Power-of-BizTalk-Multipart-Messages
http://blogical.se/blogs/johan/archive/2012/06/03/you-do-not-always-need-a-correlation-set-to-promote-properties-in-a-message-sent-from-an-orchestration.aspx
https://www.gittprogram.com/question/883951_define-correlation-type-of-type-part-context-property-base.html
by vijaymstech | Aug 9, 2016 | BizTalk Community Blogs via Syndication
Content vs Context vs Message Based Routing – Confusion Assured
Content vs Context vs Message Based Routing – Confusion Assured
To quote “Enterprise Integration Pattern Book” –
“The Content-Based Router examines the message content and routes the message onto a different channel based on data contained in the message. The routing can be based on a number of criteria such as existence of fields, specific field values
etc.“.
Most of the time I heard people use these three words as their flavour of the month and its all very confusing. Everyone has there own opinion of this terms and hell bend on trying to understand the different meaning it comes with. Adding spice to this mixture, Microsoft never gave a concrete definition on any of these terms and mostly they will talk about scenarios, where to use and when to use, but what it is, that a million dollar question. This article is not to give proper definition, but to understand its meaning. Only saving grace among those articles was from Leonid Ganeline, which
is provided below, and I kind of agree with him on the term Content and Context Based Routing.
Content-Based Routing:
This routing uses few values from message and route the message based on those values to appropriate destination or further processing.
Example:
If you receive a Loan Application through BizTalk, based on some parameter you want to accept or reject the application. Those values which you are looking for can be either distinguished or you are using XPath expression to get the values and send it to further processing. Remember I have not used the word “Promoted”. If I used Promoted variable, it will be easy to look upon and route to appropriate send port/orchestration for further processing. But once a field got promoted, it is going to attached with word “Context”. That’s where the confusion starts. I think these are the few scenarios which sits on the fence and create confusion.
Context-Based Routing:
In BizTalk term, Context is the term used to point to group of property or meta data that are created by BizTalk Adapter. This Context/Metadata property attach to the message for its whole life cycle. One caveat though, inside orchestration Context property get lost if you applied a map on received message and if you copy the message to another message, message data pay load will be copied but its context will not copied. To do that you need to copy the message context one by one and add to the context of newly created message.
In simple term, context gets lost in Message Assignment and Transform shape. To add context to the newly created message, it has to be added manually in code.
One more concept is the MessageContextPropertyBase ( Next post I will discuss this in detail, to the extend of my knowledge), which is used to get value from the message and added to the context.
Message-Based Routing:
Some weird definition of Message-Based routing from Google Search:
When a message is passed through biztalk without being processed then it is called Message Routing.
When a message is routed by BizTalk based on message Type.
Looking at the above definition 1, without message getting processed means you are not manipulating or applying any map on the message. And how those untouched message gets routed. Obviously through context of the messsage, what else right. Then it should be called as Context Based Routing.
Now comes MessageType, if I route my message based on MessageType, from where I will be getting the Message-Type from? Of course from message Context. Then it should be called as Context-Based Routing.
One more definition I keep on hearing is that if I use PassThrough Pipelines in my receive and send ports without applying Maps then it is called Message Based Routing. PassThrough Pipelines will not add lot more context properties, but still add few context properties related to Receive and Send Ports, and you will be using those to route messages. Still not convinced, that there is a concept called Message-Based Routing.
Quote from “Leonid Ganeline” and Link to the Article:
BizTalk uses the promoted properties for routing. There are two kinds of the properties: the content properties and the context properties. The content property extracts its value from inside the message, it is a value of the element or attribute. [See MSDN] The context property gets its value from the message environment. It can be the port name that receive this message, it can be the message Id, created by the BizTalk. Context properties look like the headers in the SOAP message. Actually they are not the headers but behave like headers.
http://geekswithblogs.net/LeonidGaneline/archive/2011/02/27/biztalk-using-context-for-routing.aspx
Content Based Routing:
https://msdn.microsoft.com/en-us/library/aa548077(v=bts.20).aspx
https://msdn.microsoft.com/en-us/library/ff699643(v=bts.70).aspx
http://www.careerride.com/BizTalk-message-routing-and-content-routing.aspx
https://nethramysooru.wordpress.com/2014/01/10/content-based-and-context-based-routing/
http://mylifeismymessage.net/biztalk-orchestrations-vs-content-based-routing/
Context Based Routing:
http://geekswithblogs.net/LeonidGaneline/archive/2011/02/27/biztalk-using-context-for-routing.aspx
https://social.msdn.microsoft.com/Forums/en-US/5ae04752-78ce-4218-b67d-7900a03e8747/content-and-message-based-routing? forum=biztalkgeneral
Message Based Routing:
https://psrathoud.wordpress.com/2013/11/22/15/
https://www.ordina.nl/nl-nl/overige-content/2012/mei/biztalk-message-based-routing/
by community-syndication | Aug 8, 2016 | BizTalk Community Blogs via Syndication
We’re excited to announce the preview of the BizTalk Server 2016 connector for Logic Apps. This connector was first shown in May at Integrate 2016 in London and we’ve done a bunch of work to improve it since then. The biggest of these is that the connector now enables you to integrate Logic Apps with…
Blog Post by: BizTalk Team