Planning the Development, Testing, Staging, and Production Environments

This topic discusses the environments used in the release management process for a BizTalk Server RFID solution. You should follow established software release management guidelines when you develop and release the solution. You can leverage the same environment that was used in prior stages (Pilot) of the project as long as the infrastructure for each stage is ready for extensive use before deploying to production.

This process should include the following distinct stages:

  • Development

  • Testing

  • Staging

  • Production

Ideally, you should complete each stage in the release management process in a discrete environment, separate from the other environments. Realistically, you may have to combine one or more of the environments due to hardware, time, or other resource constraints. At a bare minimum you should separate the production environment from the other environments.

The development environment should include:

  • Microsoft Visual Studio® 2005 or Visual Studio 2008

  • BizTalk Server RFID

    • RFID service

    • RFID tools: These will be used to deploy event handlers and verify results.

    • Documentation

    • Code samples

    Code samples are not installed. You can access the samples at BizTalk Server 2009 Code Samples (

  • SQL Server Client tools

We recommend that developers have their own development computer (physical or virtual) with the necessary software installed. For debugging issues, it is helpful if developers have access to an exclusive SQL Server instance, usually on the same computer.

If the deployment will use remote SQL Server, testing must validate that configuration.


  • SQL permissions: When using the out-of-the-box SqlServerSink event handler, the Deploy method will create the RFIDsink database, the SQL login database user, and provide the required user permission for the RfidWorkerProcessAccount on Windows Server and RfidServiceAccount on Windows XP.

    If the developer needs permission to look at the RFIDsink data, then the DBA needs to grant this permission explicitly.

  • RFID process exception-handling policy: By default, an RFID process recycles when an exception occurs because the ErrorPecentageThreshold value is set to 0. We recommend that you set ErrorPercentageThreshold to a value greater than 0 at development time only because it is common to run into two or more exceptions during this phase. Setting ErrorPercentageThreshold to a value greater than 0 causes the process not to restart for each exception and to log multiple exceptions in one process log file.

    Using this setting in production will mask issues.

This section discusses the various testing methodologies that should be completed before deploying the solution to production. This phase is critical and must be extensively completed to avoid possible issues later.

The testing environment should include:

  • Functional Testing. This testing phase must validate that each deployed component is unit tested. A combination of manual and automated testing should be used in this phase.

    • Components to test:

      • Each custom event handler used as part of the overall solution

      • Each application using the command-response model

    • Using Visual Studio for a unit-test framework

      The following link discusses how a unit-test framework can be developed by using Visual Studio 2008 Team System: Working with Unit Tests (

  • Integration Testing. Key aspects of integration testing must cover the usage of physical devices and test all the event handlers as part of the RFID process.

    • RFID process

      • Test all the event handlers as part of the pipeline

    • Physical device integration

      • Device provider and firmware version combination

      • Types of events raised from the provider

      • Applications handling device connections

  • Testing for Operations Setup

    • Troubleshooting: tracing and logging of components

      • Connection failure errors

      • Security privileges errors

      • Exception handling

    • New version deployed

      • New update of the product

      • New artifacts deployed

    • Monitoring: notification of alerts or issues that need immediate attention

      For more information, see Monitoring BizTalk Server RFID.

  • Performance Testing. The results of this testing phase are highly dependent on the physical hardware and topology. The topic is introduced here to create a performance testing plan and metrics, which can then be evaluated in the staging or production environment. The following list is intended to be an initial starting point:

    • Define the workload distribution

    • Input events rate: minimum, maximum, and peak

    • Identify the key performance metrics. For example:

      • Event processing time

      • Memory footprint

      • Database calls

    • Decide on the acceptable values for the metrics

The staging environment should be close to the topology used in the production environment. Some of the deployment aspects that require extensive testing are:

  • Multi-computer configuration for server

  • Distributed SQL Server

  • Security settings and resource privileges

Integration testing with external systems can be implemented in this environment.

The production environment is the "live" environment that will host the running BizTalk Server RFID solution. The production environment is the final endpoint in the release management process and should host only BizTalk Server RFID applications that have previously undergone development, unit testing, load testing, and staging in the other environments. Thorough unit testing, integration testing with physical devices, and staging beforehand will help to ensure fewer operational issues and achieve maximum performance in the production environment.

BizTalk Server 2009 RFID has been tested and validated on supported server operating system configurations in Microsoft Virtual Server 2005 and Hyper-V environments. Consider completing development, unit testing, and staging in a Microsoft Virtual Server environment.

For information about the support policy for running BizTalk Server in a virtualization environment, see Microsoft BizTalk Server supportability on a virtual machine (