Conpat 2.52.2.0

De MSTECH wiki
Ir para: navegação, pesquisa

Sistemas Verificados

  • Controle de patrimônio (Conpat), versão 2.25.2.0

Verificação de Segurança

Em verificação.


Verificação de Desempenho

Análise do teste

Durante todas os testes, o percentual de processamento manteve-se dentro dos padrões estabelecidos tendo grande utilização de memória. A média de fila em disco entra-se dentro do aconselhado. O tempo médio de resposta das requisições manteve-se no limite estabelecido, exceto o request de salvar que, em média, demora o dobro dos demais requests.

O sistema apresentou picos nos indicadores "Lazy Write Fluses/sec", "Disk Write/sec" e "Dirty Pages".

A aplicação suporta no máximo até 350 usuários simultâneos, devido a transação de salvar na tabela de cadastro de bens. Não foi possível continuar a realizar os teste devido a grande quantidade de deadlock, que ocorrem a partir de 2 usuários simultâneos. Os mesmos ainda resultam em outros erros de eventvalidation.

Durante os teste foi possível observar que a partir de 50 usuários simultâneos começa a ocorrer erro de conflito da chave estrangeira "FK_BemItemWorkFlow_BemItem". Segue abaixo os logs de erros encontrados:

  • Logs de erro do Conpat
- Log01
Exception Type: System.Data.SqlClient.SqlException
Exception: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_BemItemWorkflow_BemItem". The conflict occurred in database "Conpat", table "dbo.BemItem".
The statement has been terminated.
Source: .Net SqlClient Data Provider
Stack Trace: 
  at MSTech.ConPat.BLL.BemItemWorkflowBO.SalvarWFlow(Int64 _bem_Id, Int32 _bit_Id, Int32 _biw_id, Int32 _bws_id, Guid _usu_id, String _bws_observacao, _WorkId _TipoWF, _PassosWF _Passo, Int64 _tmo_id, TalkDBTransaction banco) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\MSTech.ConPat.BLL\BemItemWorkflowBO.cs:line 137
  at MSTech.ConPat.BLL.BemItemBO.AtualizarPlaquetas(Int32 uni_idPlaquetas, List`1 listaBensPlaqueta, Int32 cfg_id, Guid usu_idLogado) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\MSTech.ConPat.BLL\BemItemBO.cs:line 875
  at WebConPat.AreaAdm.Cadastro.Bens.CadastrarPlaqueta.btnSalvar_Click(Object sender, EventArgs e) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\WebConPat\AreaAdm\Cadastro\Bens\CadastrarPlaqueta.aspx.cs:line 173


- Log02
Exception Type: System.Data.SqlClient.SqlException
Exception: Transaction (Process ID 61) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.
Source: .Net SqlClient Data Provider
Stack Trace: 
  at MSTech.ConPat.BLL.BemPatrimonialBO.Save(BemPatrimonial entityBemPatrimonial, List`1 listBemArquivo, BemItem entityBemItem, List`1 listBemItemArquivo, Boolean IsMovBemPatrimonial, eAction actionLegado, DataTable dtDocumentos, String dirArquivo, String dirArquivoTemp, DataTable dtCentroDeCusto, List`1 listGarantia, Boolean importacaoServico, BemPatrimonialHistoricoDescricao bemPatrimonialHistoricoDescricao, Boolean descricaoMaiuscula, List`1 lstHistorico, eOrigem VS_Origem, PreBens preBem) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\MSTech.ConPat.BLL\BemPatrimonialBO.cs:line 1129
  at WebConPat.AreaAdm.Cadastro.Bens.Cadastro._Salvar() in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\WebConPat\AreaAdm\Cadastro\Bens\Cadastro.aspx.cs:line 3363


- Log03
Inner Exception Type: System.ArgumentException
Inner Exception: Invalid postback or callback argument.  Event validation is enabled using <pages enableEventValidation="true"/> in configuration or <%@ Page EnableEventValidation="true" %> in a page.  For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.  If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation.
Inner Source:System.Web
Inner Stack Trace: 
  at System.Web.UI.ClientScriptManager.ValidateEvent(String uniqueId, String argument)
  at System.Web.UI.Control.ValidateEvent(String uniqueID, String eventArgument)
  at System.Web.UI.WebControls.TextBox.LoadPostData(String postDataKey, NameValueCollection postCollection)
  at System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Exception Type: System.Web.HttpUnhandledException
Exception: Exception of type 'System.Web.HttpUnhandledException' was thrown.
Source: System.Web
Stack Trace: 
  at System.Web.UI.Page.HandleError(Exception e)
  at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  at System.Web.UI.Page.ProcessRequest()
  at System.Web.UI.Page.ProcessRequest(HttpContext context)
  at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
  • Logs de erro CoreSSO
- Log01
Exception Type: System.Xml.XmlException
Exception: Data at the root level is invalid. Line 1, position 1.
Source: System.Xml
Stack Trace: 
  at System.Xml.XmlTextReaderImpl.Throw(Exception e)
  at System.Xml.XmlTextReaderImpl.ParseRootLevelWhitespace()
  at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
  at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
  at System.Xml.XmlDocument.Load(XmlReader reader)
  at System.Xml.XmlDocument.LoadXml(String xml)
  at MSTech.ConPat.Web.WebProject.LogOn.ProcessRequest(HttpContext context) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\MSTech.ConPat.Web.WebProject\LogOn.cs:line 58


- Log02
Exception Type: System.NullReferenceException
Exception: Object reference not set to an instance of an object.
Source: WebConPat
Stack Trace: 
  at WebConPat.SelecionaUnidade.Page_Load(Object sender, EventArgs e) in d:\b\ControlePatrimonio\ControlePatrimonio_Main.Revision\src\ControlePatrimonio\Main\Src\WebConPat\SelecionaUnidade.aspx.cs:line 19


Cenários de uso

Cenário de uso #1 - Login
Ação realizada Think Time (segundos)
1 - Acessar tela de login 3
1 - Realizar login 7
1 - Selecionar sistema Transporte Escolar 5


Cenário de uso #2 - Cadastro de bem
Ação realizada Think Time (segundos)
2 - Acessar tela de consulta de bens 3
2 - Acessar tela de cadastro de bens 3
2 - Preencher "Tipo" 3
2 - Preencher campos de data 5
2 - Preencher campo valor 4
2 - Adicionar fornecedor 13
2 - Selecionar grupo de bens 7
2 - Adicionar documento 10
2 - Marcar bem como sem garantia 3
2 - Adicionar centro de custo 7
2 - Salvar cadastro 10


Cenário de uso #3 - Recebimento de bem
Ação realizada Think Time (segundos)
3 - Acessar home 3
3 - Expandir painel 3
3 - Clicar em "Envio de bens" 2
3 - Clicar em "Aguardando recebimento" 2
3 - Mudar status do item 8


Cenário de uso #4 - Incorporação do bem
Ação realizada Think Time (segundos)
4 - Acessar tela de movimentação manual de bens 5
4 - Selecionar movimentação de incorporação 3
4 - Pesquisar bens para incorporação 7
4 - Clicar em "Exibir itens" 2
4 - Clicar em "Confirmar seleção" 5
4 - Clicar em "Carregar dados" 4
4 - Salvar movimentação 10


Cenário de uso #5 - Logout
Ação realizada Think Time (segundos)
5 - Logout 5

Resultado dos testes

Nesta seção serão apresentados os resultados obtidos da execução dos testes.

  • Porcentagem de tempo do processador
Descrição: Mede a saturação do processador e mostra a quantidade de tempo despendida para processar as threads por todas as CPUs.
Limite recomendado: Abaixo de 75 %.
Análise: A aplicação demonstrou desempenho esperado.
2016-07-04 Conpat ResponseTime.png


  • Porcentagem de memória utilizada
Descrição: Indica a porcentagem de memória utilizada para uso dos processos.
Limite recomendado: Abaixo de 75 %.
Análise: A aplicação utiliza utiliza uma quantidade significativa de memória.
2016-07-04 Conpat MemoriaUtilizada.png


  • Kbytes totais pela interface de rede
Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede.
Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor).
Análise: Ocorre picos de envio e recebimento de Kbytes realizados pelo sistema.


2016-07-04 Conpat InterfaceTotalDeRede.png


  • Tempo médio de resposta das requisições
Descrição: Indica o tempo médio de resposta das requisições.
Limite recomendado: 5 segundos.
Análise: A aplicação demonstrou desempenho esperado próximo à 350 usuários, com uma quantidade superior de usuários os servidores ficam sobrecarregados, aumentando significativamente o tempo de resposta.
2016-07-04 Conpat TempoDeResposta.png
2016-07-04 Conpat TempoDeRespostaLegenda.png


  • Tempo de vazão
Descrição: Indica a quantidade total de request por segundo.
Limite recomendado: Quanto maior melhor.
A aplicação demonstrou desempenho esperado até atingir 400 usuários simultâneos.
2016-07-04 Conpat Vazao.png
2016-07-04 Conpat VazaoLegenda.png


  • Porcentagem de erro
Descrição: Indica a porcentagem de erro.
Limite recomendado: Quanto menor melhor.
A aplicação demonstrou grande porcentagem de erro.
2016-07-04 Conpat PorcentagemErros.png