Friday, August 2, 2013

QT014: A Quick Note on Upgrading to 6.3.0.0 When Using HTTP Receive

Quick Tip #014:  A Quick Note on Upgrading to 6.3.0.x When Using HTTP Receive

Several of our customers have experienced issues related to migrating existing orchestrations that begin with an HTTP Receive Activity to version 6.3.0.x.  (We've seen this issue in both 6.3.0.0 and 6.3.0.1, we have not tested 6.4.0.0 yet)  I believe that the issues mostly come up when you are trying to manually parse the URI and simple use cases that don't do anything with the URI seem to work just fine.  Our recommendation is that if you are using the HTTP Receive Activity as a starter for any of your orchestrations that you thoroughly regression test your orchestration.  Additionally, if you are manually parsing the URI we recommend rebuilding the Activity to use the built in parsing functionality.  See this post for more details on the new features of the HTTP Receive Activity.  There are two main problems that we have encountered so far:

  • The URI string is now passed to the orchestration URLEncoded.  If you were previously parsing this value with javascript or a flat file definition you may want to consider using the new built in functionality or using the new Http Header Functions available in the functions tab to parse out the path or extract a query parameter.
  • Certain URI strings cause the Activity to throw an exception and prevent the job from starting.  This is a bug that we discovered at a client today, if you have a query string in your URL with a parameter but no value, this will cause the HTTP Receive Activity to throw and exception.  If you encounter this issue, the work around is to make sure that you pass a value to all your query parameters. 
    • this throws an exception: http://www.example.com/MyTestOrchestration?value
    • this does not throw an exception: http://www.example.com/MyTestOrchestration?parameter=value
Both of these problems have easy work arounds, and certainly the new functionality for parsing path and query parameters are welcome enhancements.  However, as always when upgrading to a new version, be sure to thoroughly regression test your orchestrations.