none
Low latency BizTalk schema Service with couple of IO operation and a service call RRS feed

  • Question

  • Hi Everyone,

    I have the following requirements(at a high level) to stand up a 2way service. Receive a request and store the request details into oracle db, and check if the response exists for that request in the database , if yes fetch that xml and send it back to caller. If not, invoke a wcf service to fetch the response.And then store response received from the service into the database before forwarding it to caller.

    Please suggest how I can design the interface better using BT 2013 and I’m looking at very low latency as these are real time calls.

    Thanks for your help!

    Sunday, July 19, 2015 4:45 AM

Answers

  • There's nothing really complicated about this.  Just use an Orchestration to mediate process.

    As for performance, the design would be so simple, there's not much you can do app wise to address this, it's all environmental.

    In BizTalk, start with separate Hosts and Instances for Receive, Orchestration and Send, then test.  There are many moving parts here so don't focus too much on one.  You may find that Oracle or the external service are so much of a bottleneck that any optimization in your BizTalk app is relatively insignificant.

    In other words, keep the BizTalk app as simple as possible, and work to address the perf issues you find through testing.

    • Marked as answer by Angie Xu Monday, July 27, 2015 1:10 AM
    Monday, July 20, 2015 11:20 AM

All replies

  • There's nothing really complicated about this.  Just use an Orchestration to mediate process.

    As for performance, the design would be so simple, there's not much you can do app wise to address this, it's all environmental.

    In BizTalk, start with separate Hosts and Instances for Receive, Orchestration and Send, then test.  There are many moving parts here so don't focus too much on one.  You may find that Oracle or the external service are so much of a bottleneck that any optimization in your BizTalk app is relatively insignificant.

    In other words, keep the BizTalk app as simple as possible, and work to address the perf issues you find through testing.

    • Marked as answer by Angie Xu Monday, July 27, 2015 1:10 AM
    Monday, July 20, 2015 11:20 AM
  • Thank you for your response, that’s what we have done so far and its taking an average of 2secs for the first two hops only ( Insert request and check if the response exists in DB (later one has little complex logic which involves select on xml table column)).

    We do have the separate receive, processing and send host/host instances created, all these have default settings. Does it make sense to decrease the polling interval on processing/send hosts from 500msà100ms or less, please suggest what else we can do at BizTalk level?

    Tuesday, July 21, 2015 1:34 AM
  • Hi,

    Its totally up to design your orchestration workflow where your are creating message for insert and same message is being required for fetching data from the database .

    You can have insert statement within an Orchestration and once insert is gone well ,you can fetch data depending on your requested input .

    The process is simple ,you need to analyse the solution which suits your requirement and then you can define your work flow accordingly .

    Thanks

    Abhishek

    Tuesday, July 21, 2015 4:16 AM
  • In you case, there's likely nothing wrong with changing the polling interval to ~100-200ms.

    As you go through this, keep in mind the BizTalk processing is likely a small part of the overall resource usage.

    Any BizTalk tweaks much be considered only in the larger context.

    Exactly how long are the Oracle and Web Service Operations taking?  Without measuring and knowing those, any BizTalk optimizations are just guessing.

    Tuesday, July 21, 2015 11:40 AM
  • As per the DBAs oracle operations are in milliseconds, we are performing this operations using Physical send ports with oralcedb binding may be this is causing some issue as there are multiple round trips to msgbox db.

    Tuesday, July 21, 2015 2:11 PM
  • Sure, the local db operation should take only a few ms but you have to consider the entire client (BizTalk in this case) operation including network and authentication.
    Tuesday, July 21, 2015 4:48 PM