Olá a todos,
No último final de semana, fizemos a migração do sistema RM da versao 7.20 para 10.25. O banco utilizado é um SQL Server 2000 + SP4 + fix até versao 2187. O servidor é um DELL com 4 processadores e 2 nucleo e 16Gb de RAM.
O sitema começou a apresentar o seguinte problema.
No RM Nucleus, a partir de uma estação executamos o faturamento um movimento de entrada para um outro ( após apresentar a tela do movimento destino e alterarmos alguns dados, clicamos no ok ), o sistema simplesmente fica parada.
Analisando pelo Query Analyzer com o comando SP_WHO2 ACTIVE, temos a seguinte situacao:
- Essa estação ganha no SQL Server um ClienteProcessID.
- Durante a execução, a aplicação gera pelo menos 2 SPID.
- Em um SPID, ela faz a inclusão em uma tabela TMOVFISCAL gerando uma PK de código 10 por exemplo.
- Um outro SPID, logo após a inclusão acima, faz um select nessa tabela usando como filtro o código 10.
Nesse momento ocorreu um bloqueio entre os SPID, mas para o mesmo ClientProcessID.
Pelo que percebi, a aplicação abriu duas conexões com o banco, sendo que em uma ela faz uma inclusão e em outra fez o select. Mas para o SQL, mesmo sendo o mesmo ClientProcessId, ela está tratando como sendo um procedimento de lock.
Esse comportamento não ocorreu na versão antiga.
Alguem já passou por esse problema?
Grato,
Wolney
DBA Imprensa Oficial do Estado.