IBM MobileFirst Server support Cisco ACE hardware load balancer

188 Views Asked by At

Initial question

Two days ago we were facing below error along with strange devices behaviour i.e some devices were able to connect/work via load balancer and some were not. But yesterday all devices were able to connect. Though there was no change done in the network or in the server. Network team was here they also confirmed that they did nothing.

Update

Does IBM MobileFirst 6.3 supports Cisco ACE hardware load balancer ?

One of my client has setup it for two separate machines (physical) and we are having following issue while accessing the Server console via load balancer.

But, if we access the MobileFirst Console directly via the IP address of either of the machines then it works fine and shows everything.

enter image description here

If this support is available then please guide me on it.

Environment Details

  • IBM WAS Liberty Profile 8.5.5.0 (Base version)
  • MobileFirst 6.3 (Build number: IMF 00-20141127-1357)
  • Windows Server 2012 R2 (v 6.3)
  • Oracle 11.2

Server.xml

<server description="new server">

    <!-- Enable features -->
    <featureManager>
        <feature>jsp-2.2</feature>

        <!-- Begin of features added by IBM Worklight installer. -->
        <!-- The following lines will be removed when the application is uninstalled -->
        <feature>ssl-1.0</feature>
        <feature>servlet-3.0</feature>
        <feature>jdbc-4.0</feature>
        <feature>appSecurity-1.0</feature>
        <feature>jndi-1.0</feature>
        <!-- End of features added by IBM Worklight installer. -->


        <!-- Begin of features added by IBM Worklight <installWorklightAdmin> ant task for context root '/wladmin'. -->
        <!-- The following lines will be removed when the application is uninstalled -->
        <feature>ssl-1.0</feature>
        <feature>servlet-3.0</feature>
        <feature>jdbc-4.0</feature>
        <feature>jndi-1.0</feature>
        <feature>restConnector-1.0</feature>
        <feature>appSecurity-1.0</feature>
        <!-- End of features added by IBM Worklight <installWorklightAdmin> ant task for context root '/wladmin'. -->


        <!-- Begin of features added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->
        <!-- The following lines will be removed when the application is uninstalled -->
        <feature>ssl-1.0</feature>
        <feature>servlet-3.0</feature>
        <feature>jdbc-4.0</feature>
        <feature>jndi-1.0</feature>
        <!-- End of features added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->

    </featureManager>

    <httpEndpoint id="defaultHttpEndpoint"
                  host="*"
                  httpPort="9080"
                  httpsPort="9443" >

        <!-- Option soReuseAddr added by IBM Worklight installer. -->
        <!-- Option soReuseAddr added by IBM Worklight <installWorklightAdmin> ant task for context root '/wladmin'. -->
        <!-- Option soReuseAddr added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->
        <tcpOptions soReuseAddr="true"/>

    </httpEndpoint>



    <basicRegistry>
        <!--    Worklight user.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
        -->
        <user name="WorklightRESTUser" password="kRbMiUKhbuak"/>

        <!--    Worklight user.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
        -->
        <user name="admin" password="admin"/>

        <!--    Worklight user.
        [Added by IBM Worklight Installation Manager for context root '/applicationcenter'] 
        -->
        <user name="demo" password="demo"/>

        <!--    Worklight user.
        [Added by IBM Worklight Installation Manager for context root '/applicationcenter'] 
        -->
        <user name="appcenteradmin" password="admin"/>

        <!--    IBM Application Center group.
        [Added by IBM Worklight Installation Manager for context root '/applicationcenter'] 
        -->
        <group name="appcentergroup">
            <!--    IBM Application Center group member.
            [Added by IBM Worklight Installation Manager for context root '/applicationcenter'] 
            -->
            <member name="demo"/>

            <!--    IBM Application Center group member.
            [Added by IBM Worklight Installation Manager for context root '/applicationcenter'] 
            -->
            <member name="appcenteradmin"/>

        </group>

    </basicRegistry>

    <!-- Begin of configuration added by IBM Worklight installer. -->

    <!-- Declare the IBM Application Center Console application. -->
    <application id="appcenterconsole" name="appcenterconsole" location="appcenterconsole.war" type="war">
        <application-bnd>
            <security-role name="appcenteradmin">
                <group name="appcentergroup"/>
            </security-role>
        </application-bnd>
    </application>

    <!-- Declare the IBM Application Center Services application. -->
    <application id="applicationcenter" name="applicationcenter" location="applicationcenter.war" type="war">
        <application-bnd>
            <security-role name="appcenteradmin">
                <group name="appcentergroup"/>
            </security-role>
        </application-bnd>
        <classloader delegation="parentLast">
            <commonLibrary>
                <fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
            </commonLibrary>
        </classloader>
    </application>

    <!-- Declare the JNDI properties for the IBM Application Center. -->

    <!-- Define the AppCenter services endpoint in order for the AppCenter console to be able to invoke the REST service.
            You need to enable this property if the server is behind a reverse proxy
            or if the context root of the Application Center Services application is different from '/applicationcenter'. -->
    <!-- <jndiEntry jndiName="ibm.appcenter.services.endpoint" value='"http://proxyhost:proxyport/applicationcenter"'/> -->
    <!-- The directory with binaries of the 'aapt' program, from the Android SDK's platform-tools package. -->
    <jndiEntry jndiName="android.aapt.dir" value='"D:/IBM/MobileFirst_Platform_Server/ApplicationCenter/tools/android-sdk"'/>
    <!-- The protocol of the application resources URI. This property is optional. It is only needed if the protocol of the external and internal URI are different. -->
    <!-- <jndiEntry jndiName="ibm.appcenter.proxy.protocol" value='"http"'/> -->
    <!-- The hostname of the application resources URI. -->
    <!-- <jndiEntry jndiName="ibm.appcenter.proxy.host" value='"proxyhost"'/> -->
    <!-- The port of the application resources URI. This property is optional. -->
    <!-- <jndiEntry jndiName="ibm.appcenter.proxy.port" value="proxyport"/> -->

    <!-- Declare the jar files for Oracle access through JDBC. -->
    <library id="OracleLib">
        <fileset dir="${shared.resource.dir}/oracle" includes="*.jar"/>
    </library>

    <!-- Declare the IBM Application Center database. -->
    <dataSource jndiName="jdbc/AppCenterDS" transactional="false">
        <jdbcDriver libraryRef="OracleLib"/>
        <properties.oracle driverType="thin" URL="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testdb01scan.mycompany.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gmaxt.mycompany.local)))" user="WLAPPCENTER" password="WLAPPCENTER"/>
    </dataSource>

    <!-- End of configuration added by IBM Worklight installer. -->

<!--
    IBM Worklight requires SSL and declared the "defaultKeyStore" default keystore. 
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    This configuration is the minimum one that you need to create an SSL configuration.
    With this configuration, the Liberty server creates the keystore and the certificate, 
    if it does not exist yet, during the SSL initialization.
    The created certificate is a self-signed certificate that is valid for 365 days.
    Do not use the certificates that the Liberty server created for production use.
    For more information see  http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.wlp.core.doc/ae/twlp_sec_ssl.html
-->
    <keyStore id="defaultKeyStore" password="worklight"/>

    <administrator-role>
        <!--    Worklight JMX User.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
        -->
        <user>WorklightRESTUser</user>

    </administrator-role>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.admin.jmx.host" value="localhost"/>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.admin.jmx.port" value="9443"/>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.admin.jmx.user" value="WorklightRESTUser"/>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.admin.jmx.pwd" value="kRbMiUKhbuak"/>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.topology.platform" value="Liberty"/>
    <!--    Worklight JNDI property for JMX connection.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
    -->
    <jndiEntry jndiName="ibm.worklight.topology.clustermode" value="Standalone"/>

    <!--    WebContainer statement.
        [Added by IBM Worklight <installWorklightAdmin> Ant task for context root '/wladmin'] 
        [Added by IBM Worklight <configureApplicationServer> Ant task for context root '/worklight'] 
    -->
    <webContainer invokeFlushAfterService="false" deferServletLoad="false"/>

    <!-- Element <executor> added by IBM Worklight <installWorklightAdmin> ant task for id 'wladmin'. -->
    <executor id="default" name="LargeThreadPool"
              coreThreads="200" maxThreads="400" keepAlive="60s"
              stealPolicy="STRICT" rejectedWorkPolicy="CALLER_RUNS"/>


    <!-- Begin of configuration added by IBM Worklight <installWorklightAdmin> ant task for context root '/wladmin'. -->

    <!-- Declare the Worklight Administration Service application. -->
    <application id="wladmin" name="wladmin" location="worklightadmin.war" type="war">
        <application-bnd>
            <security-role name="worklightadmin">
                <user name="admin"/>

            </security-role>

            <security-role name="worklightdeployer">
            </security-role>

            <security-role name="worklightmonitor">
            </security-role>

            <security-role name="worklightoperator">
            </security-role>

        </application-bnd>

        <classloader delegation="parentLast" commonLibraryRef="wladmin/OracleLib">
            <commonLibrary id="worklightlib_wladmin">

                <fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
            </commonLibrary>
        </classloader>
    </application>

    <!-- Declare the JNDI properties for the Worklight Administration Service. -->
    <jndiEntry jndiName="wladmin/ibm.worklight.admin.environmentid" value='"worklight"'/>


    <!-- Declare the jar files for Oracle access through JDBC. -->
    <library id="wladmin/OracleLib">
        <fileset dir="${shared.resource.dir}/wladmin/oracle" includes="ojdbc6.jar"/>
    </library>

    <!-- Declare the IBM Worklight Administration database. -->
    <dataSource jndiName="wladmin/jdbc/WorklightAdminDS" transactional="false">
        <jdbcDriver libraryRef="wladmin/OracleLib"/>
        <properties.oracle driverType="thin" URL="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testdb01scan.mycompany.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gmaxt.mycompany.local)))" user="WLADMIN" password="WLADMIN"/>
    </dataSource>

    <!-- Declare the Worklight Administration Console application. -->
    <application id="worklightconsole" name="worklightconsole" location="worklightconsole.war" type="war">
        <application-bnd>
            <security-role name="worklightadmin">
                <user name="admin"/>

            </security-role>

            <security-role name="worklightdeployer">
            </security-role>

            <security-role name="worklightmonitor">
            </security-role>

            <security-role name="worklightoperator">
            </security-role>

        </application-bnd>

    </application>

    <!-- Declare the JNDI properties for the Worklight Administration Console. -->
    <jndiEntry jndiName="worklightconsole/ibm.worklight.admin.endpoint" value='"*://*:*/wladmin"'/>


    <!-- End of configuration added by IBM Worklight <installWorklightAdmin> ant task for context root '/wladmin'. -->


    <!-- Begin of configuration added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->

    <!-- Declare the IBM Worklight project runtime application. -->
    <application id="worklight" name="worklight" location="UATNode2.war" type="war">
        <classloader delegation="parentLast">
            <privateLibrary id="worklightlib_worklight">
                <fileset dir="${shared.resource.dir}/worklight/lib" includes="worklight-jee-library.jar"/>
                <fileset dir="${wlp.install.dir}/lib" includes="com.ibm.ws.crypto.passwordutil_1.0.1.jar"/>
            </privateLibrary>
        </classloader>
    </application>

    <!-- Declare the JNDI properties for the IBM Worklight project runtime. -->
    <jndiEntry jndiName="worklight/publicWorkLightProtocol" value='"http"'/>
    <jndiEntry jndiName="worklight/publicWorkLightPort" value='"9080"'/>
    <jndiEntry jndiName="worklight/ibm.worklight.admin.environmentid" value='"worklight"'/>


    <!-- Declare the jar files for Oracle access through JDBC. -->
    <library id="worklight/OracleLib">
        <fileset dir="${shared.resource.dir}/worklight/oracle" includes="ojdbc6.jar"/>
    </library>

    <!-- Declare the IBM Worklight Server database. -->
    <dataSource jndiName="worklight/jdbc/WorklightDS" transactional="false">
        <jdbcDriver libraryRef="worklight/OracleLib"/>
        <properties.oracle driverType="thin" URL="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testdb01scan.mycompany.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gmaxt.mycompany.local)))" user="WRKLIGHT" password="WRKLIGHT"/>
    </dataSource>

    <!-- Declare the IBM Worklight Server reports database. -->
    <dataSource jndiName="worklight/jdbc/WorklightReportsDS" transactional="false">
        <jdbcDriver libraryRef="worklight/OracleLib"/>
        <properties.oracle driverType="thin" URL="jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = testdb01scan.mycompany.local)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = gmaxt.mycompany.local)))" user="WLRREPOR" password="WLRREPOR"/>
    </dataSource>

    <!-- End of configuration added by IBM Worklight <configureApplicationServer> ant task for context root '/worklight'. -->

</server>
1

There are 1 best solutions below

5
On

Are you running on WAS ND ?

You may need to set the following JNDI properties

ibm.worklight.admin.proxy.host
ibm.worklight.admin.proxy.port
ibm.worklight.admin.proxy.protocol

And point the values of it to your load balancer path

Also, you need to make sure that the servers running MFP have network access to the load balancer (ports open etc.)

Defining the endpoint of the Worklight Administration services http://www-01.ibm.com/support/knowledgecenter/SSZH4A_6.2.0/com.ibm.worklight.installconfig.doc/install_config/c_endpoint_admin_services.html

List of JNDI properties for MobileFirst Administration http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.installconfig.doc/install_config/r_wladmin_jndi_property_list.html

Some info about reverse proxy: http://www-01.ibm.com/support/knowledgecenter/SSHS8R_6.3.0/com.ibm.worklight.integ.doc/integ/r_integration_with_reverse_proxy.html