Wordle

Wordle: BTS3

Sunday, April 13, 2008

Using Separate BTS Projects for Schemas and Maps

As we all know from BTS basics tutorials a developer should split the BTS solutions into at least these parts:

  • BTS project containing the Schemas.
  • BTS project containing the Maps, Orchestrations and other stuff.

This post is about changing this list.

In one of my projects we encounter a big performance issue in the testing environment (lucky me J ).

As we deep into it, we found the issue is about the large amount of maps involved in the project.

We found out that there is a memory leak from the BTS service running this application, consuming more and more memory up to a limit (which is much less than the server physical memory). When reaching this unexplained limit, the service stops serving any more requests.

After involving our support, we got some answers:

  • There is an issue with way the XSLT runtime engine handles the map inline scripts, causing this issue.
  • In order to avoid it, we recommended by the support to split the maps to a separate project other from the BTS stuff.

Keep in mind that doing it is a big mess when you already have the code running so keep it in your mind to the next project (or the current one if you must due to circumstances).

The Schemas project should include beside the schemas, the web reference, thus it's include more the schemas for the web reference.

By the way, splitting the projects parts in my case, solve the performance issue and reduce the memory consumption approximately by 60%.

Shimshon.

No comments: