Skip to main content

Posts

Showing posts from December, 2013

Liferay

1. При использовании ServiceBuilder build.number из файла service.properties сохраняется в таблице servicecomponent. Если при каждом старте Liferay пытается сделать апгрейд до новой версии, backup таблиц и виснет, то имеет смысл выкинуть все строки из servicecomponent, касающиеся создаваемой нами базы, поменять необходимые колонки или таблицы вручную, запустить. 2. Где в базе данных найти содержимое страницы пользователя? Из таблицы user_ : userId= 2 Из таблицы group_ : userId =2 => groupId= 88 Из таблицы layout: groupId=88, private, /home => typesettings = "layout-template-id=2_columns_ii column-2=33, column-1=82,3," В таблице layout, колонка typesettings содержит layout и id портлетов. 3. При старте liferay не деплоит war-файлы из папки deploy? Нет ли в логах строки вида 10:08:35,909 INFO Auto deploy scanner started for C:\Selenium\liferay-portal-6.1.1-ce-ga2\deploy и путь совсем не тот что у вашего liferay? Смотреть portal-setup-wizard.properties 4. How to get ...

Classloader, Tomcat, PermGen, ...

Classloader подгружает классы по мере необходимости. Когда в контейнере происходит undeploy, classloader и подгруженные классы должны быть собраны GC. Память JVM состоит из Heap и Permanent Generation. Heap делится на Young Generation (Eden + Survivor) и Old Generation. PermGen - Permanent Generation -  область памяти под управлением VM, которая хранит объекты классов (Class) и interned sttrings (уникальные строки, скажем так). OutOfMemory: PermGenSpace может возникать, если что-то держит Classloader. Когда стартует Tomcat, он создает иерархию classloader'ов: Bootstrap | System | Common / \ Webapp1 Webapp2 ... 1) Каждый объект держит линк на его Class 2) Каждый объект типа Class держит линк на ClassLoader и наоборот (за исключением загруженных Bootstrap loader'ом) holds -------> Servlet1 / | / v / Servlet1.clas...