RE: Upgrade 6.2 to 7 - app-server.properties question

Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Hi there,

Trying to upgrade 6.2GA1 EE to DXP 7.0.

When I start the upgrade java -jar com.liferay.portal.tools.db.upgrade.client.jar

the upgrade almost  immediately fails with errors:
Exception in thread "main" java.lang.ClassNotFoundException: com.liferay.portal.tools.DBUpgrader
        at java.net.URLClassLoader.findClass(URLClassLoader.java:609)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:926)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:854)
        at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:43)
Here is my app-server.properties file:
dir=/usr/share/tomcat
extra.lib.dirs=/data/tomcat_lib_ext,/usr/share/tomcat/lib,/data/webapps/secure/liferay/WEB-INF/lib,/usr/share/tomcat/bin
global.lib.dir=/usr/share/tomcat/lib
portal.dir=/data/webapps/secure/liferay
server.detector.server.id=tomcat
portal-impl.jar is in /data/webapps/secure/liferay/WEB-INF/lib

Do I have to have all settings in my app-server.properties to be relative paths to my tomcat directory?

Thank you.
Alla
thumbnail
Alberto Chaparro, modified 7 Years ago. Liferay Master Posts: 560 Join Date: 4/25/11 Recent Posts
Hi Alla,

The class DBUpgrader is located in the portal-impl.jar so the reason for the error is that the upgrade tool is not capable to find that jar due to a wrong configuration. Taking a look at you app-server.properties, are you sure that the portal.dir property is right? it should point to the Liferay ROOT app, it is normally set as /webapps/ROOT.

Please take into account that the value for dir property is taken as prefix for the rest of the app server properties. So if you have absolute URL for the rest of the properties maybe you need to set dir as blank.

I hope it helps.
Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Hi Alberto,

Yes, I am sure portal-impl is there. 
liferay@pdevdxp:/data/webapps/secure/liferay/WEB-INF/tools/portal-tools-db-upgrade-client> l /data/webapps/secure/liferay/WEB-INF/lib/portal*.jar
-rw-rw-r-- 1 liferay liferay  1851300 Jun 17  2016 /data/webapps/secure/liferay/WEB-INF/lib/portal-client.jar
-rw-rw---- 1 liferay liferay 21253352 Sep 28 21:33 /data/webapps/secure/liferay/WEB-INF/lib/portal-impl.jar
-rw-rw---- 1 liferay liferay    11548 Oct  7 10:58 /data/webapps/secure/liferay/WEB-INF/lib/portal-impl-patch-info.jar
-rw-rw-r-- 1 liferay liferay    73700 Jun 17  2016 /data/webapps/secure/liferay/WEB-INF/lib/portals-bridges.jar


I tried you suggestion about setting teh dir property to emply. And the upgrade failed agian. Just with a different error
liferay@pdevdxp:/data/webapps/secure/liferay/WEB-INF/tools/portal-tools-db-upgrade-client> java -jar com.liferay.portal.tools.db.upgrade.client.jar
Error running upgrade
java.lang.NullPointerException
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.io.File.<init>(File.java:371)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.AppServer.getPortalDir(AppServer.java:123)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.AppServer.getPortalClassesDir(AppServer.java:119)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.UpgradeClient._getClassPath(UpgradeClient.java:334)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.UpgradeClient.upgrade(UpgradeClient.java:196)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.UpgradeClient.main(UpgradeClient.java:116)


</init>


What else can I do?

I cannot change the installation as this is a company server.

Thank you very much for your help.
Alla
thumbnail
Alberto Chaparro, modified 7 Years ago. Liferay Master Posts: 560 Join Date: 4/25/11 Recent Posts
Hi Alla,

If you are going to use absolute URLs for all the properties you just need to set dir in this way:
dir=/
extra.lib.dirs=/data/tomcat_lib_ext,/usr/share/tomcat/lib,/data/webapps/secure/liferay/WEB-INF/lib,/usr/share/tomcat/bin
global.lib.dir=/usr/share/tomcat/lib
portal.dir=/data/webapps/secure/liferay
server.detector.server.id=tomcat

I have tested in my own and it worked.

Please, let me know about the results.

Best regards.
Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Will try.

Thank you.
Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Hi Alberto,

Your suggestion seem to have worked.

But I got a number of error messages:
2018-10-24 19:05:56.147 INFO&nbsp; [main][HikariDataSource:95] HikariPool-1 - Starting...
2018-10-24 19:05:56.240 INFO&nbsp; [main][HikariDataSource:107] HikariPool-1 - Start completed.
2018-10-24 19:05:56.243 INFO&nbsp; [main][DialectDetector:77] Determine dialect for MySQL 10.0
2018-10-24 19:05:56.297 INFO&nbsp; [main][DialectDetector:155] Found dialect com.liferay.portal.dao.orm.hibernate.MariaDBDialect
2018-10-24 19:05:57.775 ERROR [main][DataSourceFactoryImpl:152] Unable to lookup jdbc/LiferayPool
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:&nbsp; java.naming.factory.initial
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:673)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:324)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:361)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at javax.naming.InitialContext.lookup(InitialContext.java:428)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.jndi.JNDIUtil._lookup(JNDIUtil.java:137)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.jndi.JNDIUtil.lookup(JNDIUtil.java:34)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.dao.jdbc.DataSourceFactoryImpl.initDataSource(DataSourceFactoryImpl.java:149)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.kernel.dao.jdbc.DataSourceFactoryUtil.initDataSource(DataSourceFactoryUtil.java:44)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean.createInstance(DataSourceFactoryBean.java:44)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean.createInstance(DataSourceFactoryBean.java:30)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1631)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1568)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:736)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:762)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.spring.context.ArrayApplicationContext.<init>(ArrayApplicationContext.java:31)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.util.InitUtil.initWithSpring(InitUtil.java:223)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.util.InitUtil.initWithSpring(InitUtil.java:202)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.DBUpgrader.main(DBUpgrader.java:100)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.reflect.Method.invoke(Method.java:508)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:55)
2018-10-24 19:05:57.792 INFO&nbsp; [main][HikariDataSource:95] HikariPool-2 - Starting...
2018-10-24 19:05:57.799 INFO&nbsp; [main][HikariDataSource:107] HikariPool-2 - Start completed.
2018-10-24 19:05:58.318 INFO&nbsp; [main][BundleStartStopLogger:35] STARTED com.liferay.petra.collection_1.0.2 [1245]
2018-10-24 19:05:58.320 INFO&nbsp; [main][BundleStartStopLogger:35] STARTED com.liferay.frontend.css.rtl.converter_1.0.0 [1246]
2018-10-24 19:05:58.320 INFO&nbsp; [main][BundleStartStopLogger:35] STARTED org.eclipse.osgi_3.10.200.v20150831-0856 [0]
</init></init></init>
 I am not sure if this is something I need to fix, and if so, how. The upgrade  finished with the following message:
Completed Liferay core upgrade and verify processes in 737 seconds
Checking to see if all upgrades have completed... your upgrades have failed, have not started, or are still running.
You are connected to Gogo shell.



Is this expected?

Thank you.
Alla
thumbnail
Alberto Chaparro, modified 7 Years ago. Liferay Master Posts: 560 Join Date: 4/25/11 Recent Posts
Hi Alla,

That means that the upgrade for some modules have failed, please execute the upgrade:check command to check which are those modules, it's explained in the official documentation:
https://dev.liferay.com/discover/deployment/-/knowledge_base/7-0/running-the-upgrade-process

Regarding the jndi exception, I am not  sure if that can cause issues with the upgrade, please, analyze the whole upgrade log in deep to know which processes are bad.

Best regards.
Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Of course, I ran check. And it showed all the modules as needed upgrade. Then when I ran executeAll, they ran successfully.  But the upgrade log for core upgrade has a number of jdni errors and also license errors.

I will make a new copy of the database and run the upgrade again to see if these findings are consistent.

If my portal installation have hooks, extensions, custom layouts and themes, do I need to undeploy them before making a copy for upgrade or can they stay?

and do I need to reinstall Liferay DXP to rerun the upgrade with a fresh copy of the production database?

Thank you.
Alla
thumbnail
Alberto Chaparro, modified 7 Years ago. Liferay Master Posts: 560 Join Date: 4/25/11 Recent Posts
Hi Alla,

Answering your questions:
If my portal installation have hooks, extensions, custom layouts and themes, do I need to undeploy them before making a copy for upgrade or can they stay?
No, there is no need to undeploy them.
and do I need to reinstall Liferay DXP to rerun the upgrade with a fresh copy of the production database?
No, you just need to restore the database and the document library file system and rerun the upgrade tool.

Regarding the jndi exception, it seems that is not configured properly, could you verify it checking which can cause "Unable to lookup jdbc/LiferayPool" in the javax library?

Best regards.
Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Hi Alberto,

You wrote:
you just need to restore the database and the document library file system and rerun the upgrade tool.
Here is my data directory from Liferay 6.2

 document_library/
drwxrws---  2 tomcat  liferay   87 Nov  1  2011 ee/
drwxrws---  4 liferay liferay   36 Jul  3 17:02 elasticsearch/
drwxrws--- 30 liferay liferay  311 Jun 12  2012 images/
drwxrws---  2 liferay liferay   28 Apr  9  2016 jackrabbit/
drwxrws---  3 tomcat  liferay  232 Oct 25 07:46 license/
drwxrws---  4 liferay liferay   28 May 11  2011 lucene/
drwxrws---  2 liferay liferay   65 Jun 25 22:08 lucene0/
drwxrws---  2 tomcat  liferay 4096 Jul  5 06:06 lucene10131/
drwxrws---  2 tomcat  liferay 4096 Jul  5 16:45 lucene1122317/
drwxrws---  2 tomcat  liferay 4096 Jul  5 14:52 lucene1910650/
drwxrws---  2 tomcat  liferay 4096 Jul  5 17:02 lucene768069/
drwxrws---  2 tomcat  liferay 4096 Jul  5 09:59 lucene793652/
drwxrws---  2 tomcat  liferay 4096 Jun 28 10:39 lucene8058095/
drwxrws--- 10 tomcat  liferay 4096 Jul  6 13:18 lucene9428155/
drwxrws---  2 tomcat  liferay    6 Apr  9  2016 opensocial/
drwxrws---  4 tomcat  liferay   33 Apr  8  2016 osgi/
drwxrws---  2 liferay liferay    6 Oct 29 15:44 temp_images/

Do I need to keep all folders listed above for 6.2 to 7 migration?

And if so, which ones do I need to copy again when rerunning the upgrade tool with a fresh copy of the 6.2 database?

Thank you.
Alla
thumbnail
Alberto Chaparro, modified 7 Years ago. Liferay Master Posts: 560 Join Date: 4/25/11 Recent Posts

Hi Alla,

 

Please read carefully the documentation because the answer is there:

https://dev.liferay.com/discover/deployment/-/knowledge_base/7-0/upgrading-to-liferay-7

 

To repeat the upgrade you only need to backup the database and document library.

 

 

Alla Sapozhnikova, modified 7 Years ago. Junior Member Posts: 82 Join Date: 3/2/12 Recent Posts
Thank you