Answered by:
Tracking Messages

Question
-
Biztalkers -Please adive me to the following:ex.the scenario is :1) The orchestration receive a request from the client2) The orchestration call a wcf service, so we need to tranform the message to the WCF service request3) Ttransform the reposne from the WCF in a simple response4) Send the simple response back to the client .so, I need to make a report of the message flow from the receive port to the response port.what was the message at each stage:1) The message at the receive port .2) The transformed message (WCF request).3) The WCF respone.4) The transformed response.You can say a tracking systemI need to do this using a simple web application;1) Should I use the operations dll, however I client doesn't know the GUID of the message2) Or should I use the tracking option, but I dont know how to show this in the web-application?3) Will the reportinf service help me in this; I mean Can I access the message box or something like the BAM db?Thank for you time. :)
Mohammad Yousri - http://mohammad-yousri.blogspot.comFriday, March 13, 2009 11:54 PM
Answers
-
The WCF tracking works fine to track messages on the Web-services.
Try to use the message content to find out the right messages, not the message GUIDs.
To make simple tracking app you could use the article http://geekswithblogs.net/LeonidGaneline/archive/2007/02/15/106420.aspx
Leonid Ganeline [BizTalk MVP] http://geekswithblogs.net/leonidganeline- Marked as answer by moyous Wednesday, March 18, 2009 10:52 AM
Sunday, March 15, 2009 11:10 PMModerator -
Mohammad, you will need to use the BAM API inorder to store message bodies in the BAM Database.
Darren Jefford has some info on his blog:
You would insert this code into an expression shape....
string ItineraryActivityID = System.Guid.NewGuid().ToString();
DirectEventStream des = new DirectEventStream("Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport", 1);
des.BeginActivity("Itinerary", ItineraryActivityID);
des.UpdateActivity("Itinerary", ItineraryActivityID, "Received", System.DateTime.Now,
"Customer Name","Darren Jefford","County","Wiltshire","Total Itinerary Price",1285);
des.AddReference("Itinerary", ItineraryActivityID, "Activity", "Flight", flightActivityID);
des.AddReference("Itinerary", ItineraryActivityID, "MsgBody", "MessageBody", System.DateTime.Now.ToString(), myXmlMessageBody);
des.EndActivity("Itinerary",ItineraryActivityID);
EDIT: btw the maximum message body size is 1 MB http://blogs.msdn.com/darrenj/archive/2007/04/30/bam-best-practice-starter-for-10.aspx- Proposed as answer by Yossi DahanMicrosoft employee, Moderator Wednesday, March 18, 2009 8:43 AM
- Marked as answer by moyous Wednesday, March 18, 2009 10:52 AM
Wednesday, March 18, 2009 1:26 AMAnswerer
All replies
-
Sounds like a scenario you would solve with BAM. Even though I don't understand the question. Prehaps you could describe what you'd expect to see on the simple web application.
//Mikael
If this answers your question, please use the "Answer" button to say so... Mikael - http://blogical.se/blogs/mikaelSunday, March 15, 2009 9:34 PM -
The WCF tracking works fine to track messages on the Web-services.
Try to use the message content to find out the right messages, not the message GUIDs.
To make simple tracking app you could use the article http://geekswithblogs.net/LeonidGaneline/archive/2007/02/15/106420.aspx
Leonid Ganeline [BizTalk MVP] http://geekswithblogs.net/leonidganeline- Marked as answer by moyous Wednesday, March 18, 2009 10:52 AM
Sunday, March 15, 2009 11:10 PMModerator -
Thanks -
Look mikal.
let assume the following :
1) Send a request to the Orchestration
2) Tranformation the message to be sent to the WCF service
3) Tranformation the response from the WCF service
4) Send the response back to the client
very simple.
I need to show the client, in a web application; you can say a grid view grouped by the user that made the request or by timestamp, the grid-view should include the following:
1) The request that start up the orchestration
2) WCF request ( the message after the transformation process)
3) The WCF response
4) The response
something like the message flow of the HAT, but I need to show this message flow in a webapplication group by the user that made the request or by timestamp of the messag.......:) very simple..
Mohammad Yousri - http://mohammad-yousri.blogspot.comMonday, March 16, 2009 11:09 AM -
Ok I think the best and easiest solution would be to use BAM and reporting services to show the status of the message. I would not recommend using the tracking database as source, since it's slow to read from, and was not designed for that purpose. Also, it might be enough, just to track (still using BAM) when the ports are executed.
If you are not used to work with any of these tools, you can contact me on my blog (im or mail), and I can help you out with the details.
http://blogical.se/blogs/mikael
//Mikael
If this answers your question, please use the "Answer" button to say so... Mikael - http://blogical.se/blogs/mikaelMonday, March 16, 2009 5:29 PM -
I know how o deal with these tool, however, I dont know how to let the BAM stor the message bodies. do you know?
Mohammad Yousri - http://mohammad-yousri.blogspot.comTuesday, March 17, 2009 9:47 AM -
Mohammad, you will need to use the BAM API inorder to store message bodies in the BAM Database.
Darren Jefford has some info on his blog:
You would insert this code into an expression shape....
string ItineraryActivityID = System.Guid.NewGuid().ToString();
DirectEventStream des = new DirectEventStream("Integrated Security=SSPI;Data Source=.;Initial Catalog=BAMPrimaryImport", 1);
des.BeginActivity("Itinerary", ItineraryActivityID);
des.UpdateActivity("Itinerary", ItineraryActivityID, "Received", System.DateTime.Now,
"Customer Name","Darren Jefford","County","Wiltshire","Total Itinerary Price",1285);
des.AddReference("Itinerary", ItineraryActivityID, "Activity", "Flight", flightActivityID);
des.AddReference("Itinerary", ItineraryActivityID, "MsgBody", "MessageBody", System.DateTime.Now.ToString(), myXmlMessageBody);
des.EndActivity("Itinerary",ItineraryActivityID);
EDIT: btw the maximum message body size is 1 MB http://blogs.msdn.com/darrenj/archive/2007/04/30/bam-best-practice-starter-for-10.aspx- Proposed as answer by Yossi DahanMicrosoft employee, Moderator Wednesday, March 18, 2009 8:43 AM
- Marked as answer by moyous Wednesday, March 18, 2009 10:52 AM
Wednesday, March 18, 2009 1:26 AMAnswerer -
Thanks Kent.
Mohammad Yousri - http://mohammad-yousri.blogspot.comWednesday, March 18, 2009 10:52 AM