Po-słowie na każdy temat

czyli programowanie i nie tylko

Apache Tomcat – pamięć JVM

Czas na problem, z którym musi zmierzyć się każdy programista, który często pracuje na kontenerze Apache Tomcat (tutaj dotyczy wersji 6 i 7). Mowa mianowicie o błędzie  java.lang.OutOfMemoryError: PermGen space. Pojawia się on zazwyczaj, gdy w kontenerze mamy uruchomionych kilka rozbudowanych aplikacji i wykonujemy operacje re-deployu bez restartu Tomcata. Nie jest to dobre, należy to rozwiązać, ale z uwagi na złożoność problemu i często niezrozumiałość dla początkujących programistów, problem jest bagatelizowany. Owszem jest nie jest krytyczne rozwiązanie jego (występuje wyłącznie na serwerze deweloperskim) wystarcza twardy restart kontenera aplikacyjnego i „po kłopocie”. Kiedyś przyjdzie jednak zmierzyć się z rozwiązaniem problemu i zaznajomieniem się z terminami pamięci JVM (Java Virtual Machine). Czytaj dalej…

Apache Maven – błąd przepełnienia pamięci

apmavenTym razem szybko, krótko i przyjemnie. Skupimy się na niezbyt lubianym przez programistów błędzie java.lang.OutOfMemoryError. Niektórzy dostają dreszczy jak spotykają coś takiego na konsoli, ale tak naprawdę nie ma czego się bać. Na logikę biorą zostało zbyt mało pamięci przydzielone w stosunku do zapotrzebowania (zasobów) – lub domyślny przydział jest zbyt mały.

W związku z powyższym należy ten limit zwiększyć. Jedynym problem zatem jest zlokalizowanie miejsca gdzie, i jak tego dokonać. Osobiście spotkałem się raz z taką sytuacją. Miało to miejsce, gdy aplikacja rozwijana przez mój zespół osiągnęła (teraz już wiem) limit przydziału pamięci potrzebnej podczas kompilacji. Czytaj dalej…