Erro DeadLock - SEI
-
29 de Janeiro de 2018 às 15:30Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
29 de Janeiro de 2018 às 15:52Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEICaros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32Para: Douglas Fiório Dias> Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 11:05Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias; Sei tecnico ; Matheus Alves da Silva
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEIPrezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 12:11Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEIPrezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicaçãocristiano.muller@procempa.com.br51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva > Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 13:36Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidadeDe: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller; Douglas Fiório Dias ; Sei tecnico ; Matheus Alves da Silva Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 13:41Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]Enviada em: terça-feira, 30 de janeiro de 2018 11:36Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva > Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
Geraldo Afonso da Cruz30 de Janeiro de 2018 às 13:44Bom dia,No MEC, utilizamos SQL Server (2 anos) e não detectamos, até o momento, o erro de DEADLOCK.
É possível ter relação com a atualização da versão para V3.0.6 ?
Att,
[geraldoCruz]De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa MouraEnviada em: terça-feira, 30 de janeiro de 2018 11:42Para: Cristiano José Müller; Douglas Fiório Dias ; Sei tecnico ; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:36
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 15:09Boa tarde Geraldo,
No nosso caso, isso já acontecia com a versão 2.6 do SEI (com menor frequência que com a 3.x).Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidadeDe: Geraldo Afonso da Cruz [mailto:GeraldoCruz@mec.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:45
Para: 'Rommel Costa Moura'; Cristiano José Müller ; Douglas Fiório Dias ; Sei tecnico ; Matheus Alves da Silva
Assunto: {Spam?} RES: Erro DeadLock - SEIBom dia,
No MEC, utilizamos SQL Server (2 anos) e não detectamos, até o momento, o erro de DEADLOCK.
É possível ter relação com a atualização da versão para V3.0.6 ?
Att,[cid:image001.png@01D399CB.9F71C300]De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: terça-feira, 30 de janeiro de 2018 11:42
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:36
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
30 de Janeiro de 2018 às 15:24Geraldo,Poderia enviar a arquitetura, memória, espaço em disco, particionamentos (divisão de dados, índices) e possíveis configurações no banco?
Percebi que os que relataram não ter problema, estão com uma estrutura muito robusta.
Abs!De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]Enviada em: terça-feira, 30 de janeiro de 2018 13:10
Para: Geraldo Afonso da Cruz; Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da SilvaAssunto: RES: Erro DeadLock - SEI
Boa tarde Geraldo,
No nosso caso, isso já acontecia com a versão 2.6 do SEI (com menor frequência que com a 3.x).
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Geraldo Afonso da Cruz [mailto:GeraldoCruz@mec.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:45Para: 'Rommel Costa Moura'>; Cristiano José Müller >; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva > Assunto: {Spam?} RES: Erro DeadLock - SEI
Bom dia,
No MEC, utilizamos SQL Server (2 anos) e não detectamos, até o momento, o erro de DEADLOCK.
É possível ter relação com a atualização da versão para V3.0.6 ?
Att,
[geraldoCruz]
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: terça-feira, 30 de janeiro de 2018 11:42
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:36
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
Geraldo Afonso da Cruz2 de Fevereiro de 2018 às 12:29Bom dia Rommel,Seguem as informações do SQL Server, da nossa instalação:
Versão SQL SERVER
Versão S.O
Database
Particionamentos
CPU
Memória GB
TAM BD MB
Disco MB
Disco TB
Livre MB
Livre TB
Microsoft SQL SERVER 2012 – Enterprise Edition
Windows Server 2008 R2 Enterprise
DBSEI
Não Há40512
101458
3180013
3,0327
2181841
2,08077Att,
[geraldoCruz]
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]Enviada em: terça-feira, 30 de janeiro de 2018 13:25
Para: Cristiano José Müller; Geraldo Afonso da Cruz ; Douglas Fiório Dias ; Sei tecnico ; Matheus Alves da Silva Assunto: RES: Erro DeadLock - SEI
Geraldo,
Poderia enviar a arquitetura, memória, espaço em disco, particionamentos (divisão de dados, índices) e possíveis configurações no banco?
Percebi que os que relataram não ter problema, estão com uma estrutura muito robusta.
Abs!
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 13:10
Para: Geraldo Afonso da Cruz; Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Boa tarde Geraldo,
No nosso caso, isso já acontecia com a versão 2.6 do SEI (com menor frequência que com a 3.x).
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Geraldo Afonso da Cruz [mailto:GeraldoCruz@mec.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:45
Para: 'Rommel Costa Moura'>; Cristiano José Müller >; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} RES: Erro DeadLock - SEI
Bom dia,
No MEC, utilizamos SQL Server (2 anos) e não detectamos, até o momento, o erro de DEADLOCK.
É possível ter relação com a atualização da versão para V3.0.6 ?
Att,
[geraldoCruz]
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: terça-feira, 30 de janeiro de 2018 11:42
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:36
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034 -
2 de Fevereiro de 2018 às 12:38Bom dia Geraldo e obrigado pelas informações.De: Geraldo Afonso da Cruz [mailto:GeraldoCruz@mec.gov.br]Enviada em: sexta-feira, 2 de fevereiro de 2018 10:29
Para: Rommel Costa Moura; Cristiano José Müller; Douglas Fiório Dias; Sei tecnico; Matheus Alves da SilvaAssunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Seguem as informações do SQL Server, da nossa instalação:
Versão SQL SERVER
Versão S.O
Database
Particionamentos
CPU
Memória GB
TAM BD MB
Disco MB
Disco TB
Livre MB
Livre TB
Microsoft SQL SERVER 2012 – Enterprise Edition
Windows Server 2008 R2 Enterprise
DBSEI
Não Há
40
512
101458
3180013
3,0327
2181841
2,08077
Att,
[geraldoCruz]
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 13:25Para: Cristiano José Müller>; Geraldo Afonso da Cruz >; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva > Assunto: RES: Erro DeadLock - SEI
Geraldo,
Poderia enviar a arquitetura, memória, espaço em disco, particionamentos (divisão de dados, índices) e possíveis configurações no banco?
Percebi que os que relataram não ter problema, estão com uma estrutura muito robusta.
Abs!
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 13:10
Para: Geraldo Afonso da Cruz; Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Boa tarde Geraldo,
No nosso caso, isso já acontecia com a versão 2.6 do SEI (com menor frequência que com a 3.x).
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Geraldo Afonso da Cruz [mailto:GeraldoCruz@mec.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:45
Para: 'Rommel Costa Moura'>; Cristiano José Müller >; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} RES: Erro DeadLock - SEI
Bom dia,
No MEC, utilizamos SQL Server (2 anos) e não detectamos, até o momento, o erro de DEADLOCK.
É possível ter relação com a atualização da versão para V3.0.6 ?
Att,
[geraldoCruz]
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: terça-feira, 30 de janeiro de 2018 11:42
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Realmente Cristiano, Oracle pra pouco$. ☺
Bem, vamos tentar resolver com o SQL server chamando o pessoal da Microsoft. Quando estiver com um relatório conclusivo das equipes postarei aqui para todos.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 11:36
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Bom dia Rommel,
Tenho dúvidas se seria o MySQL. Já vi relatos na lista desse problema de deadlock com MySQL também.
Ainda acho que o melhor banco de dados é Oracle, mas o custo é alto ☺
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: Rommel Costa Moura [mailto:rommel.moura@anac.gov.br]
Enviada em: terça-feira, 30 de janeiro de 2018 10:06
Para: Cristiano José Müller>; Douglas Fiório Dias >; Sei tecnico >; Matheus Alves da Silva >
Assunto: RES: Erro DeadLock - SEI
Obrigado Cristiano. Então o caminho mais suave seria o MySQL. A título de informação e ajuda, na CGU o SEI está rodando com SQL server sem erros, recebi informações do Rafael, Guilherme e Breno que está tudo ok.
De: Cristiano José Müller [mailto:cristiano.muller@procempa.com.br]
Enviada em: terça-feira, 30 de janeiro de 2018 09:05
Para: Rommel Costa Moura; Douglas Fiório Dias; Sei tecnico; Matheus Alves da Silva
Assunto: RES: Erro DeadLock - SEI
Prezado Rommel,
Também estamos passando por esses problemas. A criação de índices melhorou mas não resolveu.
Pesquisamos uma forma de melhorar isso e chegamos a conversar com o pessoal do TRF4 propondo a seguinte alternativa. Vou copiar parte do texto dessa discussão abaixo: (em itálico)
A próxima tentativa seria trocar o nível de isolamento da base, mas, no momento, não temos “braços” para fazer testes robustos e garantir que não gere efeitos colaterais. O pessoal técnico do SEI sugere trabalhar para refinar os índices em vez de fazer a troca do nível de isolamento.
ALTER DATABASE SEI SET ALLOW_SNAPSHOT_ISOLATION ON;
ALTER DATABASE SEI SET READ_COMMITTED_SNAPSHOT ON;
Se algum órgão que usa Oracle não reportar nenhum erro de deadlock é um bom sinal, pois por padrão o Oracle usa um nível de isolamento que, grosseiramente comparando, seria equivalente ao READ_COMMITTED_SNAPSHOT do SQLServer.
Não evoluímos nisso depois do feedback do pessoal do SEI e também não recebemos nenhuma resposta de outro órgão que está usando Oracle para saber se eles tem os mesmos problemas.
Espero que ajude em algo.
Abraços.
Cristiano José Müller
Analista da Informação e Comunicação
cristiano.muller@procempa.com.br
51 3289 6000 / 51 3289 6354
procempa.com.br
tecnologia a serviço da cidade
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Rommel Costa Moura
Enviada em: segunda-feira, 29 de janeiro de 2018 13:53
Para: Douglas Fiório Dias>; Sei tecnico >; Matheus Alves da Silva >
Assunto: {Spam?} [sei-tecnico] RES: Erro DeadLock - SEI
Prezados,
Na ANAC estamos com o SQL server, passando pelo mesmo problema. Melhorou e muito com a dica do Douglas, mas os erros ainda permanecem. Está impactando nos módulos.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#6 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#7 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#8 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#9 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#10 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#11 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#12 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#13 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#14 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#16 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#18 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#19 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#20 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#21 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#22 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (2199423) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 75) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
#14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
#15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
#17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
#18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
#19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
#20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
#21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
#22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
#23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
#24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
#25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
#26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
#27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
#28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
#29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
#30 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/ProcedimentoRN.php(69): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/ProcedimentoRN.php(69): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/rn/SeiRN.php(187): ProcedimentoRN->gerarRN0156(Object(ProcedimentoDTO))
14 [internal function]: SeiRN->gerarProcedimentoInternoControlado(Object(EntradaGerarProcedimentoAPI))
15 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
16 /opt/sei/web/rn/SeiRN.php(64): InfraRN->__call('gerarProcedimen...', Array)
17 /opt/sei/web/rn/SeiRN.php(64): SeiRN->gerarProcedimentoInterno(Object(EntradaGerarProcedimentoAPI))
18 [internal function]: SeiRN->gerarProcedimentoConectado(Object(EntradaGerarProcedimentoAPI))
19 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(EntradaGerarProcedimentoAPI))
20 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): InfraRN->__call('gerarProcedimen...', Array)
21 /opt/sei/web/modulos/peticionamento/rn/MdPetProcessoRN.php(196): SeiRN->gerarProcedimento(Object(EntradaGerarProcedimentoAPI))
22 [internal function]: MdPetProcessoRN->gerarProcedimentoControlado(Array)
23 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Array)
24 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): InfraRN->__call('gerarProcedimen...', Array)
25 /opt/sei/web/modulos/peticionamento/md_pet_usu_ext_concluir.php(84): MdPetProcessoRN->gerarProcedimento(Array)
26 /opt/sei/web/modulos/peticionamento/PeticionamentoIntegracao.php(306): require_once('/opt/sei/web/mo...')
27 [internal function]: PeticionamentoIntegracao->processarControladorExterno('peticionamento_...')
28 /opt/sei/web/SeiIntegracao.php(63): call_user_func_array(Array, Array)
29 /opt/sei/web/controlador_externo.php(74): SeiIntegracao->executar('processarContro...', 'peticionamento_...')
30 {main}
Erro listando registros de acesso.
Trilha de Processamento:
#0 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#1 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#2 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#3 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#4 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#5 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#6 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#7 {main}
Detalhes:
SELECT DISTINCT CAST(id_protocolo as varchar) AS idprotocolo,id_unidade AS idunidade FROM acesso WHERE id_protocolo IN (935309,935309,935309,935309,935309,935309,935309,1191175,1191175,1191175,1191175,1191175,1191175,1191175,1268000,1268000,1268000,1268000,1268000,1268000,1268000,1343765,1343765,1346303,1346303,1348625,1348625,935309,1191175,1346303,1346303,1346303,1346303,1346303,1346303,935309,1346303,935309,1191175,1191175,1411304,1411304,1413109,1413109,1191175,1191175,1191175,1268000,1268000,1191175,1268000,1653241,1653241,1653241,1653241,1653241,1653241,1704479,1704479,1704479,1712681,1712681,1712681,1730194,1730194,1732025,1732025,1732025,1732025,1763204,1763234,1704479,1763234,1763204,1704479,1704479,1704479,1704479,1712681,1712681,1712681,1712681,1712681,1712681,1704479,1704479,1704479,1782895,1782895,1797794,1797794,1801828,1801828,1802744,1712681,1802744,1712681,1712681,1712681,1653241,1653241,1653241,1797794,1797794,1797794,1797794,1797794,1802744,1802744,1802744,1801828,1801828,1801828,1879483,1879483,1879732,1879732,1653241,1881669,1881669,1763204,1763204,1763204,1763204,1763234,1763204,1763204,1763234,1763234,1763234,1763234,1763234,1763234,1653241,1797794,1797794,1797794,1879483,1879483,1879483,1879483,1797794,1879483,1879483,1915071,1915071,1881669,1881669,1881669,1879483,1915071,1915071,1881669,1881669,1763204,1802744,1763204) AND sta_tipo IN ('R','C')
Descrição Original:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 73) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
#3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
#4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
#5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
#6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
#7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
#8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
#9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
#11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
#12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
#13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
#14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
#15 {main}
Trilha de Processamento Original:
0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id 3)
2 /opt/infra/infra_php/InfraBD.php(441): InfraSqlServer->consultarSql('SELECT DISTINCT...')
3 /opt/sei/web/rn/AcessoRN.php(294): InfraBD->listar(Object(AcessoDTO))
4 [internal function]: AcessoRN->listarConectado(Object(AcessoDTO))
5 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AcessoDTO))
6 /opt/sei/web/rn/IndexacaoRN.php(82): InfraRN->__call('listar', Array)
7 /opt/sei/web/rn/IndexacaoRN.php(82): AcessoRN->listar(Object(AcessoDTO))
8 /opt/sei/web/rn/IndexacaoRN.php(296): IndexacaoRN->montarUnidadesAcesso(Array)
9 [internal function]: IndexacaoRN->indexarProtocoloConectado(Object(IndexacaoDTO))
10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(IndexacaoDTO))
11 /opt/sei/web/rn/AtividadeRN.php(47): InfraRN->__call('indexarProtocol...', Array)
12 /opt/sei/web/rn/AtividadeRN.php(47): IndexacaoRN->indexarProtocolo(Object(IndexacaoDTO))
13 /opt/sei/web/procedimento_enviar.php(131): AtividadeRN->enviarRN0023(Object(EnviarProcessoDTO))
14 /opt/sei/web/controlador.php(212): require_once('/opt/sei/web/pr...')
15 {main}
Erro: Erro listando registros de atividade.
Detalhes:
SELECT atividade.id_atividade AS idatividade,atividade.id_tarefa AS idtarefa,atividade.id_usuario_atribuicao AS idusuarioatribuicao,atividade.id_usuario_visualizacao AS idusuariovisualizacao,atividade.tipo_visualizacao AS tipovisualizacao,atividade.id_unidade AS idunidade,atividade.dth_conclusao AS conclusao,CAST(atividade.id_protocolo as varchar) AS idprotocolo,u.sigla AS siglaunidade,atividade.sin_inicial AS sininicial,uat.sigla AS siglausuarioatribuicao,uat.nome AS nomeusuarioatribuicao FROM atividade INNER JOIN unidade u ON atividade.id_unidade=u.id_unidade LEFT JOIN usuario uat ON atividade.id_usuario_atribuicao=uat.id_usuario INNER JOIN protocolo ON atividade.id_protocolo=protocolo.id_protocolo AND protocolo.sta_protocolo='P' AND protocolo.sta_estado IN ('0','4') AND (protocolo.sta_nivel_acesso_global<>'2' OR atividade.id_usuario=100003950) WHERE atividade.id_unidade=110000055 AND atividade.dth_conclusao IS NULL AND atividade.sin_inicial='N' ORDER BY atividade.id_atividade DESC
Trilha de Processamento:
exception 'Exception' with message ''Warning: /opt/infra/infra_php/InfraSqlServer.php linha:404.
mssql_query(): message: Transaction (Process ID 64) was deadlocked on lock | communication buffer resources with another process and has been chosen as the deadlock victim. Rerun the transaction. (severity 13)
'' in /opt/infra/infra_php/Infra.php:187
Stack trace:
#0 [internal function]: infraGerarExcecao(2, 'mssql_query(): ...', '/opt/infra/infr...', 404, Array)
#1 /opt/infra/infra_php/InfraSqlServer.php(404): mssql_query('SET TEXTSIZE 21...', Resource id #3)
#2 /opt/infra/infra_php/InfraSqlServer.php(541): InfraSqlServer->consultarSql(' SELECT * FROM ...')
#3 /opt/infra/infra_php/InfraBD.php(447): InfraSqlServer->paginarSql('SELECT atividad...', 0, '500')
#4 /opt/sei/web/rn/AtividadeRN.php(634): InfraBD->listar(Object(AtividadeDTO))
#5 [internal function]: AtividadeRN->listarRN0036Conectado(Object(AtividadeDTO))
#6 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(AtividadeDTO))
#7 /opt/sei/web/rn/AtividadeRN.php(1461): InfraRN->__call('listarRN0036', Array)
#8 /opt/sei/web/rn/AtividadeRN.php(1461): AtividadeRN->listarRN0036(Object(AtividadeDTO))
#9 [internal function]: AtividadeRN->listarPendenciasRN0754Conectado(Object(PesquisaPendenciaDTO))
#10 /opt/infra/infra_php/InfraRN.php(140): call_user_func(Array, Object(PesquisaPendenciaDTO))
#11 /opt/sei/web/procedimento_controlar.php(224): InfraRN->__call('listarPendencia...', Array)
#12 /opt/sei/web/procedimento_controlar.php(224): AtividadeRN->listarPendenciasRN0754(Object(PesquisaPendenciaDTO))
#13 /opt/sei/web/controlador.php(37): require_once('/opt/sei/web/pr...')
#14 {main}
Navegador: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
GET:
Array
(
[acao] => procedimento_controlar
[acao_origem] => procedimento_controlar
[infra_sistema] => 100000100
[infra_unidade_atual] => 110000055
[infra_hash] => 67b3e04faf06b8523d366007e354b8982ab3d3b369ad2c705f7c0aa629bbc838
)
POST:
Array
(
[hdnRecebidosNroItens] => 1
[hdnRecebidosItemId] =>
[hdnRecebidosItens] => 1698234
[hdnRecebidosItensHash] => 75d1bfbdf95e388da7497e697c615581c0215b4ac967c02149f90da571662328
[hdnRecebidosItensSelecionados] =>
[hdnGeradosNroItens] => 0
[hdnGeradosItemId] =>
[hdnGeradosItens] =>
[hdnGeradosItensHash] =>
[hdnGeradosItensSelecionados] =>
[hdnInfraSelecoes] => Recebidos,Gerados
[hdnRecebidosPaginaAtual] => 0
[hdnRecebidosHashCriterios] => d7de2b237a91106f4d2259200f938dd3
[hdnGeradosPaginaAtual] => 0
[hdnGeradosHashCriterios] => 1e772997b2c8fc17646b364669e2a5f2
[hdnMeusProcessos] => T
[hdnTipoVisualizacao] => R
[hdnIdBloco] =>
[txtBloco] =>
[hdnIdMarcador110000055] =>
)
De: sei-tecnico [mailto:sei-tecnico-bounces@listas.softwarepublico.gov.br] Em nome de Douglas Fiório Dias
Enviada em: segunda-feira, 29 de janeiro de 2018 13:29
Para: Sei tecnico; Matheus Alves da Silva
Assunto: [sei-tecnico] RES: Erro DeadLock - SEI
Caros,
Respondendo ao email abaixo do Matheus e copiando o grupo (pois vi que outros órgãos também estão tendo o mesmo problema):
O problema de deadlock no banco do SEI reduziu drasticamente quando criamos os índices no banco. Com o aumento da base, consultas que antes rodavam bem começam a demorar muito e ele fica dando erro de deadlock.
Vá na tabela infra_log, filtre os erros de deadlock. Veja os erros que mais ocorrem (quais consultas estão aparecendo mais).
Pegue as consultas, rode no seu sql server e veja o execution plan delas. Lá haverá a sugestão de índices. Crie esses índices.
Isso já deve melhorar muito a performance.
Atenciosamente,
Douglas Fiório Dias
SUSEP/DIRAD/CGETI/COINF
email: douglas.dias@susep.gov.br
Tel.: (21) 3233-4091
De: Matheus Alves da Silva [mailto:matheussilva@seae.ro.gov.br]
Enviada em: sexta-feira, 26 de janeiro de 2018 16:32
Para: Douglas Fiório Dias>
Assunto: Erro DeadLock - SEI
Olá, Sr Douglas Dias,
Bom dia,
Meu nome é Matheus, faço parte da equipe de implantação do SEI no Governo do Estado de Rondônia.
Fizemos uma análise no log de erros do SEI e verificamos que boa parte dos erros são "Erro listando registros de ...", ao realizar uma pesquisa encontramos no fórum do Software Público um tópico sobre o assunto (clique aqui).
No tópico mencionado acima, você relatou que para resolver este problema teve que criar índices no banco de dados. Poderia nos ajudar a realizar o mesmo procedimento?
Nossos Dados
SEI - v3.0.7
MSSQL Server
Atenciosamente,
Matheus Alves da Silva
Assessoria de Projetos Especiais
Superintendência de Estado para Resultados
GOVERNO DO ESTADO DE RONDÔNIA
Av. Farquar, 2986 - Complexo Rio Madeira - Edifício Anexo Rio Cautário - 6º Andar
(69) 3212-9513 | (69) 9 9302-2034
Ordenar por:
Relacionado:
- sei-tecnico Web Service: Erro cadastrando registro em inf...
- sei-tecnico Falha na chamada do WebService ao acessar a fu...
- sei-tecnico Erro ao enviar e-mail
- sei-tecnico Erro ao iniciar processo no SEI
- sei-tecnico Erro: Erro obtendo Web Service do sistema SEI.
- sei-tecnico Erros na atualização para o SEI 3.0 - Ajuda
- sei-negocio Erro unidades listadas
- sei-tecnico Problemas com WSDL SEI 3.0
- sei-tecnico Erro de autenticação ao assinar
- sei-tecnico DEAD LOCK
Estatísticas:
-
iniciada em
6 anos, 8 meses atrás
-
vizualizada
1400 vezes
-
respondida
11 vezes
-
votada
0 vezes