Code Monkey home page Code Monkey logo

liferay-portal-database-all-in-one-support's Introduction

Liferay Portal CE 7, 7.1, 7.2, 7.3 and 7.4 Database All In One Support

Antonio Musarra's Blog Twitter Follow

Those who follow Liferay is aware of the fact that the Community Edition version 7 of Liferay, were eliminated quite a bit of components App Server, Database & Clustering Support. For more detail information you can read the blog post by Bryan Cheung published on April 7, 2016.

The Liferay 7 CE no more support OOTB (Out Of The Box):

  • Application Server: Oracle WebLogic, IBM WebSphere
  • Clustering
  • MultiVM Cache
  • Oracle Database, Microsoft SQL Server, IBM DB2, Sybase DB

This project add support to the Oracle Database, SQL Server. Liferay has performed refactorting the code so that it is possible and easy to add support for databases no longer supported OOTB (out-of-the-box)

You can refer to the change log for more information about the changes made to.

Fai una donazione su PayPal a Antonio Musarra (author)

I invite you to read the article How to build a Docker Liferay 7.2 image with the Oracle Database support and the How to setup Docker container Oracle Database 19c for Liferay Development Environment which may be interesting for you.

In the following video, I will guide you step-by-step instructions on how to add support for Oracle Database to Liferay 7 Community Edition in the bundled version of Wildfly.

Liferay 7 Wildfly: How to add support for Oracle DB

1. Introduction

To extend support to other databases, Liferay has decided to refactory code to use Java. Invite you to read SPI (Service Provider Interface) and Creating Extensible Applications (The Java™ Tutorials > The Extension Mechanism > Creating and Using Extensions) SPI is the mechanism that allows you to extend/change the behavior within a system without changing the source. It includes interfaces, classes or methods that the user extends or implements in order to obtain a certain functionality.

In short we must:

The following code shows how service providers are loaded via SPI.

public DBManagerImpl() {
  ServiceLoader<DBFactory> serviceLoader = ServiceLoader.load(
    DBFactory.class, DBManagerImpl.class.getClassLoader());

  for (DBFactory dbFactory : serviceLoader) {
    _dbFactories.put(dbFactory.getDBType(), dbFactory);
  }
}

Source Code 1 - Shows how service providers are loaded via SPI

To register your service provider, you create a provider configuration file, which is stored in the META-INF/services directory of the service provider's JAR file. The name of the configuration file is the fully qualified class name of the service provider, in which each component of the name is separated by a period (.), and nested classes are separated by a dollar sign ($).

The provider configuration file contains the fully qualified class names (FQCN) of your service providers, one name per line. The file must be UTF-8 encoded. Additionally, you can include comments in the file by beginning the comment line with the number sign (#).

Our file (inside META-INF/services directory) is called com.liferay.portal.kernel.dao.db.DBFactory and contain the FQCN of this class:

  1. it.dontesta.labs.liferay.portal.dao.db.OracleDBFactory
  2. it.dontesta.labs.liferay.portal.dao.db.SQLServerDBFactory

The class diagrams of each database driver are shown below.

Class Diagram SQLServer

Figure 1 - Class diagram of the SQLServerDB driver

Class Diagram OracleDB

Figure 2 - Class diagram of the OracleDB driver

2. How-To Build the project from sources

Requirements for build the project

  1. Sun/Oracle JDK 1.8/JDK 11
  2. Maven 3.x (for build project)

The driver that adds support for Oracle, SQLServer and DB2 database is a jar artifact (liferay-portal-database-all-in-one-support-${version}.jar) which then will be installed in ROOT/WEB-INF/lib (for the Apache Tomcat).

To generate the all in one driver just follow the instructions below.

You can download the latest version binary jar from Maven Central Repository liferay-portal-database-all-in-one-support, by doing so you can avoid doing the build.

$ git clone https://github.com/amusarra/liferay-portal-database-all-in-one-support.git
$ cd liferay-portal-database-all-in-one-support
$ mvn package

Console 1 - Clone the source project from GitHub and run package goal

The build process create the jar liferay-portal-database-all-in-one-support-${version}.jar inside the (maven) target directory.

3. Installation notes for Liferay 7.4 GA3

Since version 7.4 GA3 of Liferay, the so-called Shielded Container mechanism has been introduced, so the directory on which to install the JDBC driver and the driver of this project changes.

In the case of the Tomcat bundle, the new directory is: tomcat-9.0.43/webapps/ROOT/WEB-INF/shielded-container-lib

New directory installation to db driver for Liferay 7.4 GA3

Figure 3 - New directory installation to db driver for Liferay 7.4 GA3

4. How-To Configure Liferay Portal

Below you can see the portal-ext.properties. In the sample file are shown JDBC configurations sample for Oracle, SQL Server, and DB2.

##
## JDBC
##

    #
    # Oracle
    #
    # jdbc.default.driverClassName=oracle.jdbc.OracleDriver
    # jdbc.default.username=liferayce7
    # jdbc.default.password=liferay12345
    # jdbc.default.url=jdbc:oracle:thin:@oracledb.vm.local:1521:xe

    #
    # DB2
    #
    # jdbc.default.driverClassName=com.ibm.db2.jcc.DB2Driver
    # jdbc.default.url=jdbc:db2://db2.vm.local:50001/lportal:deferPrepares=false;fullyMaterializeInputStreams=true;fullyMaterializeLobData=true;progresssiveLocators=2;progressiveStreaming=2;
    # jdbc.default.username=db2inst1
    # jdbc.default.password=system

    #
    # SQL Server
    #
    # jdbc.default.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
    # jdbc.default.username=liferay
    # jdbc.default.password=liferay12345
    # jdbc.default.url=jdbc:sqlserver://sqlserverdb.vm.local;databaseName=liferayce7

Source Code 2 - Sample JDBC connection strings for Oracle, SQL Server and DB2 database

You could also configure database access as a JNDI resource and specify the resource name in configuration.

##
## JDBC
##
    #
    # Set the JNDI name to lookup the JDBC data source. If none is set,
    # then the portal will attempt to create the JDBC data source based on the
    # properties prefixed with "jdbc.default."
    #
    jdbc.default.jndi.name=java:jdbc/LiferayPool

Source Code 3 - Configure the JDBC connection via JNDI

In order for Liferay to be able to connect to the database, it is necessary to install the JDBC driver compatible with the version of the specific database and JVM. Here are the links to the resources to download the JDBC driver.

  1. Oracle JDBC Drivers
  2. Microsoft SQL Server JDBC Drivers and support matrix

The following documents (see database section) provide details of the configurations that are certified by Liferay. You can see the complete documents on Liferay Portal.

Liferay_72_Compatibility_Matrix_Database

Figure 4 - Liferay_72_Compatibility_Matrix_Database

The figure below shows an example of connection to the Liferay 7.4 GA3 Oracle database.

New directory installation to db driver for Liferay 7.4 GA3

Figure 5 - Connection to Liferay 7.4 GA3

4. Other useful resources

  1. How to build a Docker Liferay 7.2 image with the Oracle Database support
  2. How to build a Docker Liferay 7.2 image with the SQL Server 2017 Database support
  3. Liferay 7.1: How to add support for Oracle DB
  4. Come installare Liferay 7 su JBOSS EAP con il supporto Oracle Database
  5. Liferay 7 Wildfly: How to add support for Oracle DB (video on Antonio Musarra's Blog YouTube Channel)
  6. Liferay 7 Community Edition GA5 & Oracle 12c via Docker Composer (video on Antonio Musarra's Blog YouTube Channel)
  7. Come installare Liferay 7 su JBoss EAP con il supporto per Oracle Database (video on Antonio Musarra's Blog YouTube Channel)
  8. How to setup Docker container Oracle Database 19c for Liferay Development Environment

Liferay Portal Database All-In-One License

SPDX-License-Identifier: LGPL-2.1-or-later

Liferay Portal Database All-In-One is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 2.1 of the License, or (at your option) any later version.

Liferay Portal Database All-In-One is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Liferay Portal Community Edition. If not, see https://www.gnu.org/licenses/

liferay-portal-database-all-in-one-support's People

Contributors

amusarra avatar dependabot[bot] avatar javieralpanez avatar tonuccijkl avatar tonuccirkn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

liferay-portal-database-all-in-one-support's Issues

Upgrade process error on create unique index IX_7CDD4FB0

At the first start-up of the Liferay 7.4 GA6 portal using the driver version 1.2.1, you get the error reported below. The error is triggered by an Upgrade Process on the RemoteAppEntry table.

The same problem with Liferay 7.4 GA5, GA4

Caused by: com.liferay.portal.kernel.log.LogSanitizerException: com.liferay.portal.kernel.upgrade.UpgradeException: Bundle com.liferay.remote.app.service_2.0.15 [1115] has invalid content in indexes.sql:_create unique index IX_7CDD4FB0 on RemoteAppEntry (companyId, iFrameURL[$COLUMN_LENGTH:4000$]);_create index IX_5F8F9C11 on RemoteAppEntry (uuid_[$COLUMN_LENGTH:75$], companyId); [Sanitized]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep._upgrade(InitialUpgradeExtender.java:311) ~[?:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.lambda$upgrade$0(InitialUpgradeExtender.java:236) ~[?:?]
	at com.liferay.portal.db.partition.DBPartitionUtil.forEachCompanyId(DBPartitionUtil.java:114) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.process(BaseDB.java:308) ~[portal-impl.jar:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.upgrade(InitialUpgradeExtender.java:225) ~[?:?]
	... 148 more
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: java.sql.SQLException: ORA-01450: maximum key length (6398) exceeded_ [Sanitized]
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:509) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:928) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1205) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1747) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeLargeUpdate(OracleStatement.java:1712) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1699) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:285) ~[ojdbc8.jar:19.3.0.0.0]
	at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:117) ~[hikaricp.jar:?]
	at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java) ~[hikaricp.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:349) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:315) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQLTemplateString(BaseDB.java:496) ~[portal-impl.jar:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep._upgrade(InitialUpgradeExtender.java:307) ~[?:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.lambda$upgrade$0(InitialUpgradeExtender.java:236) ~[?:?]
	at com.liferay.portal.db.partition.DBPartitionUtil.forEachCompanyId(DBPartitionUtil.java:114) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.process(BaseDB.java:308) ~[portal-impl.jar:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.upgrade(InitialUpgradeExtender.java:225) ~[?:?]
	... 148 more
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: Error : 1450, Position : 35, Sql = create unique index IX_7CDD4FB0 on RemoteAppEntry (companyId, iFrameURL), OriginalSql = create unique index IX_7CDD4FB0 on RemoteAppEntry (companyId, iFrameURL), Error Msg = ORA-01450: maximum key length (6398) exceeded_ [Sanitized]
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:513) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:461) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1104) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:550) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:229) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:41) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:928) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1205) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1747) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeLargeUpdate(OracleStatement.java:1712) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1699) ~[ojdbc8.jar:19.3.0.0.0]
	at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:285) ~[ojdbc8.jar:19.3.0.0.0]
	at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:117) ~[hikaricp.jar:?]
	at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java) ~[hikaricp.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:349) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:315) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.runSQLTemplateString(BaseDB.java:496) ~[portal-impl.jar:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep._upgrade(InitialUpgradeExtender.java:307) ~[?:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.lambda$upgrade$0(InitialUpgradeExtender.java:236) ~[?:?]
	at com.liferay.portal.db.partition.DBPartitionUtil.forEachCompanyId(DBPartitionUtil.java:114) ~[portal-impl.jar:?]
	at com.liferay.portal.dao.db.BaseDB.process(BaseDB.java:308) ~[portal-impl.jar:?]
	at com.liferay.portal.spring.extender.internal.upgrade.InitialUpgradeExtender$InitialUpgradeStep.upgrade(InitialUpgradeExtender.java:225) ~[?:?]
	... 148 more

For more info about Oracle error, read this Oracle post How to Fix ORA-01450: Maximum Key Length (6398) Exceeded Errors

The SQL statement that generates the error is the following.

create unique index IX_7CDD4FB0 on RemoteAppEntry (companyId, iFrameURL)

I found the Oracle side workaround, which consists of using the 32k Buffer Cache and created the tablespace using the 32k block. Following are the SQL statements to be executed also via SQL as sysdba.

-- Set 32k db cache size
alter system set db_32k_cache_size=32M scope=both;

-- Create tablespace (32k blocksize) for schema Liferay
CREATE TABLESPACE liferay_data_32k logging DATAFILE
'/u01/app/oracle/oradata/ORCLCDB/liferay_data_32k.dbf' SIZE 64m
autoextend ON NEXT 32m maxsize 4096m blocksize 32k EXTENT management local;

-- Create user for new schema Liferay Dev with 32k tablespace
CREATE USER lportal IDENTIFIED BY lportal DEFAULT TABLESPACE
liferay_data_32k TEMPORARY TABLESPACE liferay_temp PROFILE
DEFAULT account unlock;

Index created successfully after applying workaround on Oracle.

index_on_remoteappentry

I created an issue related to this issue on Liferay as well Upgrade process error on create unique index IX_7CDD4FB0 on Oracle 19c

Error when using this library with liferay-ce-portal-7.3.1-ga2

Hi experts,

I have this error when I use this library with the latest liferay version (liferay-ce-portal-7.3.1-ga2).
It only happen with the latest liferay version, it works fine with the previous liferay version - liferay-ce-portal-7.3.0-ga1

20-Apr-2020 07:44:21.619 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.liferay.portal.spring.context.PortalContextLoaderListener]
        java.lang.NoSuchMethodError: it.dontesta.labs.liferay.portal.dao.db.OracleDB.convertTimestamp(Ljava/lang/String;)Ljava/lang/String;
                at it.dontesta.labs.liferay.portal.dao.db.OracleDB._preBuildSQL(OracleDB.java:313)
                at it.dontesta.labs.liferay.portal.dao.db.OracleDB.buildSQL(OracleDB.java:54)
                at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:311)
                at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:302)
                at com.liferay.portal.dao.init.DBInitUtil.init(DBInitUtil.java:75)
                at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:245)

Any idea?

Thank you.

how to add ojdbc8(oracle database driver) in liferay

hi
i'd like to know, how to add ojdbc8 in liferay, i download the jar manually and put it in tomcat/lib/ext, and modify build.gradle of module: compileOnly group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.3.0.0'
it's doesn't work.

my environment is
OS: Windows
JVM: oracle jdk8
Liferay: Liferay CE 7.4.2 ga3
Database: MySQL 5.7

cannot access external db via service builder with liferay-portal-database-all-in-one-support

hi
sorry for bother
i use liferay 7.4.2 ga3 with jdk8 and ide 3.9.4.202108090632-ga5
i try use liferay-portal-database-all-in-one-support, put the jar it in ROOT/WEB-INF/lib, and put driver in ROOT/WEB-INF/shielded-container-lib
set my service.xml
dependency-injector="spring" in service-builder tag
data-source="extPlmDataSource" in my entity tag
create ext-spring.xml in META-INF/spring/parent/ of service madule
alias="extPlmDataSource" name="liferayDataSource" in alias tag of ext-spring.xml

after i build-service/build and deploy my module, i got exception when getService()
java.lang.NullPointerException: null at com.raritan.ci.plm.service.ItemLocalServiceUtil.getItem(ItemLocalServiceUtil.java:232) ~[bundleFile:?] at com.raritan.ci.amd.portlet.AdminMasterDataPortlet.render(AdminMasterDataPortlet.java:102) ~[bundleFile:?] at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:127) ~[portal-impl.jar:?] at com.liferay.portlet.ScriptDataPortletFilter.doFilter(ScriptDataPortletFilter.java:58) ~[portal-impl.jar:?] at com.liferay.portlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:124) ~[portal-impl.jar:?] at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:71) ~[portal-kernel.jar:?] at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:115) ~[portal-kernel.jar:?] at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) ~[servlet-api.jar:4.0.FR]
after googled, some user of 7.3 had same issue, but resolved after upgrade com.liferay.gradle.plugins.workspace version. but it's not work in this case.

cannot work on Liferay Portal 7.4 GA4 (7.4.3.4-ga4)

Liferay version: Liferay Portal 7.4 GA4 (7.4.3.4-ga4)
jdk version: 8
os: windows

i put liferay-portal-database-all-in-one-support-1.2.1.jar in \tomcat-9.0.43\webapps\ROOT\WEB-INF\lib
and put ojdbc8.jar in \tomcat-9.0.43\webapps\ROOT\WEB-INF\shielded-container-lib

there is no any module in server, clean and empty. after run up, i got exception message as

23-Nov-2021 00:45:56.142 ???? [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.sun.proxy.$Proxy6]
java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy6.contextInitialized(Unknown Source)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4766)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5230)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.shielded.container.internal.proxy.ContextClassLoaderInvocationHandler.invoke(ContextClassLoaderInvocationHandler.java:43)
at com.liferay.shielded.container.internal.proxy.EventListenerInvocationHandler.invoke(EventListenerInvocationHandler.java:64)
... 42 more
Caused by: java.lang.NoClassDefFoundError: com/liferay/portal/kernel/dao/db/BaseDBFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2478)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:870)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1371)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
at com.liferay.shielded.container.internal.ShieldedContainerClassLoader.findClass(ShieldedContainerClassLoader.java:79)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:370)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
at com.liferay.portal.dao.db.DBManagerImpl.(DBManagerImpl.java:63)
at com.liferay.portal.util.InitUtil.init(InitUtil.java:170)
at com.liferay.portal.spring.context.PortalContextLoaderListener.contextInitialized(PortalContextLoaderListener.java:218)
... 48 more
Caused by: java.lang.ClassNotFoundException: com.liferay.portal.kernel.dao.db.BaseDBFactory
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1407)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1215)
... 66 more
23-Nov-2021 00:45:56.158 ???? [main] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
23-Nov-2021 00:45:56.159 ???? [main] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
2021-11-23 00:45:56.167 ERROR [main][PortalContextLoaderListener:69] java.lang.NullPointerException
java.lang.NullPointerException: null
at com.liferay.portal.kernel.servlet.DirectServletRegistryUtil.clearServlets(DirectServletRegistryUtil.java:25) ~[portal-kernel.jar:?]
at com.liferay.portal.spring.context.PortalContextLoaderListener.contextDestroyed(PortalContextLoaderListener.java:133) [portal-impl.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at com.liferay.shielded.container.internal.proxy.ContextClassLoaderInvocationHandler.invoke(ContextClassLoaderInvocationHandler.java:43) [com.liferay.shielded.container.impl.jar:?]
at com.liferay.shielded.container.internal.proxy.EventListenerInvocationHandler.invoke(EventListenerInvocationHandler.java:64) [com.liferay.shielded.container.impl.jar:?]
at com.sun.proxy.$Proxy6.contextDestroyed(Unknown Source) [?:?]
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4814) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5477) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889) [catalina.jar:9.0.53]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_202]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.53]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [?:1.8.0_202]
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:9.0.53]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.53]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [?:1.8.0_202]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina.jar:9.0.53]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.53]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap.jar:9.0.53]
2021-11-23 00:45:56.183 ERROR [main][PortalContextLoaderListener:69] java.lang.NullPointerException
java.lang.NullPointerException: null
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.reset(HotDeployUtil.java:50) ~[portal-kernel.jar:?]
at com.liferay.portal.spring.context.PortalContextLoaderListener.contextDestroyed(PortalContextLoaderListener.java:140) [portal-impl.jar:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at com.liferay.shielded.container.internal.proxy.ContextClassLoaderInvocationHandler.invoke(ContextClassLoaderInvocationHandler.java:43) [com.liferay.shielded.container.impl.jar:?]
at com.liferay.shielded.container.internal.proxy.EventListenerInvocationHandler.invoke(EventListenerInvocationHandler.java:64) [com.liferay.shielded.container.impl.jar:?]
at com.sun.proxy.$Proxy6.contextDestroyed(Unknown Source) [?:?]
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4814) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5477) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889) [catalina.jar:9.0.53]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_202]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.53]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112) [?:1.8.0_202]
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618) [catalina.jar:9.0.53]
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396) [catalina.jar:9.0.53]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386) [catalina.jar:9.0.53]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_202]
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75) [tomcat-util.jar:9.0.53]
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134) [?:1.8.0_202]
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927) [catalina.jar:9.0.53]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) [catalina.jar:9.0.53]
at org.apache.catalina.startup.Catalina.start(Catalina.java:772) [catalina.jar:9.0.53]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345) [bootstrap.jar:9.0.53]
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476) [bootstrap.jar:9.0.53]
2021-11-23 00:45:56.183 ERROR [main][PortalBeanLocatorUtil:66] BeanLocator is null
23-Nov-2021 00:45:56.183 ???? [main] org.apache.catalina.core.StandardContext.listenerStop Exception sending context destroyed event to listener instance of class [com.sun.proxy.$Proxy6]
java.lang.reflect.UndeclaredThrowableException
at com.sun.proxy.$Proxy6.contextDestroyed(Unknown Source)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4814)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5477)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:257)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:187)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:690)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1889)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:583)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1618)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:319)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:946)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:835)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:919)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:263)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:432)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:927)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:345)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:476)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.liferay.shielded.container.internal.proxy.ContextClassLoaderInvocationHandler.invoke(ContextClassLoaderInvocationHandler.java:43)
at com.liferay.shielded.container.internal.proxy.EventListenerInvocationHandler.invoke(EventListenerInvocationHandler.java:64)
... 43 more
Caused by: com.liferay.portal.kernel.bean.BeanLocatorException: BeanLocator is not set
at com.liferay.portal.kernel.bean.PortalBeanLocatorUtil.locate(PortalBeanLocatorUtil.java:68)
at com.liferay.portal.spring.context.PortalContextLoaderListener.closeDataSource(PortalContextLoaderListener.java:385)
at com.liferay.portal.spring.context.PortalContextLoaderListener.contextDestroyed(PortalContextLoaderListener.java:153)
... 49 more

Liferay 7.1 GA2/3

Hi im trying to use your module for giving Oracle support to my liferay. But GA2/3 versions are not supported.

What can I do to modify your module to make it support that versions.

Thank you.

db_upgrade using Microsoft SQL failing

Hello!

Has anyone successfully upgrade his liferay database using the provided db_upgrade.bat in combination with mssql-drivers? I tried today and I am failing right now. I am getting the following error.

Screenshot 2022-06-15 at 16 22 09

If there is anybody out there who did this successfully or anybody has any idea how I could fix this please reach out to me.

Sincerelly,

RK

Liferay 7.2.1 GA2 mssql driver support

Your liferay all-in-one-support driver states support up to Liferay 7.2 GA1. Do you have a driver that is compatible with Liferay 7.2.1 GA2. The following is working for me, but I would like to upgrade to 7.2.1 GA2. Thank you.

Current Working Environment:
Liferay 7.2.0 GA1
MSSQL 2014
Java 1.8.0_241
/tomcat/lib/ext/sqldbc42.jar
/tomcat/webapps/ROOT/WEB-INF/lib/liferay-portal-sqlserverdb-support-1.0-SNAPSHOT.jar

Oracle 18c migration from 7.4.3-GA3 to 7.4.3.18-GA18 triggers ORA-22858

Looks like ORA-22858 is no longer trigering recriation of tables and instead throws exception and stops upgrade.

2022-04-05 18:06:20.387 INFO  [main][UpgradeProcess:114] Upgrading com.liferay.portal.upgrade.v7_4_x.UpgradeLayout
2022-04-05 18:06:20.448 INFO  [main][UpgradeProcess:129] Failed upgrade process com.liferay.portal.upgrade.v7_4_x.UpgradeLayout in 61 ms
2022-04-05 18:06:20.449 INFO  [main][PortalUpgradeProcess:161] Failed upgrade process com.liferay.portal.upgrade.PortalUpgradeProcess in 2048 ms
2022-04-05 18:06:20.470 ERROR [main][DBUpgrader:79] null
com.liferay.portal.kernel.log.LogSanitizerException: com.liferay.portal.kernel.upgrade.UpgradeException: com.liferay.portal.kernel.upgrade.UpgradeException: java.sql.SQLException: ORA-22858: invalid alteration of datatype_ [Sanitized]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.upgrade(PortalUpgradeProcess.java:155) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.upgrade.util.UpgradeProcessUtil._upgradeProcess(UpgradeProcessUtil.java:173) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.util.UpgradeProcessUtil.upgradeProcess(UpgradeProcessUtil.java:136) ~[portal-kernel.jar:?]
        at com.liferay.portal.events.StartupHelperUtil.upgradeProcess(StartupHelperUtil.java:154) ~[portal-impl.jar:?]
        at com.liferay.portal.tools.DBUpgrader._upgradePortal(DBUpgrader.java:386) ~[portal-impl.jar:?]
        at com.liferay.portal.tools.DBUpgrader.upgrade(DBUpgrader.java:162) ~[portal-impl.jar:?]
        at com.liferay.portal.tools.DBUpgrader.upgrade(DBUpgrader.java:154) ~[portal-impl.jar:?]
        at com.liferay.portal.tools.DBUpgrader.main(DBUpgrader.java:130) [portal-impl.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_312]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_312]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_312]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_312]
        at com.liferay.portal.tools.db.upgrade.client.DBUpgraderLauncher.main(DBUpgraderLauncher.java:54) [com.liferay.portal.tools.db.upgrade.client.jar:?]
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: com.liferay.portal.kernel.upgrade.UpgradeException: java.sql.SQLException: ORA-22858: invalid alteration of datatype_ [Sanitized]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:123) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:145) ~[portal-kernel.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.doUpgrade(PortalUpgradeProcess.java:176) ~[portal-impl.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.upgrade(PortalUpgradeProcess.java:150) ~[portal-impl.jar:?]
        ... 12 more
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: java.sql.SQLException: ORA-22858: invalid alteration of datatype_ [Sanitized]
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:494) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:540) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:256) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:887) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1678) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeLargeUpdate(OracleStatement.java:1643) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1630) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:282) ~[ojdbc8.jar:18.15.0.0.0]
        at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:117) ~[hikaricp.jar:?]
        at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java) ~[hikaricp.jar:?]
        at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:481) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:447) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.alterColumnType(BaseDB.java:213) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.dao.db.BaseDBProcess.alterColumnType(BaseDBProcess.java:203) ~[portal-kernel.jar:?]
        at com.liferay.portal.upgrade.v7_4_x.UpgradeLayout.doUpgrade(UpgradeLayout.java:29) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.lambda$upgrade$0(UpgradeProcess.java:117) ~[portal-kernel.jar:?]
        at com.liferay.portal.db.partition.DBPartitionUtil.forEachCompanyId(DBPartitionUtil.java:118) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.process(BaseDB.java:424) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.dao.db.BaseDBProcess.process(BaseDBProcess.java:307) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:104) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:145) ~[portal-kernel.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.doUpgrade(PortalUpgradeProcess.java:176) ~[portal-impl.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.upgrade(PortalUpgradeProcess.java:150) ~[portal-impl.jar:?]
        ... 12 more
Caused by: com.liferay.portal.kernel.log.LogSanitizerException: Error : 22858, Position : 26, Sql = alter table Layout modify title clob, OriginalSql = alter table Layout modify title clob, Error Msg = ORA-22858: invalid alteration of datatype_ [Sanitized]
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:498) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIoer11.processError(T4CTTIoer11.java:446) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1052) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:540) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:256) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:610) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:213) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:37) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:887) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1136) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1678) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeLargeUpdate(OracleStatement.java:1643) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1630) ~[ojdbc8.jar:18.15.0.0.0]
        at oracle.jdbc.driver.OracleStatementWrapper.executeUpdate(OracleStatementWrapper.java:282) ~[ojdbc8.jar:18.15.0.0.0]
        at com.zaxxer.hikari.pool.ProxyStatement.executeUpdate(ProxyStatement.java:117) ~[hikaricp.jar:?]
        at com.zaxxer.hikari.pool.HikariProxyStatement.executeUpdate(HikariProxyStatement.java) ~[hikaricp.jar:?]
        at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:481) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.runSQL(BaseDB.java:447) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.alterColumnType(BaseDB.java:213) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.dao.db.BaseDBProcess.alterColumnType(BaseDBProcess.java:203) ~[portal-kernel.jar:?]
        at com.liferay.portal.upgrade.v7_4_x.UpgradeLayout.doUpgrade(UpgradeLayout.java:29) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.lambda$upgrade$0(UpgradeProcess.java:117) ~[portal-kernel.jar:?]
        at com.liferay.portal.db.partition.DBPartitionUtil.forEachCompanyId(DBPartitionUtil.java:118) ~[portal-impl.jar:?]
        at com.liferay.portal.dao.db.BaseDB.process(BaseDB.java:424) ~[portal-impl.jar:?]
        at com.liferay.portal.kernel.dao.db.BaseDBProcess.process(BaseDBProcess.java:307) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:104) ~[portal-kernel.jar:?]
        at com.liferay.portal.kernel.upgrade.UpgradeProcess.upgrade(UpgradeProcess.java:145) ~[portal-kernel.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.doUpgrade(PortalUpgradeProcess.java:176) ~[portal-impl.jar:?]
        at com.liferay.portal.upgrade.PortalUpgradeProcess.upgrade(PortalUpgradeProcess.java:150) ~[portal-impl.jar:?]
        ... 12 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.