Pulse DXC-Cloud Migration

Hi,

We are doing Pulse Migration from on premise to Azure server and following this technote (https://code.cubewise.com/docs/migrating-pulse-to-a-new-server)

We are getting below error while trying to update the Pulse Server Name using the utility script under the Pulse directory (G:\Program Files\Pulse for TM1\utils\ServerNameUpdate.bat),

Error:

G:\Program Files\Pulse for TM1\utils>ServerNameUpdate.bat goamsweb130 goaazrdb334

G:\Program Files\Pulse for TM1\utils>echo off
# ------------------------------- CUBEWISE SOFTWARE ------------------------------- #
Updating Databases on: G:\Program Files\Pulse for TM1\db
Original ServerName : goamsweb130
Changing the ServerName to: goaazrdb334
Start time: Tue Nov 24 07:32:54 EST 2020
***** Starting Server update *****
Error when updating the Pulse DB
org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-177]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
        at org.h2.message.DbException.get(DbException.java:178)
        at org.h2.message.DbException.get(DbException.java:154)
        at org.h2.message.DbException.get(DbException.java:143)
        at org.h2.engine.Engine.validateUserAndPassword(Engine.java:316)
        at org.h2.engine.Engine.createSessionAndValidate(Engine.java:150)
        at org.h2.engine.Engine.createSession(Engine.java:125)
        at org.h2.engine.Engine.createSession(Engine.java:27)
        at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:331)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107)
        at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91)
        at org.h2.Driver.connect(Driver.java:74)
        at java.sql.DriverManager.getConnection(DriverManager.java:664)
        at java.sql.DriverManager.getConnection(DriverManager.java:247)
        at com.cubewise.pulse.db.update.PulseDataBaseConnection.getDocsConnection(PulseDataBaseConnection.java:44)
        at com.cubewise.pulse.db.update.PulseDataBaseConnection.<init>(PulseDataBaseConnection.java:38)
        at com.cubewise.pulse.db.update.ServerNameUpdate.run(ServerNameUpdate.java:74)
        at com.cubewise.pulse.db.update.ServerNameUpdate.run(ServerNameUpdate.java:54)
        at com.cubewise.pulse.db.updaterunner.DatabaseUpdate.main(DatabaseUpdate.java:50)

What username/password is this batch file tryign to use? Is this the service names?
FYI - The two machines are running under two different service accounts.

Hi @anu251288,

It is probably quicker and safer to use the ServerNameOverride parameter from the Pulse.cfg so you don’t have to update the Pulse database. More information in this article:

Cheers,

Vincent

Thanks @Vincent for your quick response. However, the old server will be decomissioned, so I don’t think the connection from the new Azure to old on premise server will work using the ServerNameOverride parameter?

Hi @anu251288,

There won’t be any connection between the new Pulse server and the old one.

After copying the database from the old server to the new Pulse server. You will need to set ServerNameOverride=OLDSERVERNAME to tell the new Pulse server to use the old server name (instead of using the new server name) when querying the database (which would have been copied into the new server). It is a trick to avoid renaming the old server name into the new server name in the database.

Using the ServerNameOverride can be a bit confusing. I would recommend you to have a second look at the help article, there is an example when migrating Pulse from a server DEV1 to a new server DEV2.

Cheers,

Vincent

Hi @Vincent,

I tried all the steps mentioned in the tech note, but still getting below errors in Pulse.log after turning up the Pulse services,

FYI, we are in 5.8.1, both in old and new server.

2020-11-25 06:20:41	INFO 	InitContextListener	Pulse Version is: 5.8.1
2020-11-25 06:20:41	INFO 	InitContextListener	Pulse Listener configured on port 8093(https)
2020-11-25 06:20:41	INFO 	ServerHelper	Overriding server name with : goamsweb130
2020-11-25 06:20:41	INFO 	ServerHelper	Server name is: goamsweb130
2020-11-25 06:20:41	INFO 	ServerHelper	Working Directory is: G:\Program Files\Pulse for TM1
2020-11-25 06:20:41	INFO 	InitContextListener	Setting SSL certificate trust
2020-11-25 06:20:41	INFO 	InitContextListener	Connecting to the database with the default password
2020-11-25 06:20:43	WARN 	InitContextListener	Cannot connect to database with new password
2020-11-25 06:20:43	INFO 	InitContextListener	Connecting to the database with the legacy password
2020-11-25 06:20:44	WARN 	InitContextListener	Cannot connect to the h2 database with legacy password
2020-11-25 06:20:44	INFO 	InitContextListener	Connecting to the database with the physical server password
2020-11-25 06:20:46	FATAL	InitContextListener	Cannot connect to database with real server name
org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-177]
	at org.h2.message.DbException.getJdbcSQLException(DbException.java:344)
	at org.h2.message.DbException.get(DbException.java:178)
	at org.h2.message.DbException.get(DbException.java:154)
	at org.h2.message.DbException.get(DbException.java:143)
	at org.h2.engine.Engine.validateUserAndPassword(Engine.java:316)
	at org.h2.engine.Engine.createSessionAndValidate(Engine.java:150)
	at org.h2.engine.Engine.createSession(Engine.java:125)
	at org.h2.engine.Engine.createSession(Engine.java:27)
	at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:331)
	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:107)
	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:91)
	at org.h2.Driver.connect(Driver.java:74)
	at java.sql.DriverManager.getConnection(DriverManager.java:664)
	at java.sql.DriverManager.getConnection(DriverManager.java:247)
	at com.cubewise.servlets.InitContextListener.contextInitialized(SourceFile:221)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5157)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5680)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1018)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:994)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
	at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2039)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Hi @anu251288,

We can see in the logs that Pulse can’t connect with the h2 database. Did you replace the new h2 with the old one (the one coming from the old server)?

It might be more convenient to create a ticket on the support platform (https://support.cubewise.com/code/pulse/issues) so we can investigate the issue in more depth. Please do not forget to attach all the information required (you can see all the information we need by using the template Bug when creating the ticket).

Cheers,

Vincent

Hi @Vincent,

Additionally, we are also getting below errors in the server.log. So, we have different folder structure for the TM1 instances in DXC and Azure, how can we overcome this challenge? Do we have any setting to override the old folder structure with new one?

There is another complexity, where all UAT, STG and PRD instances were in same old server in DXC. Now in Azure, the UAT and STG TM1 instances are in one box and PRD in other. And so, we are getting these errors,

2020-11-25 04:30:31.5074	Warn	Cache	The path for service uat-planner-fy20 doesn't exist: p:\stgdata\tm1\uat\planner-fy20	
2020-11-25 04:30:31.5230	Info	TomcatHelper	file C:\Program Files\ibm\cognos\tm1_64\bin64\..\webapps\tm1web\pulse.js is currently the latest version 5.8.1	
2020-11-25 04:30:31.5230	Info	TomcatHelper	file C:\Program Files\ibm\cognos\tm1_64\bin64\..\webapps\tm1web\pulseLog.jsp is currently the latest version 5.8.1	
2020-11-25 04:31:32.4062	Warn	Cache	The path for service uat-planner-fy20 doesn't exist: p:\stgdata\tm1\uat\planner-fy20	

But, when we will need to split the UAT and STG Pulse data into UAT Azure and PRD Pulse data into PRD Azure.

yes, we replaced the new h2 DB with old one. I will create a ticket for this to look into the matter further.

Thanks!