public static void ShardMapManagerLoadTestsCleanup()
        {
            // Clear all connection pools.
            SqlConnection.ClearAllPools();

            // Detect inconsistencies for all shard locations in a shard map.
            ShardMapManager smm = ShardMapManagerFactory.GetSqlShardMapManager(
                Globals.ShardMapManagerConnectionString,
                ShardMapManagerLoadPolicy.Lazy);

            RecoveryManager rm = new RecoveryManager(smm);

            bool inconsistencyDetected = false;

            foreach (ShardLocation sl in smm.GetDistinctShardLocations())
            {
                IEnumerable <RecoveryToken> gs = rm.DetectMappingDifferences(sl);

                foreach (RecoveryToken g in gs)
                {
                    var kvps = rm.GetMappingDifferences(g);
                    if (kvps.Keys.Count > 0)
                    {
                        inconsistencyDetected = true;
                        Debug.WriteLine("LSM at location {0} is not consistent with GSM", sl);
                    }
                }
            }

            bool deadlocksDetected = false;

            // Check for deadlocks during the run and cleanup database and deadlock objects on successful run
            using (SqlConnection conn = new SqlConnection(Globals.ShardMapManagerTestConnectionString))
            {
                conn.Open();

                // check for any deadlocks occured during the run and cleanup deadlock monitoring objects
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = s_deadlockDetectionQuery;
                    cmd.CommandType = System.Data.CommandType.Text;

                    try
                    {
                        using (SqlDataReader reader = cmd.ExecuteReader())
                        {
                            if (reader.HasRows)
                            {
                                // some deadlocks occured during the test, collect xml plan for these deadlocks
                                deadlocksDetected = true;

                                while (reader.Read())
                                {
                                    Debug.WriteLine("Deadlock information");
                                    Debug.WriteLine(reader.GetSqlXml(0).Value);
                                }
                            }
                        }
                    }
                    catch (SqlException)
                    {
                    }
                }

                // cleanup only if there are no inconsistencies and deadlocks during the run.
                if (!deadlocksDetected && !inconsistencyDetected)
                {
                    foreach (string q in s_deadlockDetectionCleanupQueries)
                    {
                        using (SqlCommand cmd = new SqlCommand(q, conn))
                        {
                            try
                            {
                                cmd.ExecuteNonQuery();
                            }
                            catch (SqlException)
                            {
                            }
                        }
                    }

                    // Drop shard databases
                    for (int i = 0; i < ShardMapManagerLoadTests.s_shardedDBs.Length; i++)
                    {
                        using (SqlCommand cmd = new SqlCommand(
                                   string.Format(Globals.DropDatabaseQuery, ShardMapManagerLoadTests.s_shardedDBs[i]),
                                   conn))
                        {
                            cmd.ExecuteNonQuery();
                        }
                    }

                    // Drop shard map manager database
                    using (SqlCommand cmd = new SqlCommand(
                               string.Format(Globals.DropDatabaseQuery, Globals.ShardMapManagerDatabaseName),
                               conn))
                    {
                        cmd.ExecuteNonQuery();
                    }
                }
            }
        }