Search This Blog

Wednesday, April 19, 2017

Maximo SAAS on AWS–Chapter 104


In our last part of the series on Maximo installation on AWS we saw how Maximo was installed on EC2 instance hosting its on SQL server and WAS ND with vertical clustering only.
In This tutorial we will be adding a horizontal clustering using another EC2 to WASND and we will be utilizing the Amazons RDS database service to move our database also to scaling mode.

image
Lets get started.
First of all lets get the RDS instance up and running.
image


Create a new RDS instance and make sure you select 2014 version only for SQL Server, 2016 is not compatible with Maximo and you might face an error if you try to use 2016. Error shown below.

Error:
com.microsoft.sqlserver.jdbc.SQLServerException: Cannot open database "maxdb76" requested by the login. The login failed.

Please make sure your instance is publically accessible, by doing telnet.
> telnet  maxdb76.amazonendpoint  1433

If not a success, make sure your security group is configured to allow inbound traffic, for now we will allow all the traffic to our RDS instance.

Lets see how to configure the security group:
Go to instance details page and on right hand side locate your security group, you would have created a new group while creating the RDS instance or you must have chosen the existing one from our Maximo installation.
image

And your inbound and outbound rules should look like below, for now allow all and later restrict inbound to 1433 and from your EC2 instance or your home WLAN.



security group rds aws inbound

oubound rules rds security group aws


Now you should be able to do telnet to the instance, try connecting through the sql management studio or from eclipse.
Make sure you connect to your end point and use 1433 as the port.
DB username and password are for the dbinstance(maxdb76) only which we created during the installation.
If you are able to connect to the server, its time to run the maxinst on the database so that maximo can populate its data on the RDS service.

Please note
Important : At this point we don’t have a database yet, RDS has provided only the instance and the user, we are yet to create a database(maxdb76) and assign maximo as its owner.
Please note that without this step maxinst will fail because it will try to connect to maxdb76 which doesn’t exist, I wasted lot of hours figuring out why I am able to do telnet but maxinst is not able to create the database.

So here comes the database creation part.

Create a database and assign the owner as maximo.
image
image
image

If you face an error like this.
Error:
===================================================
BMXAA6806I - Reading the properties file maximo.properties.
java.lang.Exception: -s and -t Maxinst parameters must both be input for SQL Server
er.


make sure there is no space after command.
> maxinst.bat –sPRIMARY –tPRIMARY –imaxdemo
===================================

Now you can try to do maxinst but after a while it will give read timeout error, at least I got that error. Only half of the tables were updated and later read timeout were there.


The AZURE Tool, the life Saver.

So we have to go back to our Azure tool to write the database to AWS via the BCPData which is generated as scripts and later run on the target database.

Since our EC2 instance where Maximo is installed has 2008 binaries , we will be using 2008 R2 compatible version of this Azure tool.
https://sqlazuremw.codeplex.com/downloads/get/87084

move maximo database to rds
bcp data scripts to aws
azure tool wrote scripts to remote rds
bcpdata scripts done
It gave an error, after wasting lot of time I got to know that, due to some or the other reason my RDS instance was choking from so much of IO so I had to upgrade the hardware for my RDS box.
I selected the
image

an re ran the tool, this time luckily it was a success.
image


We had build the ear in chapter 103 and we can use the same to deploy on the server, please map the EAR to Maximo cluster and web server1 which we created earlier.
Success

maximo installed sucessfully on aws rds was 8.5
Make sure you have assigned proper heap to both the Maximo servers inside the cluster, at least 2 Gb, else it will give core dumps and will fill your hard drive and most important, it will not start.

Lets synchronize with nodes and start the application, make sure all the services are up
  • Dmgr
  • Node
  • Http Server & Admin server ( Check in window services if you don’t see status of HTTP server)
Do a ripple start and check out logs

image

Tail the logs and you should see Maximo connecting to your RDS instance.
Success

image

Now this instance is pure Cloud with EC2 and vertical clustered with Round robin from HTTP plugin and RDS as backend.
In next part of Maximo on AWS series,  we will see the architecture and we will add horizontal clustering to this land scape.
Part 5
Stay tuned and keep reading.
Action Item : Subscribe, recommend and Share !

No comments:

Post a Comment