Looking for a type of convoy pattern

Home Page Forums BizTalk 2004 – BizTalk 2010 Looking for a type of convoy pattern

Viewing 1 reply thread
  • Author
    Posts
    • #12611

      Hey Guru’s !

      I’ve used a sequential convoy to limit the # of concurrent orchestrations succesfully. (to avoid rujnning out of threads) Now I’m looking for a similiar pattern that could handle multiple destination orchestrations.

      Currently I’m using the sqladpater with an envelope splitter pipeline feeding into a seq convoy pattern.

      I’ve got some related services and I’m looking for a was to not have to create a seq convoy for each orchestration. (again to avoid thread pool limitations).

      All the orchestrations can accept and return the same message type.

      If there were a way I could have dynamic control over the orchestration name on the start shape for example, that would do the trick.

      Any ideas ?

      I would be happy if I find a way to either limit the total # of orch running (regardless of what each one does, or if I can limit each type individually)

      Tim

    • #12612

      thats interesting, but I assume I can’t have a variable of type orchestration ? I could use if logic to start different orchestrations, but then I have to modify the convoy each time a new servie is added. Perhaps thats what I will have to do.

      The other idea I’m exploring (unsuccesful so far) is instead of starting an orch I direct bind with port filtering. This works but I’m haven’t found a workable way to get the \”ack\” message back to the convoy.

      Its requiring me to use correlation, and since the convoy has to send shapes (originally the 2 start shapes) they can’t both initialize the correlation.

      just as a test I init the correlation with the inital send shape using message type as the corrlated property and have both recieves follow. however no matter how I bind the receive port (direct-message box or direct w/parter orch set to the convoy orch) I get the dreaded no subscriber found when attempting to send the ack message back to the convoy.

      any ideas ?

      Tim

      • #12613

        Thanks,

        I’ll take a look at the dynamic mapping example.

        Tim

        • #12614

          Stephen,

          I looked at the dynamic map example and tried to apply this to a dynamic exec. This is what I have. The expression editor doesn’t like the exec.
          tOrchType is defined as System.Type as in your mapping example.

          Any ideas ?

          tOrchType = System.Type.GetType(\”testdynamicexec.BizTalk_Orchestration2 , testdynamicexec, Version=1.0.0.0, Culture=neutral, PublicKeyToken=22ac5e671a17a7fb\”);
          exec tOrchType (Port_2, Message_1);
          // note the below is whats in the odx file for a start shape
          //exec testdynamicexec.BizTalk_Orchestration2 (Port_2, Message_1);

          the error indicated on the exec part is Torchtype: can only call or exec a service
          the error indicated on tOrchType is ‘TorchType’ is not a function

          • #12615

            I appreciate the effort and really like the site. lots of good info here !

            While its true true that I can write the same code as gets put in the odx file its not dynamic until I can make the orchestration name a variable 🙂

            I’ll check back here occasionaly to see if anyone figues this one out

            Tim

            • #12616

              Hi Tim,
              I was wondering if you ever worked out how to do a dynamic orchestration call? I Realise that you can submit the msg to the MsgBox with a specific promoted property and have a particular orchestration subscribe to a specific value of the promoted property. However I was after something similar to the dynamic transform calls, which seems to be what you were after originally. How did you go?

              Guy

              • #12617

                I sure wish they had a better way to limit running Orchestrations. Things get a little better in 2006 with per host watermark configurations.

                I think you can dynamically start an Orchestration.

                You can dynamically call one using something like:
                call NS.BizTalk_Orchestration2 (Variable_1);
                inside an expression shape.

                You might want to check out masteringbiztalk.com. Jon might have a sample on this.

                • #12618

                  I would guess you would use a plain Type Object, just like if you were doing dynamic mapping (see my sample on the site).

                  I spent several days trying to get an Ack back as well doing something similar – with no luck.

                  Have you tried passing ports between your Started Orchestration? Maybe that would work better to get a message back. Charles Young covers it well here: http://geekswithblogs.net/cyoung/articles/19546.aspx

                  Might give you some other ideas but you have probably already looked at it

                  • #12619

                    I have not tried it so I don’t know why would get that error.

                    What I have it what I would expect it to look like. Maybe it doesn’t work on the Start Shape? I would think it should though.

                    Jon Flanders posted this to a reply to someone on my blog:
                    “You already can dynamically call and orchestration. If you put the correct XLANGs into a expression shape (the same that would be generated from a Call Orchestration shape) – you can dynamically call different orchestrations”

                    Sorry I can not be of more help on this one.

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