Re: [javasf] Erro JSF no Glassfish

381 views
Skip to first unread message

Everton Fujimoto

unread,
Sep 21, 2012, 4:58:14 PM9/21/12
to jav...@googlegroups.com
Está no Linux? 

Acontece que o Glassfish cria e usa vários arquivos como cache de processamento, memória, etc.... No geral é "mais de mil" (risos). E o Linux, com usuário não root, costuma limitar a quantidade de arquivos abertos simultaneamente pelo usuário. 

Tem várias formas de contornar isso e algumas dependem da distro linux que vc está usando. Aqui eu me baseio no CentOS. 

Uma forma é, para o usuário glassfish (no caso, o nome do usuário que roda o glassfish é glassfish), você pode mudar o arquivo /etc/security/limits.conf incluindo as seguintes instruções:

glassfish soft nofile 65536
glassfish hard nofile 65536

Não vou explicar o que significa esses parâmetros, é fácil encontrar exatamente o que são e explicam melhor que eu, rsrsr. 

Também tem a possibilidade de editar o arquivo /etc/sysctl.conf  e adicionar:

fs.file-max = 65536

Essa, se não me engano, funciona no Debian.

Também tinha o comando ulimit, mas não lembro como se usa. 

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481



Em 21 de setembro de 2012 17:11, Diogo Soares <diogop...@gmail.com> escreveu:
Galera hoje subiu o glassfish em produção antes usavamos o tomcat 7, está aparecendo nos logs a seguinte mansangem:

GRIZZLY0006: Exception accepting channel java.io.IOException: Muitos arquivos abertos at sun.nio.ch.ServerSocketChannelImpl.accept

O que pode ser?
--
Você recebeu esta mensagem por que é membro do Javasf
http://groups.google.com/group/javasf
 
Conheça também o Java Brazil: http://groups.google.com/group/thejavabrazil

Diogo Soares

unread,
Sep 24, 2012, 3:33:52 PM9/24/12
to jav...@googlegroups.com
Cara fiz o que você falou mais ainda continua dando os erros

E o pior que a aplicação não está funcionando muito bem!!!

[#|2012-09-24T16:01:35.118-0300|WARNING|glassfish3.1|com.sun.grizzly.config.GrizzlyServiceListener|_ThreadID=13;_ThreadName=Thread-1;|GRIZZLY0006: Exception accepting channel
java.io.IOException: Muitos arquivos abertos
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:152)
at com.sun.grizzly.TCPSelectorHandler.acceptWithoutRegistration(TCPSelectorHandler.java:747)
at com.sun.enterprise.v3.services.impl.monitor.MonitorableSSLSelectorHandler.acceptWithoutRegistration(MonitorableSSLSelectorHandler.java:87)
at com.sun.grizzly.TCPSelectorHandler.onAcceptInterest(TCPSelectorHandler.java:772)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:301)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:263)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:200)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
|#]

[#|2012-09-24T16:01:35.119-0300|SEVERE|glassfish3.1|grizzly|_ThreadID=13;_ThreadName=Thread-1;|doSelect IOException
java.io.IOException: Accept retries exceeded
at com.sun.grizzly.TCPSelectorHandler.acceptWithoutRegistration(TCPSelectorHandler.java:762)
at com.sun.enterprise.v3.services.impl.monitor.MonitorableSSLSelectorHandler.acceptWithoutRegistration(MonitorableSSLSelectorHandler.java:87)
at com.sun.grizzly.TCPSelectorHandler.onAcceptInterest(TCPSelectorHandler.java:772)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKey(SelectorHandlerRunner.java:301)
at com.sun.grizzly.SelectorHandlerRunner.handleSelectedKeys(SelectorHandlerRunner.java:263)
at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:200)
at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
|#]


---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Everton Fujimoto" <evert...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Sexta-feira, 21 de Setembro de 2012 17:58:14
Assunto: Re: [javasf] Erro JSF no Glassfish

Everton Fujimoto

unread,
Sep 24, 2012, 3:44:53 PM9/24/12
to jav...@googlegroups.com
Qual a distro que você está usando e qual o valor que "ulimit -a" retorna?

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481



Diogo Soares

unread,
Sep 24, 2012, 3:51:07 PM9/24/12
to jav...@googlegroups.com
Estou usando o CentOS

[root@appjava ~]# ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 73728
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 73728
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited


---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Everton Fujimoto" <evert...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 24 de Setembro de 2012 16:44:53

Enio Nunes

unread,
Sep 24, 2012, 3:55:24 PM9/24/12
to jav...@googlegroups.com
Vai na configuração do glassfish -> network; listener-1 algima coisa, e desabilita o GZIP

Em 24 de setembro de 2012 16:33, Diogo Soares <diogo....@isdra.com.br> escreveu:

Diogo Schmidt Soares

unread,
Sep 24, 2012, 4:18:28 PM9/24/12
to jav...@googlegroups.com
O negócio ficou tão tenso que nao abre a tela de admin mais o sistema ta de pé

HTTP Status 500 -


type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'treeForm'.

root cause

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'treeForm'.

root cause

java.lang.reflect.InvocationTargetException

root cause

java.lang.NullPointerException

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1-SNAPSHOT logs.


GlassFish Server Open Source Edition 3.1-SNAPSHOT

Sigam-me no Twitter.: @diogoprosoft
Meu Skype.: diogoprosoft
Meu msn.: diogop...@gmail.com
Meu Gtalk.: diogop...@gmail.com
Meu Facebook.: diogop...@gmail.com

Diogo Soares

unread,
Sep 24, 2012, 5:03:47 PM9/24/12
to jav...@googlegroups.com
Não tem essa opção GZip no servidor Glassfish estou usando a versão 3.1

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Enio Nunes" <enio.a...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 24 de Setembro de 2012 16:55:24

Everton Fujimoto

unread,
Sep 24, 2012, 5:07:54 PM9/24/12
to jav...@googlegroups.com
A versão 3.1 tem o GZip, e a config está localizada nos listeners de HTTP.

Você viu que no ulimit, na opção -n tem o limite de 1024 arquivos abertos simultaneamente para o seu usuário? Você tem que mudar esse parâmetro pois o glassfish normalmente trabalha com quase 2000 arquivos abertos. 

Essas opções que eu falei, no CentOS, deveriam funcionar normalmente. Faz o teste rodando o comando ulimit -n 3000 e vê se dá esse erro (sem reiniciar), quando vc reiniciar o valor dessa propriedade volta ao normal.

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481



Diogo Soares

unread,
Sep 25, 2012, 7:32:48 AM9/25/12
to jav...@googlegroups.com
Bom dia Everton,

Achei a opção do Gzip no admin do glassfish já estava setada como off
apliquei o comando ulimit -n 3000 vou ficar monitorando.

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Everton Fujimoto" <evert...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Segunda-feira, 24 de Setembro de 2012 18:07:54

Diogo Soares

unread,
Sep 25, 2012, 8:45:21 AM9/25/12
to jav...@googlegroups.com
Bom galera seguinte...

Configurei o arquivo limit.conf e dei um restart com o comando ulimit -a apareceu a opção "Open files 65536", beleza

Ai rodei o comando "cat /proc/sys/fs/file-nr" e mostrou o seguinte
3570 0 65536
depois de 30 min eu rodei denovo e apresentou
4080 0 65536

O glassfish ficará abrindo arquivos sem fechar até estourar novamente ou chega em um limit e ele começa a liberar esses arquivos?

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Diogo Soares" <diogo....@isdra.com.br>
Para: jav...@googlegroups.com
Enviadas: Terça-feira, 25 de Setembro de 2012 8:32:48

Everton Fujimoto

unread,
Sep 25, 2012, 9:23:25 AM9/25/12
to jav...@googlegroups.com
Esses arquivos, pelo que li na documentação (quando passei pelo mesmo problema) são caches de processamento, portanto quando ele não precisa mais ele fecha os arquivos.

Att.
Everton William Fujimoto
Hecate Systems
CIO
(47)3394-5516
(47)9947-5481



--
Você está recebendo esta mensagem porque se inscreveu no grupo "javasf: JavaServer Faces Group" dos Grupos do Google.
Visite este grupo em http://groups.google.com/group/javasf?hl=pt-BR.



Diogo Soares

unread,
Sep 25, 2012, 1:03:59 PM9/25/12
to jav...@googlegroups.com
Estava lendo a documentação do glassfish e não achei um limit de arquivos que ele abre mais no momento estou com 5100 arquivos aberto acompanhando pelo shell pelo comando "cat /proc/sys/fs/file-nr" é normal o glassfish abrir tanto aquivo assim?

Outra pergunta acompanhando pelo "htop" vejo que o glassfish está com muita coisa alocada com PIDs diferentes isso é normal?

---------------------------------------------------

Diogo S. Soares
Grupo Isdra
Setor: TI
Desenvolvedor Java
Ramal: 287

----- Mensagem original -----
De: "Everton Fujimoto" <evert...@gmail.com>
Para: jav...@googlegroups.com
Enviadas: Terça-feira, 25 de Setembro de 2012 10:23:25
Reply all
Reply to author
Forward
0 new messages