Dnes mi na serveru root.cz vyšel článek o snadné tvorbě prostředí pro chroot aplikací na debianovských distribucích – Bezpečí s chrootem.
Měsíc: Březen 2006
Integrace webových aplikací
Jako firma zabývající se vývojem zakázkového software a outsourcingem, jsme potřebovali vytvořit intranet pro naše zákazníky a partnery. Ten se skládá z různých propojených aplikací. Tyto aplikace musí mít jednotný vzhled, jednotné přístupové konto a omezování podle přístupových práv.
Pokračování textu Integrace webových aplikací
Pár článků o hibernate
Nedávno jsem narazil na pár zajímavých článků o hibernate:
- Garbage collection and Hibernate performance tuning
- Hibernate and efficient queries
- Hibernate query caching
A o samotném GC:
- A Collection of JVM Options – snad kompletní výpis všech parametrech JVM
- Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine – článek o nastavování GC
Java: Too many open files
Nedávno jsme narazili na chybu „Too many open files“ v tomcatu běžícím na našem produkčním Linuxovém serveru.
Jak jistě všichni víte v Javě se o správu paměti stará GC. Ten spustí svoji činnost ve chvíli, kdy je spotřebována paměť a je potřeba další.
Při vytvoření FileInputStream se otevře soubor (a vytvoří tzv. file descriptor). K zavření souboru dojde až ve finalizeru tohoto objektu. Finalizer je ovšem volán až ve chvíli, kdy je objekt uvolnění pomocí GC.
Pokud máte pro program přiděleno hodně paměti, nemusí být GC spuštěno dostatečně často a vyčerpá se limit současně otevřených souborů pro JVM/proces. Záludností tohoto problému je, že se objeví zčista jasna třeba i po roce provozu.
Řešení problému existuje několik:
- explicitně volat metodu close() na FileInputStream a podobných objektech
- zvýšit limit současně otevřených souborů příkazem ulimit -n 4000 .
Pozn.: jádro 2.6.x má maximální zakompilovanou hodnotu 1 000 000. Případně je nutno zvýšit i celkový počet otevřených souborů v celém systému echo 512000 > /proc/sys/fs/file-max - docílit častější spouštění GC – třeba tak, že snížíte max heap size. Tato třetí varianta je ve většině případů nepoužitelná.
O limitech operačních systému na počet otevřených souborů se více dočtete v kapitole „Appendix A – Operating system limits“ v mé diplomové práci.
Dědičnost v hibernate vs Proxy
Jedním ze základních stavebních kamenů v OO návrhu je dědičnost. Nikoho tedy nepřekvapí, že tuto vlastnost nabízí i ORM a tedy i Hibernate.
Při použití dědičnosti v Hibernate a současném používání Proxy ovšem nastávají problémy.
Pokračování textu Dědičnost v hibernate vs Proxy
Němčovice – krajský zlatý erb v kategorii obec
Bezpečnost na webu
Dnes proběhla první přednáška v rámci předmětu ZČU "Trendy a technologie v softwarovém inženýrství" na téma bezpečnost na webu.
Přednášel Petr Ferschmann. Obsah je přístupný (a také jako zip).