ScriptCase Forum

Desenvolvedores => Configuração PHP / Ambiente / Performance => Tópico iniciado por: R.O.N.A.L.D.O em Novembro 13, 2013, 05:45:33 pm

Título: Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 13, 2013, 05:45:33 pm
Meus Caros,

Estou fazendo uma rotina bastante longa, e na hora de gerar o código fonte estou recebendo o seguinte erro:

Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mysql.inc.php on line 365

Tem como alterar esse parametro de tempo ???
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Jailton em Novembro 14, 2013, 08:01:36 am
Em qualquer servidor que você for hospedar depois você vai ter no máximo 240 ms, a sugestão seria tentar usar o BANCO DE DADOS, para fazer PROCEDURES e VIEWES para já deixar os dados que você precisa no ponto, para você finalizar com o SCRIPTCASE é assim que eu faço.


PHP não funciona igual um COBOL ou um programa DESKTOP que pode ficar rodando uma ROTINA dias até finalizar um processo.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 14, 2013, 08:42:04 am
Jailton,

O problema da demora não é na execução da rotina é na geração do código fonte, a rotina está rodando bem rápido, agora a geração do código por conta da quantidade de linhas, está estourando o limite de tempo do scriptcase.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Jailton em Novembro 14, 2013, 09:15:44 am
Que ambiente você esta utilizando para desenvolver?
LOCAL? HOSPEDAGEM WEB?


SCRIPTCASE SC 7.1 - PHP 5.4?

WINDOWS VERSÃO? BITS? MEMORIA?

Quantas linhas tem esta ROTINA?

Total de APLICAÇÕES DO PROJETO?

Base de DADOS FONTES DO SC: SQLITE?

Esta desenvolvendo para que BASE DE DADOS? MySQL?
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 14, 2013, 11:26:59 am
Caro Jailton,

Vamos lá....

Desenvolvimento está acontecendo em local, num notebook com processador i5 memória ram de 6GB.

O windows é 65bits e o scriptcase é o 7.1 com PHP 5.4.

O sistema tem apenas 19 aplicações, mas neste caso estou tentando gerar somente dessa específica que no momento está com 1.300 linhas de código e ainda deve crescer um pouquinho mais.  É uma rotina que busca vários dados no BD e monta uma tabela com inúmeras variáveis estatísticas.

O banco da aplicação é o MySQL.

Não sei lhe informar qual é o banco de dados dos fontes. :(

Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Jailton em Novembro 14, 2013, 11:43:56 am
Caro Jailton,

Vamos lá....

Desenvolvimento está acontecendo em local, num notebook com processador i5 memória ram de 6GB.

O windows é 65bits e o scriptcase é o 7.1 com PHP 5.4.

O sistema tem apenas 19 aplicações, mas neste caso estou tentando gerar somente dessa específica que no momento está com 1.300 linhas de código e ainda deve crescer um pouquinho mais.  É uma rotina que busca vários dados no BD e monta uma tabela com inúmeras variáveis estatísticas.

O banco da aplicação é o MySQL.

Não sei lhe informar qual é o banco de dados dos fontes. :(

Ok era isso que eu queria pra entender... ok vamos a solução.

Então quebre sua rotina em MODULOS, entre no formulário que esta a rotina ai vai embaixo em > Programação > Métodos PHP, ai você dividindo ela em módulos e passando parâmetros com os dados entre eles você obtêm o resultado desejado, você pode criar uma biblioteca também para o projeto se desejar.

Abuse das Matrizes Arrays, For, While, Funções para cortar trechos repetitivos dos códigos.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 14, 2013, 12:05:52 pm
Caro Jailton,

Ok, vou partir para isso então, obrigado pelas dicas e pela sua atenção.

Abração.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Bernhard em Novembro 17, 2013, 12:27:31 am
Verifique também a diretiva max_execution_time do php.ini.

att,
Bernhard
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: robertocunha em Novembro 18, 2013, 10:46:31 am
Estou passando pelo mesmo problema, já dividi em vários métodos mas continua o mesmo erro.Alguém do suporte pode nos ajudar????Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mysql.inc.php on line 365
Full-time: 0:05:01
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Almeida em Novembro 18, 2013, 12:35:40 pm
Verifique também a diretiva max_execution_time do php.ini.

att,
Bernhard

Já tentarão fazer oque Bernhard disse?

Se usarem o sc 7.1 abra a pasta componentes/php e em seguida procure o php.ini.

Procure:
max_execution_time = 300 // creio que esse valor é o que o SC cria por padrão.

Altere para:
max_execution_time = 600
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: saulobborges em Novembro 18, 2013, 04:04:33 pm
Se a sua rotina usa dados recorrentes do banco de dados porque vc não cria views no banco pra agilizar o processamento, ou então uma procedure e usa o php apenas pra processar o retorno.
Uma outra opção pra não ter que aumentar direto no php.ini o tempo é s´ó aumentar direto na aplicação.

No menu esquerdo da aplicação vá em:

Aplicações
       Configurações
                Timeout (altere aqui o timeout dessa aplicação)
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 18, 2013, 04:17:50 pm
Meus caros,

O meu problema não é na execução da aplicação e sim na geração do código fonte, ou seja, o timeout era dado pelo scriptcase e não pela aplicação em si, eu resolvi o problema enxugando o código, evitando repetições e sintetizando ao máximo o código, feito isso a geração do código agora não passa de 30 segundos.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Almeida em Novembro 18, 2013, 04:41:35 pm
Meus caros,

O meu problema não é na execução da aplicação e sim na geração do código fonte, ou seja, o timeout era dado pelo scriptcase e não pela aplicação em si, eu resolvi o problema enxugando o código, evitando repetições e sintetizando ao máximo o código, feito isso a geração do código agora não passa de 30 segundos.


Creio que o SC também usa o PHP.ini para fazer a geração de seu código. Se estiver um código muito grande e o tempo de 300 sec não for suficiente, aumentando-o também resolve o problema. Enxugando seu código foi bom, resolveu, mas talvez se deparar com um código grande que mesmo enxugando o tempo de compilação for maior, tente aumentar essa DIRETIVA no php.ini.

O scriptcase também roda em cima do ambiente PHP, ele é desenvolvido em PHP. Então por lógica sua geração de código usa o PHP, sendo assim o php.ini também serve para o SC, tente mudar a DIRETIVA para 5 sec  e tente gerar o código pra ver, eu não tentei, mais creio que vai dar a mesma mensagem.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 18, 2013, 04:43:10 pm
Almeida,

Sem dúvida, se eu me deparar com isso no futuro novamente e não tiver jeito de otimizar então vou partir para essa alternativa.

Obrigado pela sua atenção.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: robertocunha em Novembro 18, 2013, 10:06:03 pm
Mesmo mudando max_execution_time = 3600 no php.ini continua o mesmo erro. Creio que seja um bug, o SC não esta aceitando muitas linhas de código.Tenho um método: function calculo_cartao_credito com 67 linha.
Tipo de aplicação: Formulário   Estado: Erro    Full-time: 0:05:01
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mysql.inc.php on line 365
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: saulobborges em Novembro 18, 2013, 11:20:19 pm
Mesmo mudando max_execution_time = 3600 no php.ini continua o mesmo erro. Creio que seja um bug, o SC não esta aceitando muitas linhas de código.Tenho um método: function calculo_cartao_credito com 67 linha.
Tipo de aplicação: Formulário   Estado: Erro    Full-time: 0:05:01
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mysql.inc.php on line 365

Pode procurar então que tem algum erro de lógica no seu código e o SC não esta conseguindo validar.

67 linhas não é nada, se você abrir uma aplicação gerada vai ver que pra um mero blank sem nada dentro o sc gera um arquivo com mais de 3000 linhas.

Já tive um problema parecido e era erro de lógica na minha aplicação causando com isso dificuldades pro SC encaixar meu código nas rotinas padrões dele. Não me lembro exatamente o que foi mas já passei por um problema parecido.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: R.O.N.A.L.D.O em Novembro 19, 2013, 06:37:09 am
Roberto,

Com certeza não é a quantidade de linhas, a minha rotina tem cerca de 1500 linhas e está gerando em menos de 1 minuto.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Marcos Oliveira em Julho 27, 2015, 11:10:31 am
Prezados bom dia. Peço até desculpas por "ressuscitar" o tópico, porém após a atualização do scriptcase para a última versão estou passando por este problema. já atualizei o php.ini para valores superiores aos "300" segundos, porém o erro sempre é este.
Caso alguém tenha encontrado soluções distintas do já colocado aqui e puder ajudar, agradeço.
Saduações.
Erro:

Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase8\devel\class\generator\nmDados.class.php on line 5804
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Jailton em Julho 27, 2015, 01:33:16 pm
Prezados bom dia. Peço até desculpas por "ressuscitar" o tópico, porém após a atualização do scriptcase para a última versão estou passando por este problema. já atualizei o php.ini para valores superiores aos "300" segundos, porém o erro sempre é este.
Caso alguém tenha encontrado soluções distintas do já colocado aqui e puder ajudar, agradeço.
Saduações.
Erro:

Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase8\devel\class\generator\nmDados.class.php on line 5804

Não teria que ser C:\Program Files (x86)\NetMake\v81???
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Marcos Oliveira em Julho 27, 2015, 02:11:29 pm
Prezado Jailton boa tarde

Na realidade ficou apenas a pasta, à época que atualizei ficou na mesma pasta do 7.1, porém a versão 8 sempre funcionou legal, apenas agora esta questão com a 8.1 que não consegui alterar o tempo máximo de execução.

Obrigado pela atenção.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Marcos Oliveira em Julho 27, 2015, 06:03:21 pm
Prezados boa noite.
Refiz a instalação completa novamente, porém nada ainda. Ao verificar o phpinfo() max_execution_time está com o valor de 3600, teoricamente o erro não era para ser 300 correto?
Erro:
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\devel\class\generator\nmDados.class.php on line 5804
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Willian Fernando Padilha em Julho 27, 2015, 06:17:04 pm
max_execution_time = 6000 ;


max_input_time = 6000 ;

altere eses valores no PHP.INI logo reinicie o Apache..
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Marcos Oliveira em Julho 27, 2015, 06:53:41 pm
Prezado Willian boa noite.

Alterei conforme sugerido. Ao tentar gerar a aplicação ainda acontece o mesmo erro, mesmo com as informações do phpinfo() condizentes com a alteração realizada no arquivo php.ini. Quando utilizava a versão anterior (8.0) a mesma aplicação rodava sem nenhum problema e não apresentava qualquer erro. Muito estranho.

Erro:
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\devel\class\generator\nmDados.class.php on line 5801
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Willian Fernando Padilha em Julho 27, 2015, 07:07:54 pm
Prezado Willian boa noite.

Alterei conforme sugerido. Ao tentar gerar a aplicação ainda acontece o mesmo erro, mesmo com as informações do phpinfo() condizentes com a alteração realizada no arquivo php.ini. Quando utilizava a versão anterior (8.0) a mesma aplicação rodava sem nenhum problema e não apresentava qualquer erro. Muito estranho.

Erro:
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v81\wwwroot\scriptcase\devel\class\generator\nmDados.class.php on line 5801


Tu chegou a reiniciar o Apache?
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: Marcos Oliveira em Julho 27, 2015, 07:17:44 pm
Opa.

Sim reiniciei.
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: renan.andrade em Janeiro 31, 2016, 05:58:05 pm
Pessoal,

Estou ressuscitando o tópico pq tive o mesmo problema na V8.

Não encontrei outra solução.... apesar das que vocês sugeriram. Bom se formos aumentar o tempo de execução sempre, de qualquer forma teríamos que esperar muito até que a aplicação fosse gerada.. Fazendo um teste rápido percebi que quando mudei a conexão de PDO para Mysql transacional nativa do PHP o tempo de execução do script de geração dessa aplicação melhorou demais.

Serve como dica pra vocês, para mim o problema foi resolvido
Título: Re:Geração de Código Fonte - TimeOut 300s
Enviado por: ricardosenaspbr em Fevereiro 01, 2016, 02:12:54 pm
Mesmo mudando max_execution_time = 3600 no php.ini continua o mesmo erro. Creio que seja um bug, o SC não esta aceitando muitas linhas de código.Tenho um método: function calculo_cartao_credito com 67 linha.
Tipo de aplicação: Formulário   Estado: Erro    Full-time: 0:05:01
Fatal error: Maximum execution time of 300 seconds exceeded in C:\Program Files (x86)\NetMake\v71\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-mysql.inc.php on line 365

Uma dica: Uma parte não pode ser desenvolvido em procedure?

Alivia o sc...