só mais uma coisa, definindo o CommandTimeout = 1000; vc esta dizendo q vai aguardar 1000 segundos pela resposta do servidor, se por acaso na hora em q vc for conectar o serividor estiver indisponível, sua aplicação ficará travada aguardando durante 1000 segundos.
Tome cuidado. Em 27/11/06, Leandro <[EMAIL PROTECTED]> escreveu: > > Cara, > > Quanto tive esse problema, recriava o indice clustered da tabela que tava > causando o timeout... > e fica ok... > > Não sei se é o seu caso... > > att, > > Leandro > > > ----- Original Message ----- > From: Marcelo Alves > To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Sent: Monday, November 27, 2006 2:30 PM > Subject: [delphi-br] Re: Problema Grave com Timeout - Urgente > > Bom, quanto a quebrar em várias transações menores, não tenho como > fazer isso uma vez que devo manter a integridade dos dados gravados. > > Aumentei o connectiontimeout para 1000 conforme sugeriram abaixo... > > Agora e quanto às outras propriedades??? Não tem mais nada que devo > me preocupar para evitar esses travamentos? > > Obrigado até agora gente. > > Att, > > Marcelo > > --- Em delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>, > "Gabriel Filho" > <[EMAIL PROTECTED]> escreveu > > > > Uma dica > > > > qdo vc usa o transaction no adoconection, a tabela é bloqueada > > automáticamente, > > entaum como vc disse que tem operacoes que demoram muito pra ser > > processadas, > > analise, para ver se é possivel dividir essa transacao > muito "grande" em > > duas ou tres menores. > > > > Verifique tambem se vc consegue otimizar melhor seu scripts, tipo > sub > > consultas dentro de selects que retornam muito dados. > > uma boa maneira de fazer isso é utilizando o studio mananger > express, nele > > tem uma ferramente que analiza seu scritp te retornando em % > > qual do consumo de cada bloq de select count inner joins etc... > > > > > > > > espero ter ajudado > > > > Em 27/11/06, maniacapordelphi <[EMAIL PROTECTED]> escreveu: > > > > > > A primeira coisa q voce tem q saber é de onde vem a mensagem: do > > > componente ADOConnection ou do Sql Server. > > > > > > Se for do ADO: > > > No componente ADOConnection tem a propriedade ConnectionTime -> > set > > > para 1000 > > > Nos componente TADOquery e TADOStoredProc tem a propriedade > > > CommandTime -> set para 1000 > > > > > > Se for do Sql Server: > > > Você tem q analisar a performance de todos os seus comandos > através > > > do Profile. Pode ser comandos mal projetados > > > > > > T+ > > > Mani > > > > > > --- Em delphi-br@yahoogrupos.com.br > > > <delphi-br%40yahoogrupos.com.br><delphi-br% > 40yahoogrupos.com.br>, > > > "Marcelo Alves" > > > <delphigrupos@> escreveu > > > > > > > > Pessoal, > > > > > > > > Estou com uma bucha aqui pra resolver e preciso muito da ajuda > do > > > > grupo... vamos lá.. > > > > > > > > No cliente onde trabalho, faço manutenção num sistema feito em > D7 > > > com > > > > Sql Server 2000. > > > > > > > > De uns dias pra cá, o sistema começou a dar timeout com bastante > > > > frequência e quando acontecia isso o DBA verificava via scripts > > > que > > > > existia um processo bloqueando outro no sql server. > > > > > > > > Bom, quais foram meus passos para tentar descobrir qual é o > > > problema > > > > até agora: > > > > > > > > 1 - revisei as principais rotinas que sempre travam e também as > > > > maiores e mais demoradas... num achei nenhum problema, mesmo > > > porque > > > > essas rotinas sempre funcionaram muito bem. O Sistema já está em > > > > produção a mais ou menos 1 ano. > > > > > > > > 2 - estou revisando alguns códigos de acordo com alguns toques > que > > > > recebi de uma pessoa de uma outra empresa que integra o sistema > > > deles > > > > com o nosso, e que manja muito de sql server. Bom ele pediu para > > > eu > > > > revisar os momentos em que abro transações no servidor.. > > > > > > > > Bom, tirei todas as aberturas de transação quando ao chamar > > > > procedures que fazem somente selects... e mantive somente nos > > > > momentos em que preciso alterar mais de uma tabela para > garantir a > > > > integridade dos dados... > > > > > > > > Bom, nesse lugares que mantive as abertura de transações, o > > > código > > > > fica assim: > > > > > > > > > > > > If adoSistema.InTransaction Then > > > > adoSistema.RollBackTrans ; > > > > > > > > adoSistema.BeginTrans; > > > > > > > > self.spGeral.Close ; > > > > Self.spGeral.ProcedureName := 'NOME_PROCEDURE_01' ; > > > > self.spGeral.Parameters.Refresh; > > > > > > > > //PASSO TODOS OS PARÂMETROS DA PROCEDURE 01 > > > > > > > > //Executa a SP > > > > Self.spGeral.ExecProc ; > > > > > > > > self.spGeral.Close ; > > > > Self.spGeral.ProcedureName := 'NOME_PROCEDURE_02' ; > > > > self.spGeral.Parameters.Refresh; > > > > > > > > //PASSO TODOS OS PARÂMETROS DA PROCEDURE 02 > > > > > > > > //Executa a SP > > > > Self.spGeral.ExecProc ; > > > > > > > > //Grava os Dados no bd > > > > adoSistema.CommitTrans ; > > > > > > > > Até aí vocês viram algum erro???? > > > > > > > > Bom, outra coisa, eu estive olhando algumas propriedades do > > > > TADOConection e gostaria de saber como vocês configuram para > > > comparar > > > > com as minhas aqui... > > > > > > > > E nos casos de selects onde eu porderia usar tabelas > temporárias.. > > > > existe alguma propriedade que faça com que meu componente > adoQuery > > > > traga os dados sem bloquear a tabela??? Pois tenho casos onde a > > > query > > > > fica aberta durante processos demorados e acho que isso está > > > gerando > > > > travamento no banco... > > > > > > > > A minha maior dúvida é o que fazer para evitar esses travamentos > > > no > > > > banco... > > > > > > > > Se puderem me ajudar ficarei muito grato... > > > > > > > > Marcelo. > > > > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]