Upgrade from 4.x to 4.4

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

Pre-requisites

  • Stop all cluster Services (Loader and Analytics) using the Cluster Management Console (CMC).
  • Stop all Incorta nodes using the command <incorta_home>/IncortaNode/stopNode.sh on each Incorta server (clusters will have an Incorta node agent running on each server in the cluster).
  • Stop the CMC using the command /cmc/stop-cmc.sh.
  • Stop all remaining processes you use, for example:

    • Zookeeper
    • Derby
    • Spark
  • For Windows users, see Critical prerequisites for 4.3+ Windows installation/upgrade.
  • If you use an Oracle database, run the following command to detect if you have two users in your Oracle metadata. If you do, you will be prompted to ender the DDL user password: <CMC_installation_path>/tmt/tmt.sh -clnm <cluster_name> --upgrade-metadata.

Upgrade Steps for a Typical Installation (Single Server)

  1. Run the installer. In the unzipped 4.4 Incorta folder, run the command: ./install.
  2. Accept the license.
  3. Select the Installation Type: “2- Upgrade”
  4. Select the Installation Set: “1- Typical” for a single server.
  5. Enter the Installation Absolute Path, for the Incorta instance you need to upgrade, then confirm with (Y).
  6. Configure Tomcat manager, if needed (not recommended).
  7. Run the installation.
  8. Update the Incorta metadata by running the following command from the <cmc_installation_path>/tmt directory: ./tmt.sh -clnm <cluster_name> -umd.
  9. Start any services you stopped, including Zookeeper, Derby, and Spark.
  10. Start the CMC.
  11. Start the loader service.

Upgrade 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 following commands:

cd <Incorta_Installation_Home>/cmc/tmt

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

  • 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)

Start the Loader Service

(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.

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.

Starting with 4.4 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)

Upgrade Steps for a Custom Installation (Multiple Servers)

  1. Run the installer. In the unzipped 4.4 Incorta folder, run the command: ./install.
  2. Accept the license.
  3. Select the Installation Type: “2- Upgrade”
  4. Select the Installation Set: “2- Custom” for mutliple servers.
  5. Enter the Installation Absolute Path, for the Incorta instance you need to upgrade, then confirm with (Y).
  6. Configure Tomcat manager, if needed (not recommended).
  7. Run the installation.
  8. On the “Start CMC” option screen, select 3)- Finish without starting CMC. Select this option for all servers except the one where CMC was originally installed.
  9. For the current server, select 1 - Start CMC.
  10. Start any services you stopped, including Zookeeper, Derby, and Spark.
  11. Upgrade the Incorta Metadata
  12. Start the loader service.

Notes

  • Upgrading the Loader and Analytics Services takes place when services are started. Expect a longer startup time.
  • Starting with v4.4, 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.
  • To use a different version of Oracle DB, update the JDBC driver in the following two locations: <CMCInstallationPath>/cmc/lib and <IncortaNodeInstallationPath>/IncortaNode/runtime/lib. See the Oracle documentation for your database version for the recommended JDBC version.
  • If you copied or installed the bundled version of Spark to its own node during the original v4.x installation, you do not need to upgrade Spark.
  • If using Oracle 11g for Metadata database then you may experience the following error: “ORA-01882: timezone region not found”. Oracle 11g and the ojdbc7.jar added in the upgrade to R4.4 do not work together. To fix this issue, update the driver in the following two locations: <CMCInstallationPath>/cmc/lib and <IncortaNodeInstallationPath>/IncortaNode/runtime/lib.
  • In v4.4 engine.properties files for Loader and Analytics, the CPU Cores Utilization parameter engine.cpu_cores_utilization now has the following default values:
Min Max Default Total Min Total Max
Single Node Installation Loader 25% 75% 25% 50% 100%
Analytics 25% 75% 25% 50% 100%
Multiple Node Installation Loader 25% 95% 50% N/A N/A
Analytics 25% 95% 75% N/A N/A

© Incorta, Inc. All Rights Reserved.