Introdução
Ao desenvolver software multicamada, bugs são inevitáveis. Esses bugs podem ocorrer em qualquer camada – dados, lógica ou apresentação. Para corrigir esses bugs de forma eficaz, é crucial ter visibilidade dos parâmetros exatos e valores que estão sendo passados entre as camadas. O sistema de Eventos Estendidos do SQL Server fornece ferramentas poderosas que podem ajudar a identificar e resolver esses bugs.
A Aplicação de Demonstração
Neste artigo, trabalharemos com um aplicativo desktop VB.net que lida com gerenciamento de receitas. O aplicativo utiliza um banco de dados SQL Server 2014 Enterprise hospedado localmente. Vamos nos concentrar em um bug no módulo de edição de receitas e usar os Eventos Estendidos do SQL Server para investigar e corrigir o problema.
O Bug
Ao editar uma receita no módulo de edição de receitas, percebemos que o texto da receita está sendo convertido para maiúsculas ao ser salvo. Esse comportamento não é intencional e precisa ser corrigido.
Investigando o Bug
Começamos revertendo manualmente a receita usando uma instrução SQL Server. Em seguida, executamos o procedimento armazenado UPDATE_RECIPE com as alterações desejadas. Ao inspecionar a receita na ferramenta de edição de receitas, percebemos que o bug não está ocorrendo na camada de dados do SQL Server.
A Ferramenta de Eventos Estendidos
Os Eventos Estendidos do SQL Server são um sistema leve de monitoramento de desempenho que permite aos usuários coletar os dados necessários para monitorar e solucionar problemas no SQL Server. Ele oferece uma alternativa mais avançada à ferramenta SQL Server Profiler, que está sendo descontinuada pela Microsoft.
Construindo uma Sessão de Eventos Estendidos
Para utilizar os Eventos Estendidos do SQL Server, criamos uma nova sessão de Eventos Estendidos. Isso envolve navegar até a seção de Sessões no SQL Server Management Studio e configurar a sessão com os eventos desejados. Nos concentramos no evento “rpc_completed”, que ocorre quando uma chamada de procedimento remoto é concluída. Configuramos um predicado de filtro para capturar apenas as chamadas de procedimento armazenado “UPDATE_RECIPE”.
Depurando o Bug
Com a sessão de Eventos Estendidos configurada, prosseguimos para editar a receita e observar o fluxo de dados. Percebemos que o valor do argumento @recipe_text está sendo convertido para maiúsculas antes de chegar à chamada do procedimento armazenado. Ao inspecionar o código, identificamos um possível problema com a função VB.net UCase, que converte valores de texto para maiúsculas. Ao remover essa função, corrigimos com sucesso o bug.
Conclusão
Os Eventos Estendidos do SQL Server fornecem aos profissionais do SQL Server uma ferramenta poderosa para entender e depurar software multicamada. Ao utilizar essa ferramenta, os desenvolvedores podem obter insights valiosos sobre a engenharia do produto e do sistema do software que constroem, permitindo que eles identifiquem e resolvam bugs de forma eficaz.