Estou tentando configurar um jboss num cliente onde o SO é Windows Server 2003.
Se rodo o jboss pelo prompt, com -b e o IP da maquina ele inicia normalmente e consigo acessar o sistema tranquilamente.
Mas, colocando como serviço do windows, ele até abre a pagina do jboss. Mas quando tento acessar a aplicação da erro de OutOfMemoryError: PermGen space.
Não estou entendo o pq de, por prompt rodar normalmente e por serviço dar erro.
Alguem sabe me explicar ? Tem alguma solução ?
Dê uma olhada nos parâmetros do JBoss quando você inicia via serviço. Provavelmente ele não tá subindo com os parâmetros de memória que você colocou pra subir no prompt.
Se não me engano, no windows o JBoss usa um script diferente pra iniciar a instância quando sobe via serviço (faz tanto tempo que não instalo um JBoss em windows como serviço que nem me lembro mais como fiz). Leia a documentação que vem junto com o JBossNative que você baixou pra ver como fazer pra configurar direitinho (foi o que fiz na época).
Poderia ter dito no primeiro post que se tratava do JBoss 5.1 e que estava usando o service.bat pra instalar o serviço. O fato de não precisar desse componente não implica que você não vai fazer uso dele.
Como você não disse como fez a instalação eu assumi que tivesse feito pelo JBossNative. De qualquer forma abra o arquivo service.bat pra ver que existe uma variável JAVA_OPTS declarada nele. Você pode colocar mais argumentos pra JVM nela. Talvez isso resolva.
JBoss AS comes with Windows service executable as part of JBossNative
that can run JBoss Application Server as service.
The service executable jbosssvc.exe transforms the run.bat and
shutdown.bat batch scripts to services. This means that any change
made to those scripts will be used both in service and command
line mode.
To install the JBoss Application Server as Windows service use
the provided service.bat batch file.
C:> cd c:\jboss-5.0.0\bin
C:> service.bat install
To start the JBoss Application Server as Windows service use Control pannel
or net start command. When running in service mode the console output is
redirected to the file run.log. You can inspect the file for any errors
during service startup.
C:> net start JBAS50SVC
The JBoss Application Server 5.0 service is starting.
The JBoss Application Server 5.0 service was started successfully.
To stop the JBoss Application Server as Windows service use Control pannel
or net stop command. When running in service mode the console output
is redirected to the file shutdown.log. You can inspect the file for
any errors during service shutdown.
C:> net stop JBAS50SVC
The JBoss Application Server 5.0 service was stopped successfully.
To restart the JBoss Application Server as Windows service use Control pannel.
To remove the JBoss Application Server as Windows service use the provided
service.bat batch file.
C:> cd c:\jboss-5.0.0\bin
C:> service.bat uninstall
Service customization is done by editing the service.bat script.
Each command has a separate section that you can customize. The most
common customization task would be changing service names if more then
one service instances per box are required.[/i]
Ataxexe minha duvida é o pq por prompt ele executa normalmente e startando por serviço do windows ele da o pau.
No run.conf já aumentei o MaxPermSize, já ta em 1024m.
Pra não deixar mais duvidas, estou utilizando o Jboss 5.1.0 GA e o sistema roda num cliente onde o jboss roda em linux com MaxPermSize em 512m e neste windows não ta indo como serviço.
[quote=panthovillas]Ataxexe minha duvida é o pq por prompt ele executa normalmente e startando por serviço do windows ele da o pau.
No run.conf já aumentei o MaxPermSize, já ta em 1024m.
Pra não deixar mais duvidas, estou utilizando o Jboss 5.1.0 GA e o sistema roda num cliente onde o jboss roda em linux com MaxPermSize em 512m e neste windows não ta indo como serviço.[/quote]
Aumentou no run.conf ou no run.conf.bat? No windows ele roda o run.conf.bat em vez do run.conf.
[quote=panthovillas]não tinha feito no run.conf.bat. Fiz agora e mesmo assim não resolveu.
jogar uma bomba neste windows.[/quote]
Eu dei sorte de ter pego só um cliente que usava windows quando trabalhava com JBoss. No linux é muito mais simples.
Uma coisa que eu fiquei na dúvida é que no primeiro post você disse usar o JBoss no windows como serviço e agora me pareceu que deixou de usar. Foi isso mesmo ou eu entendi errado? Porque se ainda usar como serviço no windows pode tentar colocar os parâmetros de memória no arquivo service.bat (na linha onde é declarada a variável JAVA_OPTS).
Se não for isso eu vou ficar te devendo mesmo. Não consigo pensar em mais nada pra você fazer que não seja arrancar esse windows…hehe
depois que eu alterei o run.conf.bat não tinha tentado startar o jboss pelo prompt, tentei e deu erro… ou seja, ele ta pegando os valores dai mesmo.
so que consigo colocar no máximo 512M tanto pra -Xmx quanto pra MaxPermSize. Algo a mais que isto ele não deixa nem startar o jboss. Da o seguinte erro:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
O servidor tem 17G de memoria, e não ta utilizando nada.
=/
[quote=panthovillas]estou tentando colocar como serviço kra.
depois que eu alterei o run.conf.bat não tinha tentado startar o jboss pelo prompt, tentei e deu erro… ou seja, ele ta pegando os valores dai mesmo.
so que consigo colocar no máximo 512M tanto pra -Xmx quanto pra MaxPermSize. Algo a mais que isto ele não deixa nem startar o jboss. Da o seguinte erro:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
O servidor tem 17G de memoria, e não ta utilizando nada.
=/[/quote]
É bem provável que você esteja usando uma JVM de 32 bits. Porque ela só consegue gerenciar heaps de, no máximo, 1.2 GB (esse número varia um pouquinho dependendo da JVM).
Nesse caso é bom usar uma JVM de 64 bits se quiser trabalhar com heaps maiores. Eu costumava usar heaps de 4GB e, quando o sistema demandava mais (e não era por causa de memory leaks) eu montava um cluster.
o windows é 32 bits e emula os 17G. Quando necessario ele disponibiliza mais memoria.
não pode ser isso o motivo de eu não conseguir alocar mais de 512M pra PermSize e Xmx ??
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
[quote=panthovillas]o windows é 32 bits e emula os 17G. Quando necessario ele disponibiliza mais memoria.
não pode ser isso o motivo de eu não conseguir alocar mais de 512M pra PermSize e Xmx ??
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine. [/quote]
Postei isso lá atrás:
[quote=Ataxexe][quote=panthovillas]estou tentando colocar como serviço kra.
depois que eu alterei o run.conf.bat não tinha tentado startar o jboss pelo prompt, tentei e deu erro… ou seja, ele ta pegando os valores dai mesmo.
so que consigo colocar no máximo 512M tanto pra -Xmx quanto pra MaxPermSize. Algo a mais que isto ele não deixa nem startar o jboss. Da o seguinte erro:
Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.
O servidor tem 17G de memoria, e não ta utilizando nada.
=/[/quote]
É bem provável que você esteja usando uma JVM de 32 bits. Porque ela só consegue gerenciar heaps de, no máximo, 1.2 GB (esse número varia um pouquinho dependendo da JVM).
Nesse caso é bom usar uma JVM de 64 bits se quiser trabalhar com heaps maiores. Eu costumava usar heaps de 4GB e, quando o sistema demandava mais (e não era por causa de memory leaks) eu montava um cluster.[/quote]
Se o seu windows é 32 bits e tem 17GB de memória eu acho que existe um desperdício enorme aí. Parta para um SO 64 bits.
[quote=panthovillas]Ataxexe, é cliente kra. Por mim instalaria linux, nem o win 64 seria.
Mas agora deu certo… comentei o JAVA_OPTS do service.bat e coloquei o -Xrs no run.conf.bat.
Vlw ai!!![/quote]
Entendo, cara. O problema é que você não vai conseguir usar mais do que 1.2 GB de memória em um ambiente de 32 bits. Isso o seu cliente precisa ter em mente.