Install multiple instances of Maximo 7 using WebSphere

The previous versions of Maximo all came with an installation guide that helped you install a Maximo application server for production purposes and also for testing or development purposes.  In most cases, this is how most of our applications are setup.  Unfortunately, Maximo 7 does not come with any demo data or even an installation guide for installing a MaxTest instance.  The Maximo install guide does show you how to install one instance on one server, but some of you may want to install a MaxTest application server as well as your MaxProd application server.  This guide will show you just how to add a MaxTest Maximo application using WebSphere.  It also assumes that you have successfully completed the installation for your Maximo 7 production application.

Step 1:

Create a backup copy of your Maximo production database.  I will assume most of you know how to do that, but if you don’t, you can find a guide for backing up a SQL Server database here or an Oracle database here.  After you have created a backup, restore the database and name it MaxTest.

Step 2:

Moving on to WebSphere, log into the admin console.  The default username is now ‘wasadmin’.  Expand ‘Servers’ and click on ‘Application Servers’.  There you should find one instance called ‘MXServer’ which is the one you already installed.  Click on ‘New’ to create a new app server.  Enter ‘MXTest’ as your server name and hit ‘Next’.  Accept the default template and check the box for ‘Generate Unique Ports’.  Finish and confirm your new app server.  Finally save directly to your master configuration.

Step 3:

Click on the ‘MXTest’ app server.  Under ‘Server Infrastructure’, expand ‘Java and Process Management’ and click on ‘Process Definition’.  Click on ‘Java Virtual Machine’ under the Additional Properties.  Here you need to set the Initial Heap Size to 512 and the Maximum Heap Size to 1024.  Don’t forget to save to master.

Step 4:

Now we need to know what our new application server is using for ports.  Go back to your Application Server list and click on ‘MXTest’, expand ‘Ports’ and make note of the ports numbers for the four port names that begin with ‘WC’.  The port numbers should look like this:

Maximo 7 Instance Ports
Maximo 7 Instance Ports

These port number were auto generated for you in step 2.

Step 5:

Now we need to create a new virtual host.  Expand ‘Environment’ in the left pane and click on ‘Virtual Hosts’.  Here you will see a list of hosts such as maximo_host, admin_host, etc.  Click on ‘New’ and name it ‘maxtest_host’ and click on Apply.  Now click on ‘Host Aliases’.  This list should be empty, and we will be creating 5 new aliases.  Click on ‘New’ and accept the default port 80 and click ‘Apply’.  Next, create four more ports that look like the following:

Maximo 7 Host Aliases
Maximo 7 Host Aliases

These port numbers are from step 4.

Step 6:

Go to your maximo installation directory, the default is “C:/ibm/SMP”.  In there, you will find a maximo directory.  Copy that entire directory and rename it ‘maxtest’.  Once you’ve done that, go to “C:/ibm/SMP/maxtest/applications/maximo/META-INF” folder and open the ‘application.xml’ file.  Do a search for

<context-root>/maximo</context-root>

and change it to

<context-root>/maxtest</context-root>

This will be use in the url for connecting to your new instance.  For example, the url for connecting to your maximo test application server will be

http://servername/maxtest

Next, edit the same property in the ‘deployment-application.xml’ as well.  Save both files.

Step 7:

Open your maximo.properties file found at ‘C:/ibm/SMP/maxtest/applications/maximo/properties’.  Change the ‘database’ to the name of your newly created SQL Server database.  The database property should look something like this:

database=MAXTEST&language=us_english&nowarnings=true&mars=false

Next change the ‘mxe.registry.port’ property.  Just to make it simple, just add one to the existing value.  Finally, the last property to modify is ‘mxe.int.webappurl’.  Change it so look like so:

mxe.int.webappurl=http://{servername}:9081/meaweb
mxe.int.globaldir=MaxTest

Step 8:

The last step is to rebuild and deploy your maximo ear files for the newly created maxtest application server.  After you are done that, you can access your maximo test environment at ‘http://servername/maxtest’

When you are deploying a new enterprise application for your second instance, make sure you name your application ‘MAXTEST’.

Did You Know...

As Maximo Experts, we have developed several add-on products for Maximo that mobilize the work force, simplifies assignments, provides ad-hoc reporting capabilities and facilitates the seamless integration of Service Requests into Maximo.

Check out our products by clicking on the following links: EZMaxMobile, EZMaxPlanner and EZMaxRequest.

Find Out More

62 thoughts on “Install multiple instances of Maximo 7 using WebSphere

  1. Thanks for this information. We’ve been puzzling how we were going to bring up a few different development environments without requesting additional servers.

  2. Long live Maxiotimes. I got it working with IBM WebSpeher and Oracle 10g combination. I followed step by step and bang, it worked. I owe you a big thank you! God Bless you.

  3. Worked great for our 7.1 MAM and TSRM. Here are some additional cleanup steps to look at for the database you copied. We used our preprod environ (cluster for ui, cluster for mea, AD authenticated, file mounts for attached docs) copied to 2nd Dev environ (no clusters, single app node, AD authenticated, no file mounts for attached docs).
    Update these values in maxpropvalue table to match your new environment. You can do some thru System Properties app, some thru database update.
    maxpropvalue.propname =’mxe.doclink.doctypes.defpath’
    maxpropvalue.propname =’mxe.doclink.path01′
    maxpropvalue.propname =’mxe.LDAPGroupMgmt’
    maxpropvalue.propname =’mxe.logging.rootfolder’
    maxpropvalue.propname =’mxe.report.birt.disablequeuemanager’
    maxpropvalue.propname =’Database.SQL.DatabaseName’
    maxpropvalue.propname =’Database.SQL.ServerHostName’
    maxpropvalue.propname =’Database.SQL.ServerPort’
    maxpropvalue.propname =’Maximo.InstallLocation’
    maxpropvalue.propname =’mxe.db.url’
    maxpropvalue.propname =’mxe.int.globaldir’
    maxpropvalue.propname =’WAS.CellName’
    maxpropvalue.propname =’WAS.DeploymentManagerHostName’
    maxpropvalue.propname =’WAS.NodeName’
    maxpropvalue.propname =’WAS.VirtualHost’
    maxpropvalue.propname =’WAS.WebServerHostName’

  4. hi..im trying to create..the suggested instance……still..unsuccessful….by the way im upgrading from maximo 4.01 to 7.1…anyother suggestions….i was given to understand, for the actual solution, I must subscribe…kindly comment. thks

  5. In Step 7 you change the name of the database to MAXTEST in the maximo.properties file, but what about the mxe.name=MXServer. doesn’t that need to be changed to mxe.name=MXTest since an Application Server called MXTest was created?

    1. Yes, those steps are actually for Maximo 6 but the same reasoning applies to Maximo 7. You should create separate JMS queues and buses for each instance of Maximo you create.

  6. Regarding STEP 7, for maximo 7.1 i am unable to change the entries for mxe.int.webappurl and mxe.int.globaldir. Kindly elaborate step 7 as the maximo.properties file is encrypted for maximo 7.1. Therefore I request you to please elaborate step 7.

    1. These properties are for integration purposes so you don’t have to modify these values to get multiple instances of maximo working. You can always modify these values after you get your maximo up and running by going into your System Properties.

  7. thanks for the reply. One more thing in step 7, regarding the maximo.properties file, it is encrypted will it be creating any problem while trying to run the second instance. Because when i am trying to run it is giving a system bound exception

  8. i am trying to see if i can build a cluster with 2 production application servers and i need to have 3 JVM’s on each and link it to the Database. Anybody with a step by step guide or some notes, i would appreciate.

  9. This is all great guys, BUT the new created Maximo will not be activated – licensed. This means for example MAM will have the menu of 7 items. Anyone bypassed this ?

  10. oh sorry i just had to authorize the applications for the user. Great it works now, many thanks 🙂

    One question please : If I have 2 Maximo systems within one server and I apply some fix pack for one of them – MAM fix pack for example. How to update the second one ?
    my idea is to backup the deployment engine status before update, apply the fix pack, restore d. engine and start it again. But what else do I have to take care of ?

    thanks very much for any ideas
    Lukas, Czech republic

    1. That’s sounds like a great plan. I have not yet tried that method but I always thought it would work. I have not tried to apply a fix pack on the second instance yet, but if you get it working this way, maybe you can post a tutorial on how to do it. Thanks!

  11. my installation of maximo7.1 with oracle is done properly and i configured demo database too.
    maximo7.1 server is windows 2003.
    oracle(10.0.2) server is windows vista.

    now the problem is my oracle server has crashed n i have no database backup(as it crashed on second day of installation)
    my question is
    1. is it possible if i create new db instance(here is ctginst2) with same name and user(maximo) can i be able to connect with maximo?

    2. and if yes is tht i need to run maxinst command to configure demo db again?

    3 or is anybody know how to take backup in safemode?

  12. Create clean instance with the same name. After instance is created you run maximotoolsmaximoencreatemaximoes.sql script which creates maximo user. Then you have to run maxinst to populate your DB maximo schema with new maximo data. Then you will be able to connect again to Maximo appl. Restart of application is of course necessary.

  13. I have followed the instructions, synchronized the nodes and generated and propogated the webserver plugins. Both MXtest and Maxtest are running. When I go to the browser and type the url I get the HTTP 500 internal error. Maximo login page does not display. Is there anything that I am missing? Do I need to define a webserver2?

  14. hi at all,
    i have a question about this procedure. We need to know if implementing this solution could be appear performances problmes. this because we’ll build twoo aplication server on the same Phisical Server, and actually this is a Production system. About this, someone could indicate us, if this configuration can be installed on twoo different server, in order to prevent perfomance problems.
    Many tks Pasquale

  15. CHON,

    I am struggling to move maximo 7.1 from one environment to another one I have copied the application folder from source to target modified props file, database restored sucessfully, ear built sucessfull its just i cant get the steps and list of files i need to change after migrating in MAM 7.

    i am getting following error when deploying
    the ear files in weblogic orginally at source running on websphere.

    An error occurred during activation of changes, please see the log for details.

    Exception preparing module: EJBModule(mboejb.jar) Unable to deploy EJB: JMSContQueueProcessor-2 from mboejb.jar: [EJB:011113]Error: The Message Driven Bean ‘JMSContQueueProcessor-2(Application: maxuat, EJBComponent: mboejb.jar)’, does not have a message destination configured. The message destination must be set using a message-destination-link, destination-resource-link, destination-jndi-name or a resource-adapter-jndi-name.

    Substituted for missing class [EJB – 11113]Error: The Message Driven Bean ‘JMSContQueueProcessor-2(Application: maxuat, EJBComponent: mboejb.jar)’, does not have a message destination configured. The message destination must be set using a message-destination-link, destination-resource-link, destination-jndi-name or a resource-adapter-jndi-name.

    kinldy reply

    Thanks
    Amad

    1. I think there are too many variables when changing from WebSphere to WebLogic. I have not done it myself and not really sure what you can do. When I migrate from one system to another, I usually deploy ears on the same web application and I only move the database. Does anyone else have any suggestions?

  16. well Finally i resolved myself steps are following

    Manual Migration Process for Maximo 7.1

    Step 1
    Close the database, application server and any other related application or files from the target system.( If possible)

    Step 2
    Copy the the folder named maximo ( folder containing the whole maximo Application) from the source system to the target system.
    Step 3
    Restore the database from the backup taken earlier from the source system and restore it by either making a new database or replace an exististing maximo database.

    Step 4
    Test the integrity of the database.

    Step 5
    copy or replace the maximo source folder into the traget drive.

    Step 6
    Make appropriate changes to maximo .props file like localhost name, database name, instance, id and password.

    Additional files to look on for appropriate changes
    Web.xml
    Doclinks. properties
    other custom props file
    Ejb-jar.xml

    Step 7
    Build the ear file and redoply the solution in weblogic or Websphere.

  17. Hi,

    Instead of copying the SMP folder to create second instance, shall I directly deploy just maximo.ear from another environment by doing the changes as mentioned in this tutorial to create one more instance. I meant changing the web.xml etc. and in websphere- creating server and configuration. Would it work Chon??

    1. Yeah it may work but the whole point of making another instance is so that it talks to a different database. I mean I guess you could just modify the Maximo.properties file and build ear then deploy, but I think that would defeat the purpose of a second instance.

  18. Thnks Chon. Found it really useful.

    I just experimented to setup single websphere instance for many dev. box. Everything successfully deployed. But when I access the url http://localhost:9081/maxtest, I am getting following message in SystemOut.log

    “[3/15/10 15:32:53:411 IST] 00000031 WebContainer E SRVE0255E: A WebGroup/Virtual Host to handle /maxtest has not been defined.” and getting HTTP:404 Page note found error.

    Any suggestions welcomed.

  19. quick questions:
    in Step 7, if we don’t have ‘mxe.int.webappurl’ in our maximo.properties file, do we add it? also, do we change mxe.name=MXServer to mxe.name=MXTest?

  20. Nice article. But what will happen when when you need to upgrade this environment.

    To create environments that can be upgraded later … you must use complete installation process of Maximo, plus for each installed environment there must be a backup of settings for the IBM ADE Service. I think on IBM Maximo site there is an article how to do this.

  21. Valuable article ! Speaking of which , if your business is searching for a a form , my wife used a blank version here http://goo.gl/ELBFHZ

Leave a Reply