Upgrade from 4.x to 4.3

After reviewing this guide first, please  follow the steps below to upgrade your Incorta 4.x environment to the latest 4.3 release.

Pre-requisites

  • Cluster Services (Loader and Analytics) are stopped using CMC
  • All Incorta nodes are stopped using <incorta_home>/IncortaNode/stopNode.sh on each Incorta server (clusters will have an Incorta node agent running on each server in the cluster)
  • CMC is stopped using /cmc/stop-cmc.sh
  • For a typical or custom installation make sure that the following processes ( zookeeper, derby, and export-server) are also stopped
  • For Windows users, refer to the KB article Critical prerequisites for 4.3 Windows installation/upgrade.

Upgrade Steps for a Typical Installation (single server)

1. Run the installer

Go to the unzipped 4.3 Incorta folder and run the command:

./install

Press <Enter> and accept the license.

2. Installation type

Select the Installation Type: “2- Upgrade”

3. Installation set

Select the Installation Set: “1- Typical”, in this case

4. Installation path

Enter the Installation Absolute Path, for the Incorta instance you need to upgrade, then confirm with (Y)

5. Tomcat manager

Configure tomcat manager if needed.

Recommendation:

Tomcat manager is not recommended to be installed as it might cause security issues but some customers already have this feature installed.

6. Running the installation

7. Starting CMC

Choose 1 > Start CM

Note: Starting with the 4.3 release, CMC login has Authentication login UI 

8. Upgrade the Incorta Metadata

Incorta metadata must be upgraded manually by the user using the TMT tool. This is a mandatory step for all the metadata types: Derby, MySQL, Oracle 1 user (standard), or Oracle 2 users (separate). To do so, run the below commands:

cd <Incorta_Installation_Home>/cmc/tmt

./tmt.sh -clnm <CLUSTER_NAME> -upgrade-metadata

 Notes:

  • This command will check if it’s a 2 (DML, DDL) user Oracle installation(separate), if so, it will ask the user to enter the DB Owner then will upgrade the metadata using this password
  • In the case of (Oracle 1 user, Derby or MySQL), the command will run without asking the user any further info
  • You can get the cluster name from the CMC UI (note that cluster name is case sensitive)

9. Start the Loader service first (Configure the Loader HTTP and HTTP redirect Port )

Starting with v4.3, the Loader service has the following two new properties HTTP Port and HTTP redirect Port (default 8081 and 8444),they are added by the installer in the Loader Service catalina.properties file. Update the Loader Service with valid HTTP ports from the CMC UI after checking with the system admin for the possible available ports.

Notes:

  1. If the loader service was not updated with an HTTP port and HTTP Redirect Port, the following error will be displayed if you try to start the Loader service: [403] Failed to start service due to invalid HTTP ports.

 

The Loader service’s log file catalina.out will also show the following error stack:

catalina.out

Failed to start service due to invalid HTTP ports.

Code: 4.26
Message
Unable to start service, invalid HTTP ports Service must have valid HTTP ports.

Stacktrace
com.incorta.cmc.exceptions.ApiException: Unable to start service, invalid HTTP ports at com.incorta.cmc.core.NodeManager.manageServices(NodeManager.java:506) at com.incorta.cmc.api.impl.ManageApiServiceImpl.manageServices(ManageApiServiceImpl.java:28) at com.incorta.cmc.api.ManageApi.manageServices(ManageApi.java:89) 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.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:200) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104) at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268) at org.glassfish.jersey.internal.Errors.process(Errors.java:316) at org.glassfish.jersey.internal.Errors.process(Errors.java:298) at org.glassfish.jersey.internal.Errors.process(Errors.java:268) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at com.incorta.cmc.api.ApiOriginFilter.doFilter(ApiOriginFilter.java:16) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748)

Help
Provide valid HTTP ports in service config page.
  1. Starting with 4.3 Loader Service needs an HTTP port to support the memory feature in the CMC yet it is not web accessible (i.e: you can not log in into the loader service)

10. Start the Analytics service after starting the Loader service and Loader service reports status “Started”

B. Custom Installation (multi-server)

1. Follow steps #1-#6 of Typical Installation on each server in your cluster

On the “Start CMC” option screen, select 3)- Finish without starting CMC on all servers except the one where CMC was originally installed. For this server, select 1)- Start CMC.

2. Follow steps #8-#10 of Typical Installation 

Notes

  • The upgrade of Loader and Analytics Services takes place when services are started. Expect a longer startup time.
  • Starting with v4.3, The Oracle JDBC driver used for Metadata database has been upgraded from OJDBC6 to OJDBC7.
  • The supported Oracle DB versions for Metadata database are 12.1 and 12cR1.
  • If you require a different version of Oracle DB update the JDBC driver in the two locations below:

    • <CMCInstallationPath>/cmc/lib
    • <IncortaNodeInstallationPath>/IncortaNode/runtime/lib
  • Consult the Oracle documentation for your database version for the recommended JDBC version
  • If you copied/installed the bundled version of Spark to its own node during the original v4.3 installation, you do not need to upgrade the Spark install.

Known Related Issues

  • If using Oracle 11g for Metadata database then you will hit this issue “ORA-01882: timezone region not found”. This is due to the incompatibility issue between Oracle 11g and the ojdbc7.jar that is added in the upgrade to R4.3. To correct, follow the steps in the Notes section above to update your driver version.
  • In v4.3 engine.properties files for Loader and Analytics, the CPU Cores Utilization parameter “engine.cpucoresutilization” now has these default values


© Incorta, Inc. All Rights Reserved.