Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Inside

Timeout em script

Recommended Posts

Saudações a todos,

 

peguei este código aqui no fórum, ocorre que está dando time out no servidor. E que é mais estranho é que o site está pronto há 6 meses e só agora começou a dar problema.

 

O suporte da Locaweb informou isto:

 

Pedimos a gentileza que verifique as condições de repetição que você utiliza em seu código, pois uma dessas condições está entrando em "Looping", gerando timeout no servidor.

 

 

Alguém sabe como posso resolver o problema? Não sei o quê pode estar errado.

 

 

dim conn_com2Set conn_com2 = Server.CreateObject("ADODB.Connection")conn_com2.Open dsn_comerciodim rscount1, sqlcount1, total1Set rscount1 = server.createobject("ADODB.Recordset")sqlcount1 = "SELECT id from registros where categoria = 3"rscount1.Open sqlcount1, conn_com2, 1, 3total1 = rscount1.recordcountset rscount1 = nothingdim rscount2, sqlcount2, total2Set rscount2 = server.createobject("ADODB.Recordset")sqlcount2 = "SELECT id from registros where categoria = 2"rscount2.Open sqlcount2, conn_com2, 1, 3total2 = rscount2.recordcountset rscount2 = nothingdim rscount3, sqlcount3, total3Set rscount3 = server.createobject("ADODB.Recordset")sqlcount3 = "SELECT id from registros where categoria = 1"rscount3.Open sqlcount3, conn_com2, 1, 3total3 = rscount3.recordcountset rscount3 = nothingdim strRS1, arySub1, number1, verNum1, flag1, bgcolor1'Gravamos o Recordset em um Array BidimensionalSet strRS1 = Server.CreateObject("ADODB.Recordset")strRS1.CursorLocation = 3strRS1.Open "SELECT id,dados1,dados2,dados3,dados4 FROM registros where categoria = 3 and status = 1", dsn_comercioarySub1 = strRS1.getRows()'Fechamos a conexão pois não usaremos maisstrRS1.closeset strRS1 = nothing'strConexao.Close'Set strConexao = NothingDim TotalReg1, TotalNum1, vran1, x1, encontrou1, arrGerados1(0)Dim Numreg1, verGerado1, var_arrGerados1, xLoop1Function GeraRegistros1(TotalNum1)TotalReg1=Cint(uBound(arySub1,2)) ' Encontramos o Maior Array Geradovran1 = 1For x1 = 0 To TotalNum1-1 'LOOP de 1 p/ Total solicitadoencontrou1 = 1Randomize() 'Geramos o primeiro RandomNumreg1 = Cint((rnd*TotalReg1))verGerado1 = Split(var_arrGerados1,",") ' Verifica se nº geradoFor xLoop1 = LBound(verGerado1) To UBound(verGerado1)IF Trim(verGerado1(xLoop1)) = Trim(Numreg1) Then'Este "response" comentado abaixo, indica qual número se repetiram'E não armazena no Array único, fazendo gerando um novo Random'response.write "<b>[ "& verGerado1(xLoop1) &","& Numreg1 &" ]</b><br> "x1 = x1 - 1encontrou1 = 2Exit ForEnd IFNextIF encontrou1 = 1 Then 'NÃO encontrou1, gera o próximo númeroIF vran1 = 1 Then 'primeiro (Verificar este trecho)arrGerados1(0) = Numreg1vran1 = 2ElsearrGerados1(0) = arrGerados1(0) &","& Numreg1End IFvar_arrGerados1 = Join(arrGerados1)End IFNextGeraRegistros1 = var_arrGerados1End Function'Array gerado, podemos iniciar a formatação de perguntasnumber1 = GeraRegistros1(total1)verNum1 = Split(number1, ",")For x1 = LBound(verNum1) to UBound(verNum1)	if flag1 = 0 then		bgcolor1 = "#E5D57A"		flag1 = 1	else		bgcolor1 = "#E5D57A"		'bgcolor = "#F8E997"		flag1 = 0	end ifresponse.write "<tr><td width=""20""></td><td bgcolor="& bgcolor1 &" width=""10""></td><td bgcolor="& bgcolor1 &" height=""50"" class=""doz""><font color=""#ff0000"" class=""onz""><b>»</b></font> <a href=""comercio_ver.asp?id=" & arySub1(0,verNum1(x1)) & """ class=""bmc2""><b>" & Ucase(arySub1(1,verNum1(x1))) & "</b></a><br>   " & arySub1(4,verNum1(x1)) & "</td></tr><tr><td height=""1""></td></tr>"Next	response.write "<tr><td height=""10""></td></tr>"dim strRS2, arySub2, number2, verNum2, flag2, bgcolor2Set strRS2 = Server.CreateObject("ADODB.Recordset")strRS2.CursorLocation = 3strRS2.Open "SELECT id,dados1,dados2,dados3,dados4 FROM registros where categoria = 2 and status = 1", dsn_comercioarySub2 = strRS2.getRows()strRS2.closeset strRS2 = nothingDim TotalReg2, TotalNum2, vran2, x2, encontrou2, arrGerados2(0)Dim Numreg2, verGerado2, var_arrGerados2, xLoop2Function GeraRegistros2(TotalNum2)TotalReg2=Cint(uBound(arySub2,2))vran2 = 1For x2 = 0 To TotalNum2-1encontrou2 = 1Randomize()Numreg2 = Cint((rnd*TotalReg2))verGerado2 = Split(var_arrGerados2,",")For xLoop2 = LBound(verGerado2) To UBound(verGerado2)IF Trim(verGerado2(xLoop2)) = Trim(Numreg2) Thenx2 = x2 - 1encontrou2 = 2Exit ForEnd IFNextIF encontrou2 = 1 ThenIF vran2 = 1 ThenarrGerados2(0) = Numreg2vran2 = 2ElsearrGerados2(0) = arrGerados2(0) &","& Numreg2End IFvar_arrGerados2 = Join(arrGerados2)End IFNextGeraRegistros2 = var_arrGerados2End Functionnumber2 = GeraRegistros2(total2)verNum2 = Split(number2, ",")For x2 = LBound(verNum2) to UBound(verNum2)	if flag2 = 0 then		bgcolor2 = "#EFE8C0"		flag2 = 1	else		bgcolor2 = "#EFE8C0"		'bgcolor = "#FDFBEC"		flag2 = 0	end ifresponse.write "<tr><td width=""20""></td><td bgcolor="& bgcolor2 &" width=""10""></td><td bgcolor="& bgcolor2 &" height=""40"" class=""onz"">  <a href=""comercio_ver.asp?id=" & arySub2(0,verNum2(x2)) & """ class=""bmc3""><b>" & arySub2(1,verNum2(x2)) & "</b></a> - " & arySub2(4,verNum2(x2)) & "</td></tr><tr><td height=""1""></td></tr>"Next	response.write "<tr><td height=""10""></td></tr>"dim strRS3, arySub3, number3, verNum3, flag3, bgcolor3Set strRS3 = Server.CreateObject("ADODB.Recordset")strRS3.CursorLocation = 3strRS3.Open "SELECT id,dados1,dados2,dados3,dados4 FROM registros where categoria = 1 and status = 1", dsn_comercioarySub3 = strRS3.getRows()strRS3.closeset strRS3 = nothingDim TotalReg3, TotalNum3, vran3, x3, encontrou3, arrGerados3(0)Dim Numreg3, verGerado3, var_arrGerados3, xLoop3Function GeraRegistros3(TotalNum3)TotalReg3=Cint(uBound(arySub3,2))vran3 = 1For x3 = 0 To TotalNum3-1encontrou3 = 1Randomize()Numreg3 = Cint((rnd*TotalReg3))verGerado3 = Split(var_arrGerados3,",")For xLoop3 = LBound(verGerado3) To UBound(verGerado3)IF Trim(verGerado3(xLoop3)) = Trim(Numreg3) Thenx3 = x3 - 1encontrou3 = 2Exit ForEnd IFNextIF encontrou3 = 1 ThenIF vran3 = 1 ThenarrGerados3(0) = Numreg3vran3 = 2ElsearrGerados3(0) = arrGerados3(0) &","& Numreg3End IFvar_arrGerados3 = Join(arrGerados3)End IFNextGeraRegistros3 = var_arrGerados3End Functionnumber3 = GeraRegistros3(total3)verNum3 = Split(number3, ",")For x3 = LBound(verNum3) to UBound(verNum3)	if flag3 = 0 then		bgcolor3 = "#FDFBEC"		flag3 = 1	else		bgcolor3 = "#FDFBEC"		flag3 = 0	end ifresponse.write "<tr><td width=""20""></td><td bgcolor="& bgcolor3 &" width=""10""></td><td bgcolor="& bgcolor3 &" height=""40"" class=""onz"">  <a href=""comercio_ver.asp?id=" & arySub3(0,verNum3(x3)) & """ class=""bmc4""><b>" & arySub3(1,verNum3(x3)) & "</b></a> - " & arySub3(4,verNum3(x3)) & "</td></tr><tr><td height=""2""></td></tr>"Nextconn_com2.closeset conn_com2 = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara colando o codigo todo assim eh complicado analisar e te ajudar...

 

Se tava funcionando antes e comecou a dar pau sozinho nao eh problema no loop e sim a locaweb que ta sobrecarregada (oi que é normal) e eles colocam a culpa no codigo da pagina

 

ja aocnteceu comigo isso...

 

http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim já aconteceu comigo outras vezes, só que desta vez eles disseram que há problemas no código e das outras vezes eles não conseguiam identificar o erro no código e no final descobriam que o porblema estava no servidor.Foi a primeira vez que vi esta mensagem:O suporte da Locaweb informou isto:Pedimos a gentileza que verifique as condições de repetição que você utiliza em seu código, pois uma dessas condições está entrando em "Looping", gerando timeout no servidor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O suporte da Locaweb informou que o problema está nesta parte do código:

 

For x2 = 0 To TotalNum2-1encontrou2 = 1Randomize()Numreg2 = Cint((rnd*TotalReg2))verGerado2 = Split(var_arrGerados2,",")For xLoop2 = LBound(verGerado2) To UBound(verGerado2)IF Trim(verGerado2(xLoop2)) = Trim(Numreg2) Thenx2 = x2 - 1encontrou2 = 2Exit ForEnd IFNextIF encontrou2 = 1 ThenIF vran2 = 1 ThenarrGerados2(0) = Numreg2vran2 = 2ElsearrGerados2(0) = arrGerados2(0) &","& Numreg2End IFvar_arrGerados2 = Join(arrGerados2)End IFNext

Aguém tem uma sugestão para otimizar isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

dim objrsXXXXset objrsXXXX = server.CreateObject("ADODB.RecordSet")strSql = "SP_XXXXXXXX "&Variavel&""WITH objrsXXXX	 .CursorType = 1	 .CursorLocation = 3	 .LockType = 1	 .open strSql, objconn	 .ActiveConnection = NOTHINGEND WITH.......codigo............objrsXXXX.closeset objrsXXXX = nothing

é assim q eu uso hj

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.