Technical Blog Post
Maximo Anywhere Installation - Start to Finish
This document was created for Maximo Anywhere 7.6.1, but can be followed for Maximo Anywhere 7.6.2.
Some time back I wrote a couple start to finish guides, one for LDAP configuration and another for clustering in WebSphere which went very well. Lately I've been working on Maximo Anywhere configurations and have had a lot of requests for more detailed documentation. I've been installing the product since it's first release of 7.5 and things have come a long way and changed quite a bit since then. With the release of Maximo Anywhere 7.6.1, we are now utilizing MobileFirst 7.1 and support all three major platforms of Android, iOS and Windows (not phone). In supporting this product, one thing I've noticed is there isn't much out there in regards to a complete walk through, so I'm hoping this start to finish guide will assist in your configurations of the product. This will be long as I want to ensure we cover all platforms, the application server we will stick with WebSphere ND but do support WebSphere Liberty and Apache Tomcat.
So lets get started and review the components and what we need to download.
Software and Hardware Requirements
Required for all installations
The following can be found under the Maximo Anywhere entitlement on Passport Advantage.
1. IBM Maximo Anywhere V7.6.1 Launchpad for Maximo Asset Management V7.6 Multiplatform Multilingual ( Download the 7.5 installation instead if required )
2. IBM Maximo Anywhere V7.6.1 Mobile First 7.1 Multiplatform Multilingual
3. Java 1.8 JDK (1.7 can be used as well, if using older android build tools.)
* Ensure JAVA_HOME is set as a system variable before starting the installation of Maximo Anywhere.
Required for Android
1. Android Studio and Platform Tools
Required for Windows
1. Microsoft Visual Studio 2013 or 2015
2. The windows applications must be built on a Windows 2012 R2 Server, Windows 8.1 or Windows 10.
3. 2012 C++ Redistributable ( Installed to devices using Maximo Anywhere)
Required for iOS
1. Applications must be built on a MAC OSX 10 or higher workstation
2. xCode (can be downloaded from the app store)
3. Provisioning profile and certificate
For more details system requirements, head over to the following wiki page: Maximo Anywhere 7.6.1 system requirements
Creating the required databases
For Maximo Anywhere\MobileFirst we support 3 database types in production
For the installation to automatically create your databases SSH is required, as you may not always have an SSH server installed, especially when building Windows applications we will go over the manual configuration of the databases. MySQL does not require SSH, the installer will use the driver to make the connection and create the databases, so we will not outline that process here. Below are the schema's required and the statements to create them, WLREPORTS is no longer used in MobileFirst 7.1.
The APPCNTR schema will be used for the MobileFirst Application Center
The WLADMIN schema will be used for the MobileFirst Administration Services.
The WRKLGHT schema will be used for the MobileFirst runtime environment
Creating the Oracle Database and schema's.
1. Create a general purpose database using the Oracle Database Configuration Assistant, I called mine Anywhere.
2. Log in to SQL Plus using your SYS user as SYSDBA and run the following statements.
*2018-01-03* Updated SQL Queries to be correct for Oracle (was missing tablespace)
CREATE USER APPCNTR IDENTIFIED BY APPCNTR DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
GRANT CREATE SESSION, CREATE SEQUENCE, CREATE TABLE TO APPCNTR;
CREATE USER WLADMIN IDENTIFIED BY WLADMIN DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
GRANT CREATE SESSION, CREATE SEQUENCE, CREATE TABLE TO WLADMIN;
CREATE USER WRKLGHT IDENTIFIED BY WRKLGHT DEFAULT TABLESPACE USERS QUOTA UNLIMITED ON USERS;
GRANT CREATE SESSION, CREATE SEQUENCE, CREATE TABLE TO WRKLGHT;
Creating the DB2 Database and schema's.
1. Create a user on the database server for the DB2 database ( will call our user mobilefirst) and add to the DB2USERS group
2. Open DB2CMD and run the following statements to create the database.
DB2 CREATE DATABASE anywhere COLLATE USING SYSTEM PAGESIZE 32768
DB2 CONNECT TO anywhere
DB2 GRANT CONNECT ON DATABASE TO USER mobilefirst
3. Create the required schema's
DB2 CREATE SCHEMA APPCNTR authorization APPCNTR
DB2 CREATE SCHEMA WLADMIN authorization WLADMIN
DB2 CREATE SCHEMA WRKLGHT authorization WRKLGHT
Preparing the Android SDK
Ensure the Android SDK is installed and the SDK Platform is installed via the Android SDK Manager, see below screenshot where I installed API 23.
If using Java 1.7 ensure the latest build tools are uninstall and you are using a version lower then 24 as shown below.
If using Java 1.8 ensure build-tools 24 or higher is installed.
Preparing Microsoft Visual Studio
When installing Visual Studio ensure the Windows 8.1 Phone tools are installed as well, you can do this by choose the custom install option as you see below.
Preparing the installation files
Before we can open the launch pad and install MobileFirst we need to ensure the files are extracted correctly, from Passport Advantage you should of downloaded the packages above, which result in the following zip files.
As you may be use to from installing Maximo 7.6, the first file Max_Anywhere_V761_MAM_V76 contains Maximo Anywhere the launchpad and the main repositories required. MaxAny_MobileFirst_71.zip contains the MobileFirst repository, which must be extracted in to the same folder Max_Anywhere_V761_MAM_V76.zip is extracted to. You can confirm this was done correctly by ensuring that the MobileFirstServer and MobileFirstServerIF files exist in the install folder under your launchpad as seen below.
You should also see the MobileFirstStudio.zip repository in the parent folder as seen below.
Installation of Maximo Anywhere Required Components
Looking at the screenshot above you will see a launchpad64 executable, click on this to open the launchpad. The launchpad will present you with a set of options, the first option we need to use is the 'Install or Update IBM Maximo Asset Management Required Components'. This will install and run the required updates to the core Maximo product including the OSLC components and Anywhere Administration., click Install to start the process as you see below.
You will be prompted after to select your product, this will show the Maximo Anywhere Enablement option, select both boxes as seen below and click on 'Next'.
Select the Installation Package for Maximo 7.6, you will install the components to it's directory. Once selected as you see below click 'Next'
On the final panel click 'Install', once the installation is complete click to launch the 'IBM Tivoli process automation engine configuration utility'. Doing the step at this point allows you to skip the 'Configure IBM Maximo Asset Management Required Components' on the launchpad as they both link out to the ConfigTool in Maximo. Once the Config Tool launches select the option 'Update Database and Build and Deploy Application EAR files' You will see your Anywhere Enablement product shown with the required updates. Click 'Finish' to complete the database updates, build and deploy.
Alternatively if you don't use the configuration tool, you can run the updatedb from ibm\smp\maximo\tools\maximo and then build and deploy your ear files manually. This concludes the enablement portion of the install, we will now move on to the MobileFirst Platform Server Installation.
Installing the IBM MobileFirst Server
The MobileFirst server is required Middleware that will exist between the Maximo Anywhere application and the Maximo server. It consists of the following components.
Application Center : This acts as an application store to allow users to log in and download the apk, ipa or appx files required to run the application on the device.
MobileFirst Server Administration : This is the MobileFirst Administration component, it contains the MobileFirst console application as well as Administration services, all runtimes will be deployed to this server.
Maximo Anywhere Runtime : This is a runtime specific to the Maximo Anywhere application with the Anywhere specific settings defined, multiple runtimes can exist for different applications on a single MobileFirst server. We build the runtime using the Anywhere build scripts.
To start the MobileFirst portion of the install, head back to the main launchpad and click on the 'Install or Update IBM MobileFirst Server'. The right panel will now change and provide the link to install the product, click on 'Install'.
Select the MobileFirst Platform Server box and ensure the Version 7.1.0 is selected. Your screen will have the status of 'Will be installed', I had originally forgotten to take a screenshot of this section so mine shows as installed already.
Like the previous installations, we want to select an install folder for the MobileFirst Platform Server I put this in c:\IBM\MobileFirst_Platform_Server, the directory location does not have to be the exact same. Once pointed to the location you want to install, click 'Next'.
The first install options panel is for Rational Token Licensing, if you select to Activate this option and do not have the license server key or finish the specific rational configuration your runtime will fail to start. Select 'Do not activate the token licensing with the Rational License Key Server'. Click 'Next'
The next installation panel asks whether you want to install the IBM MobileFirst Platform Application Center, this is used as a place to publish your application files for download to the device. The Anywhere build process will upload the APK, IPA and APPX files to the Application Center which can be accessed from the device to download and install the applications. Although the Application Center is not required if you are pushing out your application files with other MDM software or side loading, it is recommended. Select 'Yes' and click on 'Next'.
Our next panel provides a list of options asking for the database vendor being used, for the guide here we used Oracle and created our schema's as we did in the database section at the top of the blogs. If not using Oracle select the database option which applies to you and click 'Next'.
The next screen prompts for your database server properties. You will need to enter the host name and port of your database server as well as point to your JDBC driver for the database. Regardless of the database you are using this screen will appear the same, links to the download site for the JDBC driver is available on the install panel for each database type. Once complete click 'Next'.
The next page will prompt you for additional database properties, which require you to enter the database name as well as the username to access. We created a database called 'anywhere' and under it we created three schema's, the first of which was called APPCNTR. Enter your database created for MobileFirst as well as the schema owner created for the APPCNTR and it's password as seen below. Click 'Next'.
The next couple of panels I've left out of this guide, they will show that the Oracle database already exists (as we created it manually) and to continue on. If you did not create the databases manually you would be prompted with a panel asking for your system user to create the database and then the database creation output.
The next step on the install is to select our application server, we are using WebSphere Network Deployment so the first option is selected, this same option would be used for WebSphere Liberty. If using Apache Tomcat select the second option and proceed to select it's installation folder. There are no extra configuration options in the install panels for Apache Tomcat or Liberty as there is with WAS ND, once your option is selected click 'Next'.
As we are using WebSphere Network Deployment we have to provide information on the profile as well as scopes being used. If using a federated node you also need to select the DMGR profile instead of the APPSRV profile to deploy the applications. At this point you also want to take the scope in to consideration, if your plan is to cluster MobileFirst the scope should be set to the cluster level or higher. If you select the server at the bottom level of the scope the data source configuration will be done at that level, so when adding a new JVM for MobileFirst the data sources would need to be reconfigured to a scope that both JVM's can see. I am doing this on a single JVM, so I selected down to the MobileFirst71 scope.
The username and password for appcenteradmin are stored in WebSphere's file repository, the password for this can be changed any time from there. For more information see the following blog on managing the admin users in WebSphere.
Another thing to note, the MobileFirst71 server is not created by the installer, it must be created in WebSphere beforehand manually. The install also deploys using the default_host virtual host, so ensure your ports are defined in there, others you will manually have to change the virtual host in WebSphere after the deployment.
Select whether you are installing for Single or Multiple Users and click 'Next'
Click 'Install' on the last panel, once finished you will see the following screen with a green check mark if everything was successful.
Installing the MobileFirst Adminstration Component.
Now that the MobileFirst_Platform_Server folder is installed we need to run the Server Configuration Tool to create our Administration components. From the IBM\MobileFirst_Platform_Server\WorklightServer\ConfigurationTool\windows-64 folder click on the 'ServerConfigurationTool.exe'
This will launch the MobileFirst Server configuration application, you will see a list of options. The first one we want to choose is the 'Create MobileFirst Server configuration' option.
After selecting the above option you will be prompted to enter a name for the new configuration, the name itself does not matter, it is referenced as the environment id in case there are multiple deployments of MobileFirst on the same cell. I called mine 'MobileFirst', once defined click 'OK' as seen below.
You will now be brought to a set of configuration panels that look very similar to the ones you went through previously on the initial install. The first panel shows your environment id which is the name we provided when prompted. We did not choose to install with an environment ID as there will only be one deployment of MobileFirst on this server. If you are planning to install multiple deployments, such as sandbox, dev etc you would select to install with the environment ID. This allows the runtime application to distinguish which administration components it should be associated to. It will be preventing issues with devices connecting and showing under the wrong administration configuration.
The next panel defines the context used to access the MobileFirst console, by default this is worklightconsole, we will leave this the same. If you wish to create icons to acccess this console from your desktop you can click the 'Create MobileFirst Server shortcuts' box and choose the location to put the shortcuts. Click 'Next'
As we did before we will select the Oracle database options, choose the vendor that corresponds to your database.
This panel will be the same as the initial install panel, enter your host name and database server port and then point to the database driver you had downloaded previously.
We will now point to our anywhere database again, this time we are using the schema that was created for the MobileFirst administration component which was WLADMIN. Enter this schema owner and it's password in to the username and password fields. Once you received the status 'Database exists' click 'Next'.
We will skip the next screen as it just says our database exists once more. Click 'Next' to move on to the Application Server configuration.
Again the panels are similar to what you previously saw, select the option that corresponds to your application server. We are using WebSphere Network Deployment so the first option was selected. The same option is used for WebSphere Liberty. If using Tomcat choose the second option and enter the installation folder.
We are not using the Analytics Server so ensure the 'Enable the connection to the Analytics server' is unchecked and click 'Save' then 'Deploy'
The console below will show you once the task has been completed and the application deployed.
Log in to WebSphere and you should now see 4 new applications deployed for the Application Center Console\Services and the MobileFirst Administration Console\Services. Start your MobileFirst JVM and the new application should start up as you see below.
To verify the MobileFirst Console is running you can access the console at the following address and log in with your wasadmin user. your host and port may differ.
On logged in the console should show 'No runtime environment deployed to this server' . This portion will be deployed after the Maximo Anywhere 7.6.1 component is installed.
The Application Center would be available on the same host using the /appcenterconsole context.
You can use your appcenteradmin user created previously to log in or use the wasadmin user. The console should appear as you see below with no applications deployed.
Installing Maximo Anywhere 7.6.1
Our last option on the launchpad is 'Install or Update IBM Maximo Anywhere'. Once selected you will see the option to Install on the right panel, click this to launch the Installation Manager. You can install this on a separate machine from the MobileFirst server if required. I'm doing it on the same Windows 2012 R2 server, however you can do it on a Windows 8.1 or 10 workstation as well which will allow you to build both Android and Windows at the same time.
Select all of the components on the 'Install Packages' as well as the versions, click 'Next'.
Choose the Installation folder, I selected IBM\Anywhere when the install completes there will be a MaximoAnywhere folder contained within. Click 'Next'.
The first panel will ask for your Maximo server, this is the service we installed the required components to, enter in the protocol (http/https) your hostname, port and the context root for maximo.
You will now be prompted for your MobileFirst server information, we want to choose Stand-alone MobileFirst server as the embedded option injects the MobileFirst Studio properties and ports. Enter in your host name, ports and usernames for the MobileFirst and Application Center consoles. We are using wasadmin as the user for both, you can enter appcenteradmin for the application center user as well, leave the runtime context as MaximoAnywhere. The application center context should remain as applicationcenter, this is the context for the services and not the console.
On the next panel we want to enter our android SDK and Visual Studio information. The SDK directory must go in to the platform folder, we used android-23 with the older builds tools for Java 1.7. For Visual Studio 2015 was selected as well as 64 bit. The Visual Studio path will auto populate, if incorrect click browse and point to the tools folder at the proper path. Click 'Next' and 'Install'
Once the install is complete we want to build our runtime, we will do this separate from the build all command. If you run build all the anywhereAttachment servlet will not be added initially which is required to use attached documents on the device. To build the runtime open a command prompt and go to the IBM\Anywhere\MaximoAnywhere folder and run 'build build-war'
Creating the runtime war should only take a few seconds, once complete you will get the output you see below.
Now we want to go back and deploy this runtime to the MobileFirst server. We do this by going back to our MobileFirst configuration tool and clicking on 'Add a MobileFirst runtime environment to a configuration'.
You will be prompted to select the environment id of your MobileFirst configuration, we called it 'MobileFirst'. After you have selected the ID, enter in a unique runtime name as well as the wasadmin user name that will be used to deploy the runtime. We called our runtime 'MaximoAnywhere', click 'OK'.
On the next panel we want to browse to the MaximoAnywhere.war file we created with the build build-war command. This is located in the IBM\Anywhere\MaximoAnywhere\bin folder, select this and it will appear on the install panel. You will also notice there is a MaximoAnywhere2-4.war, this is used for WebSphere 7 deployments as it uses a different version of the web.xml schema then WebSphere 8.5.5. There is an issue around this for Anywhere 7.6.1 which was addressed via APAR which requires the version be updated to 2-5, you can read more on this here.
As we gave the Anywhere installer the runtime context of 'MaximoAnywhere' we will want to update the context on this screen to match. Initially it is called worklight. Having these out of sync will cause build issues as the build script won't be able to find the Anywhere runtime. This can be updated in the build.properties if defined incorrectly.
On the next screen we are going to provide our last schema that was created. Enter in your database name of 'anywhere' and the schema owner of WRKLGHT as well as it's password. You can see in the screenshot that Worklight Reports has been deprecated so we do not have to create this schema. Click 'Deploy'.
You will again see a console output showing the deployment is successful once complete.
Now log back in to the WebSphere console and you will see your runtime war deployed. 'IBM Worklight project runtime MaximoAnywhere'. Start the runtime and ensure the status shows green.
Now when you log in to the MobileFirst console you will no longer get a message about the runtime not existing, but a screen showing the runtime name, it's applications, devices etc.
Now that MobileFirst and the runtime are configured we need to build our applications, proceed to the IBM\Anywhere\MaximoAnywhere folder and run the command 'build all'. This will do a full build and deploy of all the MaximoAnywhere applications, the out of the box applications with the core install are the following.
Asset Data Manager
Transfers and Receiving
These applications are designed to run with the core Maximo application, however there are some Industry Solution specific applications released such as Incident Reporter for Oil and Gas/HSE, Complex Work and Flight Log Book for Aviation.
Once the build all completes your applications should show in the MobileFirst console as you see below.
At this point you can go to your Application Center, download the APK or APPX file and install to the device and run the application. You will not be able to log in until your users are in the appropriate security groups, we will go over that in additional information that I will put below, but first I will go over the Mac OSX install.
Installing Maximo Anywhere 7.6.1 on MAC OSX
I wanted to cover over the MAC OSX portion as well, what I will not go over is setting up your Provision Profiles and certificates on the Apple Developer site, this must be done before configuration as xCode requires the provisioning profile as well as the certificate exist in your keyring to build.
The install on the Mac OSX machine will consist only of the Anywhere component, we will be utilizing the same MobileFirst Server as the Android and Windows applications. Extract the install (same install files used for Windows or Linux) and go in to the Max_Anywhere_V761_for_Max76/install/IM folder. From here extract the zip file that says installer.macOS.zip, this contains the Installation Manager files that will install our Anywhere repository on the Mac machine.
Once the folder is extracted we will want to launch the installer, but first we need to ensure the JAVA_HOME is set, I did this using the following command to set it temporarily for the install, but this can be done other ways permently. The command is export JAVA_HOME=$(/usr/libexec/java_home).
After setting this from the installer.macOS folder run 'sudo ./install' to launch the Installation Manager install
Select the version and click 'Next'
On the summary screen click 'Install'
Once the install completes you will need to launch the Installation Manager, the path I installed to was /Applications/IBM/InstallationManager/eclipse, you will want to open a command prompt from there and run 'sudo ./IBMIM'. When the installation Manager opens click on 'IBM Installation Manager' in the top left hand menu and choose 'Preferences'.
If you have problems selecting the 'IBM Installation Manager' option this may be due to Finder windows that are opened in the background, ensure these are minimized or closed before launching the Installation Manager.
Once the preferences panel opens, click on 'Repositories' and then the 'Add Repository' button on the top right hand side.
We now want to drill down in to the Anywhere launchpad folder as see below and select the AnywhereComp761.zip and hit 'OK'. The reason we are installing from the repository is because the launchpad does not support MacOSX but the Installation Manager does and we can use it to point to our install files. Once selected click 'Ok'.
We are now back on the Installation Manager main menu, click on 'Install'
The rest of the panels will look the same as the previous install minus the Android and Windows build tools options. Selected both the platform and apps as you see below and click 'Next'.
Chose your installation path, I called mine Anywhere761 as I build multiple versions from this Mac, however you can name it Anywhere or any other unique name. Click 'Next'
Enter in your Maximo Server information (same Maximo server you installed the required comopnents to). Click 'Next'.
Enter in your MobileFirst server information, ensure to choose the Stand Alone option again. I will link to another document later on regarding the setup of the Embedded environment.
Maximo Anywhere will now be installed on the Mac, you will want to update your build.properties to ensure your provisioning profile is defined, this will be under the iOS Specific Build Toggles as seen below.
To build the application you will run the following command from the IBM/Anywhere/MaximoAnywhere folder
Once the applications are built they will be uploaded to MobileFirst as well as the Application Center. If the build fails due to xCode related errors you can find more information in the xCode log located in the following folder.
At this point our products are all installed and the applications are ready for the device.
Installing the Applications to the device.
I will now go over installing to the devices and what may be required, keep in mind other forms of MDM can be used.
Installing the APK's to an Android device.
1. APK's can be copied directly to the device via USB and the APK installed by selecting it and clicking install on the device.
2. You can also log in to the Application Center and download the APK files from there.
*Ensure to allow application installs from unknown sources in your settings.
From the device go to one of the following pages
Click on the application you wish to install and it will download to the device.
Installing IPA files to an iOS device
1. Files can be side loaded via iTunes to the device.
2. Files can be downloaded using the same means as Android steps above using the Application Center.
One thing to note about the Application Center is that iOS does not allow you to download applications from a site that is not secured with SSL, so the Application Center must be using HTTPS. The certificate should be from a trusted authority, if using a self signed certificate iOS requires that certificate be installed to each device.
You will also need to trust the Application once installed on the device before running it.
Installing APPX files to a Windows 8.1 or Windows 10 tablet.
1. Install the certificates that are used to build the applications on the device, this should be your own but if you used the OOB certificates they are located in the IBM\Anywhere\MaximoAnywhere\apps\windows8\native directory. These would need to be installed locally under 'Trusted People'
2. If side loading the applications follow step 2A in the Microsoft Document below.
The application files for side loading can be found in the following folder and copied to the device,
Run the Add-AppDevPackage.ps1 powershell script on the device from within the application folder you wish to install.
3. Install using the IBM Application Center Windows app, this is located in the IBM MobileFirst install folder. (C:\IBM\MobileFirst_Platform_Server\ApplicationCenter\installer). Copy the IBMApplicationCenterWindowsStore.zip to your windows tablet and unzip it. You can now log in with your server information and install the applications from here as seen below.
Once logged in click on your listed applications to install.
Initial Maximo Configuration.
Before logging in to the applications on your devices there are a couple of initial configuration steps which must be done in Maximo.
1. Set the mxe.oslc.webappurl system property, from the Go To Menu - > System Configuration - > Platform Configuration application.
Update the property to match your host as seen in the screenshot and perform a live refresh.
2. Ensure your users are part of the ANYWHERE security groups, each application has a defined security group. The users will need to be in each group for the application they are required to use. The groups must also have site access, the OOB groups are shown below, ANYWHERE_INCIDENT is from the Oil and Gas\HSE application and likely won't exist in your install out of the box.
Please see the following blogs for assistance with LDAP and SSL configuration.
Configuring Anywhere Administration
Maximo Anywhere Administration gives you the options to define and create WorkList and Lookup queries from within the Maximo Application instead of modifying the app.xml which requires rebuilding. For more information on setting this up see the following blog.
Configuring Push Notifications
Push Notifications are available in Maximo Anywhere 7.6.1 for Android and iOS as long as the core Maximo application is at a version of 18.104.22.168 or higher. Information regarding the setup for Android can be found below, I will update with the iOS steps in the near future.
Setting up MobileFirst Studio to allow for application development and previewing.
In MobileFirst 7.1 the option to preview common resources in a production environment is no longer available, this requires you to set up the MobileFirst Studio to preview application outside of a device. A full step through on that can be found here.
Well that's it for now, I hope this helps ease some of the Maximo Anywhere \ MobileFirst installs and provide guidance to those first stepping in to Maximo Anywhere. This blog is very lengthy, so somethings may of been missed in the process of creating it, if you notice anything that is missing or incorrect please let me know. As always, questions, comments or concerns are welcome to be posted in the section below.