locked
Tracking Messages RRS feed

  • Question

  • Biztalkers - 
    Please adive me to the following:
    ex.
    the scenario is : 
    1) The orchestration receive a request from the client
    2) The orchestration call a wcf service, so we need to tranform the message to the WCF service request
    3) Ttransform the reposne from the WCF in a simple response
    4) 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 system
    I 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 message
    2) 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.com
    Friday, 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 PM
    Moderator
  •  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
    Wednesday, March 18, 2009 1:26 AM
    Answerer

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/mikael
    Sunday, 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 PM
    Moderator
  • 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.com
    Monday, 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/mikael
    Monday, 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.com
    Tuesday, 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
    Wednesday, March 18, 2009 1:26 AM
    Answerer
  • Thanks Kent.


    Mohammad Yousri - http://mohammad-yousri.blogspot.com
    Wednesday, March 18, 2009 10:52 AM