Aqui estão algumas dicas gerais para diagnosticar problemas do Java.
- Os JDKs recentes vêm com o VisualVM . Você pode anexar isso a uma instância da JVM em execução para monitorar o uso do encadeamento e da memória.
- Se você está no Linux, você pode usar kill -3 para obter um dump de thread e procurar deadlocks usando o Thread Dump Analyzer
- Veja em quais informações a Glassfish pode expor via JMX. Você pode então usar o JConsole para anexar ao processo e visualizar as informações do JMX em tempo de execução.
- Você menciona que os registros não mostram nada. Se este for um problema recorrente, você deve aumentar o nível de registro.