Question about performance …

Home Page Forums BizTalk 2004 – BizTalk 2010 Question about performance …

Viewing 3 reply threads
  • Author
    Posts
    • #16587

      Hi!

      I've a Biztalk solution with dynamic routing and mapping. I'm not sure I've implemented it in the most efficient way:

      The map names are read inside my orchestration with the help of an external .net assembly. This assembly reads txt files to gather information about for exemple map types and folder paths.

      So I guess that if for exemple biztalk receives 100 messages, it will start 100 instances of my orchestration and read these txt files 100 times? Or is it smarter than that…?

      Is there a better way to read those values. (they can't be hard coded ofcourse). Would it be possible and better performancevise to work with BRE to access my values?

      thanks for your help!

    • #16594

      So what's the reason for the dynamic mapping?  Do you only have a single end point?  Since you can apply a map(s) at a send port level, in a basic scenario, you do dynamic routing and whichever send point has the necessary subscription (e.g. Quantity > 100 AND VendorID == 1234) will be used and the appropriate maps applied.  Also note that a send port can have multiple maps and the matching inbound root node will be used to pick which map to use.

      To your other point, reading the file in repeatedly is indeed poor for performance, and, would require that file to be sitting on each machine in the BizTalk farm (unless you are using UNC paths).  So, you could put those values in the btsntsvc.exe.config file (which is read upon host start up), but then you still have to keep those config files in sync on each machine.

      The best choice for reading those types of constantly used (yet static) values is to use either the BRE, or SSO.  For the SSO option check out the code samples online (http://msdn.microsoft.com/biztalk/downloads/samples/default.aspx), the one called SSO as Configuration Store.

      • #16618

        Hi!

        Thanks for your input!

        I need to route EDI files based on the SenderID and on the ReceiverID. First I tried with just two filters on the send port SenderID + ReceiverID, for some reason it didn't work (it should because both of these properties are promoted… but the base EDI adapter is full of surprises, for example routing failed messages doesn't work either : ( ), I could only route on either the sendID or the recID…

        Unother advantage is that with dynamic ports I only have to use one receive port + locations for all the Partys and one dynamic send port … instead of having hundreds of receive and send ports …

      • #17621

        I am new to Biztalk and may be my question sounds naive, but I need the clarification on performance. Is there a imapct on performance for a map when the scripting functoids refers to external assemblies v/s inline C#/VB.NET? What are the best practices in industry? In what situation, which works best?

    • #17893

      I do not think you will have hundred instances of your orchestration. It will have your external assembly loaded just once and then the as BTS gets the new message, external assembly will be referenced to get your file read.

       If I were you, i will check how many instances are present in task manager when multiple messages comes. I think it will only take some extra time while loading the external assembly.

    • #17894

      I do not think you will have hundred instances of your orchestration. It will have your external assembly loaded just once and then the as BTS gets the new message, external assembly will be referenced to get your file read.

       If I were you, i will check how many instances are present in task manager when multiple messages comes. I think it will only take some extra time while loading the external assembly.

       

      Any Ideas!!!!!!!!!!!!!

      • #17903

        Q)..Is there a imapct on performance for a map when the scripting functoids refers to external assemblies v/s inline C#/VB.NET? What are the best practices in industry?

        A)..But obvious calling a .net External Class is expensive as compared to inline C#.

        Reason being it needs to load the assembly in the memory sace then excute the preasribed method.

         

         

      • #17904

        Q)..Is there a imapct on performance for a map when the scripting functoids refers to external assemblies v/s inline C#/VB.NET? What are the best practices in industry?

        A)..But obvious calling a .net External Class is expensive as compared to inline C#.

        Reason being it needs to load the assembly in the memory space and then execute the corresponding method.

         

         

Viewing 3 reply threads
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.