Forum
See question

WebService V10 desenvolvido provoca lentidão na gravação de documentos no Primavera   

81 views
1
0

Desenvolvemos um webservice para integrar com o Primavera que realiza muitos pedidos de 15 em 15 minutos.

O cliente reporta muita lentidão na gravação de documentos no Primavera V10 quando tínhamos o mesmo processo na V9 e não existia nenhum problema.

Deve ser feito algum processo diferente na V10 ?

Faça login para poder traduzir
V10
Marked as spam
Created 1 year and 3 months ago ngelafrazo
n
ngelafrazo Iniciante
Comments
Bom dia, O vosso Webservice é uma extensão da WebAPI, ou usa a API standard? Nós também migramos um conetor da V9 para a V10, que usa a API. Os tempos de gravação de documentos de venda são similares, mas persiste um problema com a connection pool ao SQL, que causa bloqueios ao fim de uma hora. Verifiquem os tempos de gravação: são normais no inicio, e vão ficando degradados ao longo do tempo?!
1 year and 3 months ago
emiliosusavila
    O nosso Webservice usa a API Standard. Quando reiniciamos o IIS os tempos de gravação ficam normais mas vão ficando degradados ao longo do tempo. Parece que os processos vão ficando acumulados no IIS.
    1 year and 3 months ago
    ngelafrazo
      2 answers
      2
      Private answer

      Olá @ngelafrazo,

      Parece-me que estão a ter o mesmo problema que eu.

      Verifiquem o número de ligações do WebService à base de dados e ao Priempre. Por exemplo, usem a seguinte query na instancia do SQL:

      SELECT 
          DB_NAME(dbid) as DBName, 
          COUNT(dbid) as NumberOfConnections,
          loginame as LoginName,
          status,hostname,PROGRAM_NAME,s.hostprocess
          
      FROM
          sys.sysprocesses (nolock) s
      WHERE 
          dbid > 0 
          and db_name(dbid)='PRIDEMO'
          and loginame='sa'
      GROUP BY 
          dbid, loginame,status,hostname,PROGRAM_NAME,s.hostprocess

      nota: pode ser preciso adaptar a clausula "where" ao vosso caso

      Se o numero de ligações chegar às 100, ocorre um bloqueio, porque a connection pool fica cheia e não permite mais ligações.
      As ligações mais antigas vão sendo terminadas devido a um timeout, e enquanto não terminam, não se conseguem criar novas ligações e ficam suspensas até o timeout da ligação (ex: 120 seg.).
      Isto é a causa da lentidão, e por vezes erros.

      É preciso verificar também as ligações ao PRIEMPRE, porque ao abrirem a plataforma, a pool desta base de dados enche mais rapidamente.

      Confirmem se são os mesmos sintomas?!

      Faça login para poder traduzir
      Marked as spam
      Created 1 year and 3 months ago emiliosusavila
      emiliosusavila Responsiveness Member
        1
        Private answer

        Verifica também se a base de dados esté me modo autoclose a true, deve estar a false.
        Outra dica será não realizar muitas aberturas de empresas entre processos, por exemplo apenas deve-se abrir a empresa uma vez processar tudo nessa empresa até que existe ligação e só realizar o fecho de empresa quando necessário.
        Validar também se o SQL tem deadlocks.

        Faça login para poder traduzir
        Marked as spam
        Created 1 year and 3 months ago brunosilvamarques