Installing the IBM HTTP Server and the configuring load balancer plugin

To support clustering Opportunity Detect needs IBM HTTP server and plugin. The IBM HTTP server and the plugin provides load balancing and a single point of entry for Interact RunTime. The server and the plugin are a part of the Wepshere Application Server (WAS) extensions. See IBM documentation to configure WAS, the IBM HTTP Server, and the plugin.

Procedure

  1. Create a plugin_cfg.xml file by using WAS, or use the following plugin_cfg.xml as an example.
    Note: Replace host_noden and port_noden with the host and port of the RealTimeConnectors from the Opportunity Detect RunTime cluster.
    <?xml version="1.0" encoding="UTF-8"?>
    <Config ASDisableNagle="false" AcceptAllContent="false" 
    AppServerPortPreference="HostHeader" ChunkedResponse="false" FIPSEnable="false" 
    IISDisableNagle="false" IISPluginPriority="High" IgnoreDNSFailures="false" 
    RefreshInterval="60" ResponseChunkSize="64" SSLConsolidate="false" 
    SSLPKCSDriver="REPLACE" SSLPKCSPassword="REPLACE" TrustedProxyEnable="false" 
    VHostMatchingCompat="false">
    		<Log LogLevel="Error" Name="./logs/defaultServer/http_plugin.log"/>
    		<Property Name="ESIEnable" Value="true"/>
    		<Property Name="ESIMaxCacheSize" Value="1024"/>
    		<Property Name="ESIInvalidationMonitor" Value="false"/>
    		<Property Name="ESIEnableToPassCookies" Value="false"/>
    		<Property Name="PluginInstallRoot" Value="."/>
    		<VirtualHostGroup Name=="default_host">
    				<VirtualHost Name="host:port"/>
    		</VirtualHostGroup>
    		<ServerCluster CloneSeparatorChange="false" GetDWLMTable="false" 
    IgnoreAffinityRequests="true" LoadBalance="Round Robin" 
    Name="defaultServer_default_node_Cluster" PostBufferSize="64" 
    PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">
    		<Server CloneID="9ec9fa61-0e3e-431f-a497-8c7b5fdd201e" ConnectTimeout="0" 
    ExtendedHandshake="false" MaxConnections="-1" Name="default_node_defaultServer0" 
    ServerIOTimeout="900" WaitForContinue="false"
    		>
    		<Transport Hostname="Host_Node1 Port=Port_node1 Protocol="http"/>
    		</Server>
    		<Server Name="Detectdb2" ConnectTimeout="5" ExtendedHandshake="false" 
    ServerIOTimeout="60" LoadBalanceWeight="1" MaxConnections="-1" 
    WaitForContinue="false">
    		<Transport Hostname="Host_Node2 Port=Port_node2 Protocol="http"/>
    		</Server>
    <Server Name="Detectn1" ConnectTimeout="5" ExtendedHandshake="false" 
    ServerIOTimeout="60" LoadBalanceWeight="1" MaxConnections="-1" 
    WaitForContinue="false">
    		<Transport Hostname="Host_Node3 Port=Port_node3 Protocol="http"/>
    		</Server>
    		<ServerCluster>
    		<UriGroup Name="default_host_defaultServer_default_node_Cluster_URIs">
    				<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" 
    Name="/servlets/*"/>
    		</UriGroup>
    		<Route ServerCluster="defaultServer_default_node_Cluster" 
    UriGroup="default_host_defaultServer_default_node_Cluster_URIs" 
    VirtualHostGroup="default_host"/>
    </Config>
    
  2. Configure the httpd.conf file to add the plugin module and provide the path of the plugin-cfg.xml file by adding the following ines at the end of httpd.conf file:
    LoadModule was_ap22_module 
    WAS_INSTALLATION_DIR>/Plugins/bin/64bits/mod_was_ap22_http.so
    WebSpherePluginConfigIBM_HTTP_SERVER_DIR/conf/plugin-cfg.xml
  3. Make sure that you add the IBM HTTP Servers URL to the RealTimeConnector URL in Opportunity Detect confguration. Complete the following steps to add the IBM HTTP Servers URL to RealTimeConnector URL:
    1. Login to Platform and navigate to Settings > Configuration.
    2. In the configuration tree, go to IBM Opportunity Detect and Interact Advanced Patterns > System > Real Time Connector.
    3. Edit the Server URL to reflect the following value:

      http://HTTP_SERVER_HOST:HTTP_SERVER_PORT/servlets/StreamServlet