Migrate / Upgrade to LR 6.2 CE GA6 from LR 6.2 old CE releases

Dear Liferay Folks ,

This blog is specially for those who are using Liferay 6.2 CE versions for their portals. CE releases are the once which are released by Liferay. Every new CE release includes code fixings and further improvements in addition to previous version release.

Here is the Liferay CE version release process

Now one of my client was using Liferay 6.2 CE GA1 for his portal and was facing multiple issues regarding memory, performance and other Liferay OOTB code issues. The big reason to worry was memory and performance related issues. Everyday we were getting our server down with java.lang.OutOfMemoryError: Java heap space exception. We all most tried all points mentioned in below article of Liferay 6.2 Performance tunning. The good news is I was able to get my portal stable for more then one day but again it was failing with the same Out of heap space exception every second day. We analyzed heap dumps and also found there are couple of LPSs reported in JIRA regarding Memory and performance.

Finally, we planned to migrate from Liferay 6.2 GA1 to Liferay 6.2 GA6.

Below are the steps we followed as part of migration activity:
Environment Details : AppServer : jboss-as-7.2.0
Require resources : liferay-portal-6.2-ce-ga6-20160112152609836.war, liferay-portal-dependencies-6.2-ce-ga6-20160112152609836.zip

1. Back UP Database ,data folder and portal-ext.properties file [so that you can revert your changes]
2. Stop LR & remove Hook and theme, ext & ROOT.war [as we were using Jboss 7.2 in case of tomcat you could refer TOMCAT_HOME/webapps/ROOT]
3. Copy dependency jars to JBOSS_HOME\modules\system\layers\base\com\liferay\portal\main or TOMCAT_HOME\lib\ext
4. Create folder ROOT.war and extract liferay-portal-6.2-ce-ga6-20160112152609836.war to standalone/deployments/ROOT.war/ [or TOMCAT_HOME/webapps/ROOT]
5. Create file ROOT.war.dodeploy [for jboss only]
6. Remove tmp under /standalone [for tomcat remove work/ and temp/]
7. Add portal-ext.properties file at right location [in jboss ROOT.war/web-inf/classes]
8. Start the server
9. Deploy hook, ext and theme again. [NOTE : Don't forget to re-generate plugins wherever you find api changes or else one may end up with exceptions]
10. If you have trouble getting contents, try Re-indexing under server administration.

Post version migration you can go in to server administration and find upgraded Liferay version [in my case it was Liferay Portal Community Edition 6.2 CE GA6 (Newton / Build 6205 / January 6, 2016)], you can also check the same in release_ table.

After migration activity we've done testing and found everything is working fine.

We ran JMeter scripts with 400 threads in 200 seconds and the results says the average response time is improved. Also performed java heap dump analysis, I did not found major difference in total number of instance creation but yes memory space allocation was decreased post migration.

Apart from these we also has code fixes of around 450 issues reported with earlier 6.2 CE releases. Further we leveraged Known Vulnerability fixes as well.

From 457 reported issues we've got good memory and performance results with fixes of below bugs.
LPS-54758     Layout objects are stored in session creating a lot of memory and traffic use
LPS-55106     Too long PortletPreferences XML can cause OutOfMemoryError
LPS-46754     OutOfMemoryError when documentum FileEntry is exported
LPS-58121     GZipFilter is not sufficiently protecting set operations on the contentLength resulting in massive timed waits in the browser
LPS-43679     HTTP header parsing errors when viewing related web content articles multiple times
LPS-44236     Slow performance of AdvancedPermissionChecker#getUserBag() when a user is a member of several groups
LPS-54590     ServiceBuilder filterFindBy queries are not performant
LPS-55602     Exclude article content from keyword search to improve performance

So, this is all how we migrated to latest Liferay 6.2 CE release.

Hope this may also help other folks too.

Best Regards,
Vishal Panchal

Liferay Consultant

LinkedIn

Skype : vishalpanchal22

 

Blogues
Finally, we planned to migrate from Liferay 6.2 GA1 to Liferay 6.2 GA6.


Honestly, this should have been a no-brainer. No one should be sitting on GA1-GA5, there is no reason to be on an out of date release.

There is no API differences from GA1 to GA6, the only thing that will be in there are bug fixes, performance enhancements, and security improvements.