Resolução de problemas
Seguem abaixo alguns problemas que podem ser enfrentados durante a utilização do Gestão do Ponto com suas respectivas soluções.
Problema: durante a execução simultânea de muitos processos de cálculo de apuração, o Gestão do Ponto pode apresentar erro e exibir a mensagem "O sistema está indisponível no momento. Contate o administrador do sistema".
Solução: o log do GlassFish pode ajudar a indicar a causa do erro. O stackTrace abaixo é obtido no log após o início do processo de cálculo. Ele só ocorre quando há algum problema e pode ser um sinal de que os processos em execução simultânea esgotaram as conexões do banco de dados disponíveis para a aplicação.
javax.ejb.EJBException
at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5215)
at com.sun.ejb.containers.BaseContainer.checkExceptionNoTx(BaseContainer.java:5044)
at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4879)
at com.sun.ejb.containers.MessageBeanContainer.afterMessageDeliveryInternal(MessageBeanContainer.java:1211)
at com.sun.ejb.containers.MessageBeanContainer.afterMessageDelivery(MessageBeanContainer.java:1186)
at com.sun.ejb.containers.MessageBeanListenerImpl.afterMessageDelivery(MessageBeanListenerImpl.java:86)
at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:190)
at com.sun.proxy.$Proxy316.onMessage(Unknown Source)
at com.sun.messaging.jms.ra.OnMessageRunner.run(OnMessageRunner.java:260)
at com.sun.enterprise.connectors.work.OneWork.doWork(OneWork.java:114)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.performWork(ThreadPoolImpl.java:497)
at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:540)
Caused by: com.senior.util.ResourceUnavailableException: O sistema está indisponível no momento. Contate o administrador do sistema.
at com.senior.dbc.ContextSessionHelper.getException(ContextSessionHelper.java:105)
at com.senior.dbc.ContextSessionHelper.getSession(ContextSessionHelper.java:51)
at com.senior.dbc.ContextSessionHelper.getSession(ContextSessionHelper.java:35)
at br.com.senior.rh.db.ContextSession.getSession(ContextSession.java:19)
at com.senior.ws.HelperControleSessaoWS.getSession(HelperControleSessaoWS.java:36)
at com.senior.message.AcertoConsumidor.onMessage(AcertoConsumidor.java:52)
at sun.reflect.GeneratedMethodAccessor306.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052)
at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124)
at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:4180)
at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5368)
at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5348)
at com.sun.ejb.containers.MessageBeanContainer.deliverMessage(MessageBeanContainer.java:1099)
at com.sun.ejb.containers.MessageBeanListenerImpl.deliverMessage(MessageBeanListenerImpl.java:81)
at com.sun.enterprise.connectors.inbound.MessageEndpointInvocationHandler.invoke(MessageEndpointInvocationHandler.java:171)
... 5 more
Caused by: java.lang.RuntimeException: com.senior.dbc.impl.connection.NoSuchConnectionException: Connection pool exhausted
at com.senior.dbc.impl.connection.ConnectionProviderImpl.openConnection(ConnectionProviderImpl.java:152)
at com.senior.dbc.impl.SessionImpl.<init>(SessionImpl.java:54)
at com.senior.dbc.impl.DBCenterImpl.newSession(DBCenterImpl.java:144)
at com.senior.dbc.impl.DBCenterImpl.newSession(DBCenterImpl.java:1)
at com.senior.dbc.ContextSessions.getSession(ContextSessions.java:43)
at com.senior.dbc.ContextSessionHelper.getSession(ContextSessionHelper.java:49)
... 20 more
Caused by: com.senior.dbc.impl.connection.NoSuchConnectionException: Connection pool exhausted
at com.senior.dbc.impl.connection.JdbcConnectionManager.borrowConnection(JdbcConnectionManager.java:424)
at com.senior.dbc.impl.connection.ConnectionProviderImpl.openConnection(ConnectionProviderImpl.java:150)
... 25 more
Neste caso, a solução seria dimensionar corretamente o número de conexões do processo escalável, ou seja, reduzir as conexões para manter o processamento. Esta opção é definida na janela Configuração de Serviços Escaláveis (FRCONFSERVICOS) do módulo Controle de Ponto e Refeitório.
Nota
A não geração do log de término na tela do log de processo do Gestão do Ponto pode ser considerada um erro de execução do processo de apuração.
Problema: ao utilizar hierarquia de posto de trabalho, ao abrir a tela de colaboradores, o sistema exibia a mensagem "com.senior.dbc.DBCenterException: The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Too many parameters were provided in this RPC request. The maximum is 2100.".
Solução: para que a mensagem de erro não seja apresentada ao abrir a tela de colaboradores, faça a seguinte configuração:
- Na Central de Configurações Senior, inclua a chave:
Nome: com.senior.seniortools.manage_range.sql.use_literal_values
Valor: true - Em seguida, no GlassFish, aumente o stack do(s) domínios(s) em:
Configurations > Server-config > jvm settings > jvm options. Adicione -Xss2m; - Salve as alterações;
- Reinicie o serviço do GlassFish do Gestão do Ponto.
Problema: algumas aplicações Senior são afetadas por uma atualização de segurança dos navegadores Firefox (versão 39) e Chrome (versão 45), entre elas o Gestão do Ponto, apresentando a mensagem “O servidor possui uma chave pública Diffie-Hellman efêmera fraca”. Essa situação ocorre apenas quando o servidor GlassFish utiliza o Java 1.6 e SSL (conexão via https).
Essa atualização foi necessária devido uma grande falha (Logjam Attack) descoberta no método de troca de chaves chamado Diffie-Hellman, que foi contornada pelos navegadores impedindo o acesso aos servidores que utilizem este tipo de protocolo.
Solução: para obter informações sobre a solução, consulte a seção Resolução de Problemas no Manual de Instalação.
Problema: as telas do Gestão do Ponto podem ficar desalinhadas no browser, quando o navegador está com zoom diferente de 100%.
Solução: as ferramentas de terceiros que o framework utiliza para fazer a renderização dos componentes das telas não tem mais suporte para a versão atual do sistema. Desta forma, fica caracterizado como uma limitação do sistema dar zoom diferente de 100% no navegador, podendo trazer o desalinhamento dos componentes. Com isso, a sugestão seria não utilizar o Gestão do Ponto com zoom diferente do padrão (100%) no navegador.
Problema: na tela de acerto do colaborador, quando o gestor aplica uma penalidade para uma determinada data com a tela de acertos aberta e após a aplicação desta penalidade esta data é recalculada sem atualizar a tela de acertos, um erro ocorre ao tentar salvar as alterações.
Solução: devido aos incidentes/penalidades serem carregados em memória no momento em que a tela é aberta, é necessário que após aplicar qualquer penalidade a página seja atualizada.
Problema: na tela de acerto do colaborador, o sistema não remove os indicadores de status de incidentes do ponto e prazo para acerto expirado, quando o gestor/recursos humanos realiza o segundo recálculo da apuração sem atualizar a página. Com isto, a realocação das marcações e apuração ficam incorretas, porém os indicadores de status permanecem como estavam.
Solução: para que os indicadores sejam atualizados após o segundo recálculo da apuração, é necessário que após o primeiro recálculo a página seja atualizada.
Nota
Este comportamento ocorre também nas demais telas do sistema. Portanto, é recomendável a atualização das páginas já abertas antes de iniciar uma nova ação no sistema.