For up-to-date product documentation, see the IBM MobileFirst Foundation Developer Center.


Manual installation on WebSphere Application Server Liberty

Find out more details on how to install the MobileFirst Server components on WebSphere® Application Server Liberty.

For an overview of an installation of MobileFirst Server on Liberty profile, see Tutorials about MobileFirst Server installation.

Make sure that you have also fulfilled the requirements as documented in WebSphere Application Server Liberty prerequisites.


Topology constraints

The MobileFirst Server administration service, the MobileFirst Server live update service, and the MobileFirst runtime must be installed on the same application server. The context root of the live update service must be defined as <adminContextRoot>config. The context root of the push service must be imfpush. For more information about the constraints, see Constraints on the MobileFirst Server components and MobileFirst Analytics.


Application server settings

You must configure the <webContainer> element to load the servlets immediately. This setting is required for the initialization through JMX. For example:

<webContainer deferServletLoad="false"/>

Optionally, to avoid timeout issues that break the startup sequence of the runtime and the administration service on some Liberty versions, change the default <executor> element. Set large values to the coreThreads and maxThreads attributes. For example:

<executor id="default" name="LargeThreadPool" coreThreads="200" maxThreads="400" keepAlive="60s" stealPolicy="STRICT" rejectedWorkPolicy="CALLER_RUNS"/>

You might also configure the <tcpOptions> element and set the soReuseAddr attribute to true.

<tcpOptions soReuseAddr="true"/>


Liberty features required by the MobileFirst Server applications

We can use the following features for Java™ EE 6 or Java EE 7.

MobileFirst Server administration service

  • jdbc-4.0 (jdbc-4.1 for Java EE 7)
  • appSecurity-2.0
  • restConnector-1.0
  • usr:MFPDecoderFeature-1.0
MobileFirst Server push service

  • jdbc-4.0 (jdbc-4.1 for Java EE 7)
  • servlet-3.0 (servlet-3.1 for Java EE 7)
  • ssl-1.0
  • usr:MFPDecoderFeature-1.0
MobileFirst runtime

  • jdbc-4.0 (jdbc-4.1 for Java EE 7)
  • servlet-3.0 (servlet-3.1 for Java EE 7)
  • ssl-1.0
  • usr:MFPDecoderFeature-1.0


Global JNDI entries

The following global JNDI entries are required to configure the JMX communication between the runtime and the administration service:

These global JNDI entries are set with this syntax and are not prefixed by a context root. For example:

<jndiEntry jndiName="mfp.admin.jmx.port" value="9443"/>

Note: To protect against an automatic conversion of the JNDI values, so that 075 is not converted to 61 or 31.500 is not converted to 31.5, use this syntax '"075"' when you define the value. For more information about the JNDI properties for the administration service, see administration service and MobileFirst Operations Console for our application server, you set optional or mandatory JNDI properties, in particular for Java Management Extensions (JMX).">List of JNDI properties for MobileFirst Server administration service.

For a farm configuration, see also the following topics:


Class loader

For all applications, the class loader must have the parent last delegation. For example:

<application id="mfpadmin" name="mfpadmin" location="mfp-admin-service.war" type="war"> [...] <classloader delegation="parentLast"> </classloader> </application>


Password decoder user feature

Copy the password decoder user feature to our Liberty profile. For example:

Parent topic: Installing the MobileFirst Server components manually