[RESOLVIDO] Perdendo a conexão com o banco de dados depois de publicado

Roma,

Também estou tendo vários problemas na publicação, o SC 6 039 no Linux por algum motivo não grava adequadamente as conexões, mas, conseguimos burlar estes problemas fazendo da seguinte maneira:

  1. Ao fazer a conexão na primeira vez, ao mudar a senha padrão se dá um logout.
  2. No Linux dê pelo menos três comandos seguidos: chmod 777 -R _lib (dentro do seu diretório da aplicação).
  3. Acesse a configuração de conexão e faça a primeira conexão, então dê logout novamente.
  4. No Linux dê pelo menos três comandos seguidos: chmod 777 -R _lib (dentro do seu diretório da aplicação).
  5. Repita as operações do item 3 à 4 para cada conexão criada.

Não sei explicar o porquê disso, na versão SC6 somente é efetivada as conexões fazendo-se este procedimento.

Espero ter ajudado.

Att.
Flávio

Bom dia Pessoal,

Conforme vou testando, postarei aqui os resultados, para que sirva de documentação para quem futuramente passar pelo mesmo tipo de problema.

Alterei em cada sistema as conexões ao banco de dados, ficando assim:
sistema1 -> conn_sistema1
sistema2 -> conn_sistema2
sistema3 -> conn_sistema3

Onde tinha referencias a conn_mysql alterei para a conexão atual.

Deletei no ambiente de trabalho local a conexão conn_mysql, e executei os 3 sistemas, para ver se daria erro em algum lugar, caso eu tivesse esquecido de alterar nos fontes, trocando de conn_mysql para conn_sistemax. Funcionou tudo perfeitamente.

Gerei os 3 sistemas novamente, na forma padrão (para que o prod seja configurado independentemente em cada sistema).
Subi os sistemas para o servidor e fui aos testes:

Deletei em cada sistema as conexões (estava usando conn_mysql) e deixei o próprio sistema avisar que as conexões não existiam, para criá-las.

sistema1 -> funcionou perfeitamente, solicitando a conexao conn_sistema1
depois o sistema rodou perfeitamente

sistema2 -> funcionou perfeitamente, solicitando a conexão conn_sistema2
depois o sistema rodou perfeitamente

sistema3 -> solicitou a conexão conn_sistema3 e conn_mysql
mesmo não achando a referência para conn_mysql nos fontes, criei a conexão conforme solicitado
o sistema funcionou perfeitamente, até que fechei o navegador e abri novamente.

Depois disso, o problema da falta de conexões voltou, não rodando mais nem sistema2 e nem sistema3.

sistema1 continua funcionando perfeitamente.

Me parece que ainda existe alguma referência a conn_mysql no sistema3 e isso está causando todo o transtorno, bugando a conexão também do sistema2.

A dica que deixo para os que forem criar um novo projeto e estão começando agora com o scriptcase como eu:
nunca utilizem o mesmo nome de conexão para projetos distintos, pois o scriptcase é falho no gerenciamento destas conexões.
Mesmo sendo o mesmo nome de conexão, deveriam trabalhar totalmente independentes um do outro.

Qualquer novidade hoje nos testes, atualizo o tópico.

Abraços

Roma, quando tive problemas com isso simplesmente criei subdomínios para cada sistema e nunca mais tive estes problemas relacionados a sessão e perda de conexão.

Outra possibilidade é o diretório _lib não estar com permissões adequadas, bem com o diretório conf que fica dentro dele, ou seja o sistema funciona quando você cria a conexão porque os dados permanecem em sessão após sair a sessão é derrubada e o sistema não encontra mais os dados visto que o diretório não tem o arquivo de configuração dentro devido a falta de permissão. (estou especulando)

As permissões da pasta _lib e conf estão como 0755 em todos os sistemas, não acredito que seja isso.

Não entendi a co-relação dos subdomínios, se puder explicar no que influenciaria para eu entender melhor.

Lembrando que no caso, os 3 sistemas acessam o mesmo banco de dados em determinado momento:

sistema1 -> Gerencial da empresa
sistema2 -> cliente faz login de acordo com o gerencial e consulta seu financeiro dentro do gerencial.
sistema3 -> cliente faz login pelo gerencial mas trabalha em outro banco de dados próprio da empresa do cliente

A única conexão manual que faço no sistema3 que poderia ter algum erro, é no momento do login, sc_select($sql,$conexao3) antes estava como sc_select($sql,$conn_mysql)

Ainda acho que seja alguma referência a conn_mysql que esteja gerando o problema. Vou re-analisar o sistema3 todo para ver se encontro.

Abraços

Sempre uma sessão é criada por dominio em um sistema e ela se mantém até você fechar o navegador ou a conexão expirar no servidor.
Quando há vários sistemas em um domínio é comum ao mudar de sistema no mesmo navegador ocorrer a perda de conexão pois a sessão é a mesma e irá prevalecer os dados de um ou outro sistema.
Quando tem subdomínios são geradas sessões para cada subdomínio.
Logo ao entrar em cada sistema como são sessões diferentes, mesmo que esteja no mesmo navegador, não haverá conflito dos dados entre os sistemas.
Espero ter explicado de forma simples.
isto já foi discutido em outros tópicos e dado como solucionado.
Ver: http://www.netmake.com.br/forum/index.php/topic,6074.msg27944.html#msg27944
http://www.netmake.com.br/forum/index.php/topic,5609.msg26954.html#msg26954

Obrigado Alexandre, bastante esclarecedor. Vou ler a respeito e fazer as devidas alterações.

Realmente a dica dos sub-domínios funcionou perfeitamente.
Bastou criar os sub-domínios e acessar os sistemas através dos respectivos, sem precisar alterar qualquer outra coisa nos sistemas.

Rodou 100%, agradeço pela ajuda de todos.

Abraços.