Example: Set IHS as an intermediary node for Web services transactions


 

+

Search Tips   |   Advanced Search

 

Use IHS intermediary nodes to enable the exchange of Atomic Transaction and Business Activity protocol messages across firewalls and outside the WAS domain. To achieve this behavior modify plugin-cfg.xml on the IHS node.

For this example, IHS routes requests that are of the form...

http://host:port/_IBMSYSAPP/*

...to WAS, rather than processing them itself.

Add the bolded URI element to all UriGroup elements in plugin-cfg.xml.

<UriGroup Name="default_host_server1_99T73NKNode01_Cluster_URIs">

    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsv" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsw" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/j_security_check" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm_security_logout" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/SamplesGallery/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/WSsamples/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/docs/*" />
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/_IBMSYSAPP/*" />

</UriGroup>

 

Set virtual host mapping

If using IHS as the only intermediary node, in other words we are not also using Proxy Server for IBM WAS, configure virtual hosts to represent each WAS that the HTTP node routes requests to. Update plugin-cfg.xml by adding elements...

The following example shows part of plugin-cfg.xml for a configuration in which IHS routes requests to one of two servers, server1 and server2, in WAS.

The plugin-cfg.xml file contains two virtual host aliases, with names...

...defined using VirtualHost and VirtualHostGroup elements. The Route elements define the association between the virtual hosts and the ServerCluster elements. When a request is made, IHS finds the best matching route to dispatch the request to. A request made to virtual host name1.acme.com, with a URI that matches a pattern in the default_URIs URI group, is sent to the server1_Cluster server cluster. This server cluster contains only one server, server1, so requests targeted at virtual host name1.acme.com are sent to server1, and similarly, requests targeted at virtual host name2.acme.com are sent to server2.

<UriGroup Name="default_URIs">
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount" /> 
    ...
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/*" /> 
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/docs/*" />
    <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/_IBMSYSAPP/*" />
</UriGroup>

<ServerCluster CloneSeparatorChange="false"
               LoadBalance="Round Robin"
               Name="server1_Cluster"
               PostBufferSize="64"
               PostSizeLimit="-1" 
               RemoveSpecialHeaders="true"
               RetryInterval="60">

      <Server ConnectTimeout="0"
               ExtendedHandshake="false"
               MaxConnections="-1"
               Name="server1"
               ServerIOTimeout="0"
               WaitForContinue="false">
         ...
      </Server>

      <PrimaryServers> 
          <Server Name="server1"/> 
      </PrimaryServers>

</ServerCluster>

<ServerCluster CloneSeparatorChange="false"
               LoadBalance="Round Robin"
               Name="server2_Cluster"
               PostBufferSize="64"
               PostSizeLimit="-1"
               RemoveSpecialHeaders="true"
               RetryInterval="60">

      <Server ConnectTimeout="0"
              ExtendedHandshake="false"
              MaxConnections="-1" 
              Name="server2"
              ServerIOTimeout="0"
              WaitForContinue="false">
         ...
     </Server>

     <PrimaryServers> 
        <Server Name="server2"/>  
     </PrimaryServers>

</ServerCluster>

<VirtualHostGroup Name="vhost_server1"> 
    <VirtualHost Name="name1.acme.com:9081"/> 
</VirtualHostGroup>

<VirtualHostGroup Name="vhost_server2"> 
    <VirtualHost Name="name2.acme.com:9081"/> 
</VirtualHostGroup>

<Route ServerCluster="server1_Cluster"
       UriGroup="default_URIs"
       VirtualHostGroup="
       vhost_server1 "/>

<Route ServerCluster="server2_Cluster"
       UriGroup="default_URIs"
       VirtualHostGroup="
       vhost_server2"/>





 

Related concepts

Web Services transactions, high availability, firewalls and intermediary nodes

 

Related tasks

Set an intermediary node for Web services transactions