Rychlejší vývoj webových stránek v Javě

Když se podíváte na způsob vývoje u kompilovaných jazyků, vždy vidíte cyklus úprav, přeložení a spušťění. Naštěstí na rozdíl od C++ jsou překlady v Javě ďábelsky rychlé. Pomalejší už je bohužel deploy do servletového kontejneru (o čase pro EJB už raději nemluvím). Pokud tedy sečtete dohromady čas pro kompilace a redeploy, dostanete čas minimálně několik vteřin, obvykle však i desítky vteřin (u některých aplikačních serverů to může být i 5 minut), což v porovnání s PHP, kde uložíte soubor a obnovíte stránku, snižuje produktivitu a tím zvyšuje náklady projektu. U mně osobně platí, že i krátké přerušení práce mne dokáže dostat z koncentrace, a tím ještě zhoršit celý problém.
Pokračování textu Rychlejší vývoj webových stránek v Javě

Tomcat a leaky

Při práci s Tomcatem jsme narazili na memory leaky. Tato chyba nastává při reloadu aplikace v Tomcatu. Nejčastěji se problém projevuje tak, že se zaplní část paměti heap a PermGen, která je použivaná pro načítané třídy (class).

Když tomcat načítá novou webovou aplikaci, uvolní všechny reference na původní ClassLoader a nechá GC, aby paměť uvolnil. Problém ovšem nastane, pokud na tento ClassLoader stále existuje reference. Pokud třída v rodičovském ClassLoaderu (např. část JDBC přímo v JDK) obsahuje odkaz na třídu v našem původním ClassLoaderu, a tím i přímo na na něj, nastane problém.

Problémy mohou způsobovat např. tyto knihovny:

  • JDBC DriverManager
  • Jasper (JSP compiler)
  • CGLIB – v nové verzi již opraveno

My jsme problém vyřešili tak, že v ostrém provozu Tomcat restartujeme a při vývoji jsme zvýšili paměť pro tomcat – -Xmx a
-XX:MaxPermSize=128m. Tím jsme minimalizovali riziko vzniku problému.

Více informací v článku Memory leak – classloader won’t let go.

Firemní jabber server

V poslední době jsme začali mít celkem problémy s ICQ – od změny protokolu po velmi časté odhlašování ze sítě. Proto jsme se rozhodli, že nasadíme vlastní firemní jabber server.

Použili jsme ejabberd. Instalace byla poměrně jednoduchá.

Tím jsme získali tyto výhody:

  • bezpečná komunikace po firmě – vše je šifrované a komunikace po firmě putuje jen přes náš server
  • snadnou integraci s firemním LDAP serverem – ověřování, seznam účtů a další informace z adresáře
  • sdílený seznam kontaktů – ejabberd umožňuje editovat seznam kontaktů na serveru a tak centrálně přidat nového zaměstnance.
  • JID schodné s emailovou adresou

A protože dnes používá jabber stále více lidí (také díky Google Talk), začali jsme používat jabber i na komunikaci s našimi zákazníky.