Topic
  • 10 replies
  • Latest Post - ‏2013-06-12T03:58:42Z by wellsmith
T.Bussiere
T.Bussiere
4 Posts

Pinned topic Collectives in Liberty is not like cluster in ND?

‏2013-06-05T09:56:52Z |

Hi everybody,

 

on redhat, using wlp-nd-runtime-8.5.next.beta.jar, I successfully create a collectiveControler and joined two collectiveMember…. And so what?

Seriously what did I miss? I had to change manually HTTP and HTTPS port on both members, to install manually on both members the application…. So where is the added-value of creating a collective when creating manually 2 separated servers will have the same effect? How can I control the cluster? Using the MBean I assume, but what are parameters descriptions for P1...P4?

 Basically I would like the same behavious than WAS ND: creating a cluster, installing an app on this cluster and administrate the cluster as one server. Is it possible? 

 

  • QYC1_Arthur_De_Magalhaes
    4 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-05T14:25:24Z  

    Hi.   The fact that you were able to manually change individual members without "having" to go through the controller illustrates that the Liberty Collectives have a design where the individual members themselves control their membership and their configuration - so you can manually change the server.xml to join/leave a collective/cluster or manually edit individual servers if you wish to.

    But there are some good advantages to being a collective member (vs a standalone Liberty server).  The first one is that a lot of important MBean attributes (depending on the features enabled for each server) and other server-specific information is automatically pushed into the controller and thus allows you to manage/query all the collective members from the controller (using the centralized repository).   The added-value of this central cache increases as more members join the collective.  ie: find out which ones of your 1000's of members have a certain app up and running.

    Another advantage is that the controller provides a lot of MBeans to help you manage those collective members, such as:
    - the ability to route any MBeanServerConnection operation to a specific collective member without having to specify its security credentials; 
    - the ability to do file transfer (upload app, upload new config, download logs,e tc) to a specific member without having that member online and still use Liberty variable paths such as ${server.config.dir} in your invocation;
    - the ability to remotely start/stop the server, etc.  

    You can also setup multiple HA controllers, which allows you (as the client) to establish an administrative JMX (REST) connection by providing a list of your HA controller and be load-balanced to one of them while also receive automatic fail-over support in case that controller goes down.

    For clustering you need to add 2 things to your collective member's server.xml: (1) the clusterMember-1.0 feature, and (2) associate that server with a cluster ID ex: <clusterMember name="AppCluster1"/> 

    So if you added that to both of your servers, they would both be part of "AppCluster1".  Then you can do cluster-wide operations on them using the com.ibm.websphere.collective.controller.ClusterManagerMBean interface.  Please note that the current support in Liberty is for static clustering, so it won't have all the dynamic clustering features from tWAS.

    For more information on the collective MBeans, I suggest you look into the following javadocs [1] for these MBeans: ServerCommands, ClusterManager, FileTransfer, RoutingContext.

    Lastly, the collective controller also offers some nice SPI level hooks (ie: if you create your own user feature that adds your bundles to the runtime OSGi framework), namely the RepositoryConnectionFactory and RepositoryClient MBeans - javadoc in [2].

    [1] 
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.collectiveController_1.0.0-javadoc.zip
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.restConnector_1.0.1-javadoc.zip
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.clusterMember_1.0.0-javadoc.zip

    [2] 
    wlp\dev\spi\ibm\javadoc\com.ibm.websphere.appserver.spi.collectiveMember_1.0.0-javadoc.zip

    Thx,

    Arthur

  • ChrisVignola
    ChrisVignola
    3 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-05T15:07:43Z  

     

     

    Hi,

    Good questions.  Arthur's post spelled out a number of capabilities and benefits of the Liberty Collective and some detail on how to build and control a Liberty Profile cluster.  There are some other things that warrant saying also.

    First, let's address expectations:  Liberty Profile clusters are not the same as Full Profile (aka "ND") clusters. They have similar operations, but differ in how you configure them.  Frankly, Full Profile clusters do more configuration for you automatically than do Liberty Profiles. 

    Second, let's put the Liberty Collective concept into perspective.  It provides an administrative domain for multiple Liberty profiles, offering a number of administrative benefits and capabilities through the Collective Controller, which Arthur decribed in his post.  The configuration model for this is that individual Liberty Profiles that are members of the collective own the master copy of their respective configuration and merely publish a subset of information about themselves to the Collective Controller, like network location,  SSL keys,  mbean attributes, and operational status (e.g. STOPPED, STARTED).

    So when it comes to creating a cluster, you don't create an "empty" cluster and then assign cluster members to it;  rather, the cluster members themselves establish the cluster by simply identify themselves as members of a named cluster.   By so doing, the cluster is defined.   The ClusterManager MBean, which exists in the Collective Controller(s) provides operations, like listClusterMembers, start/stop cluster, and generate cluster config for the WAS plugin.

    Since the configuration is basically "each Liberty Profile is an individual",  changes to their configuration,  whether they are clustered or not,  including app install, is done on each individual Liberty Profile.   The ClusterManager MBean helps you identify which Liberty Profiles are part of the same cluster and the FileTransfer MBean makes it possible to push configuration changes through the Collective Controller(s) to specific Liberty Profiles.

    FYI, we will soon publish a set of sample scripts in the Liberty Repository on wasdev.net that demonstrate how to perform common operations on Liberty clusters. 

    -Chris

  • XVQG_Anwarul_Azim
    XVQG_Anwarul_Azim
    15 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-06T18:37:00Z  

    Hi.   The fact that you were able to manually change individual members without "having" to go through the controller illustrates that the Liberty Collectives have a design where the individual members themselves control their membership and their configuration - so you can manually change the server.xml to join/leave a collective/cluster or manually edit individual servers if you wish to.

    But there are some good advantages to being a collective member (vs a standalone Liberty server).  The first one is that a lot of important MBean attributes (depending on the features enabled for each server) and other server-specific information is automatically pushed into the controller and thus allows you to manage/query all the collective members from the controller (using the centralized repository).   The added-value of this central cache increases as more members join the collective.  ie: find out which ones of your 1000's of members have a certain app up and running.

    Another advantage is that the controller provides a lot of MBeans to help you manage those collective members, such as:
    - the ability to route any MBeanServerConnection operation to a specific collective member without having to specify its security credentials; 
    - the ability to do file transfer (upload app, upload new config, download logs,e tc) to a specific member without having that member online and still use Liberty variable paths such as ${server.config.dir} in your invocation;
    - the ability to remotely start/stop the server, etc.  

    You can also setup multiple HA controllers, which allows you (as the client) to establish an administrative JMX (REST) connection by providing a list of your HA controller and be load-balanced to one of them while also receive automatic fail-over support in case that controller goes down.

    For clustering you need to add 2 things to your collective member's server.xml: (1) the clusterMember-1.0 feature, and (2) associate that server with a cluster ID ex: <clusterMember name="AppCluster1"/> 

    So if you added that to both of your servers, they would both be part of "AppCluster1".  Then you can do cluster-wide operations on them using the com.ibm.websphere.collective.controller.ClusterManagerMBean interface.  Please note that the current support in Liberty is for static clustering, so it won't have all the dynamic clustering features from tWAS.

    For more information on the collective MBeans, I suggest you look into the following javadocs [1] for these MBeans: ServerCommands, ClusterManager, FileTransfer, RoutingContext.

    Lastly, the collective controller also offers some nice SPI level hooks (ie: if you create your own user feature that adds your bundles to the runtime OSGi framework), namely the RepositoryConnectionFactory and RepositoryClient MBeans - javadoc in [2].

    [1] 
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.collectiveController_1.0.0-javadoc.zip
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.restConnector_1.0.1-javadoc.zip
    wlp\dev\api\ibm\javadoc\com.ibm.websphere.appserver.api.clusterMember_1.0.0-javadoc.zip

    [2] 
    wlp\dev\spi\ibm\javadoc\com.ibm.websphere.appserver.spi.collectiveMember_1.0.0-javadoc.zip

    Thx,

    Arthur

    Hi, According to the following reply, I have one question:

    1) Supposed I have a scenario like this: 

    I have several collective members with the configuration of clusterMember-1.0 feature  <clusterMember name="AppCluster1"/> in server.xml in all of them, and I have a controller (with httpPort="9080" and  httpsPort="9446")  and I want to push one particular app to all of these cluster members from a controller server, what is the way to do it?

    After installing same app to multiple members, If we want to apply that patch to all the clustemembers. So, would it be possible to do that.

    I know there is a "Liberty Profile Admin UI" in 8.5.5 (https://ibmdw.net/wasdev/downloads/liberty-profile-admin-ui-tech-preview/). Is there any feature to control clustermembers from that UI , or is there any way to publish applications to all members by controller from this UI ?

    Thanks-Anwarul

     

  • QYC1_Arthur_De_Magalhaes
    4 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-07T13:43:50Z  

    Hi, According to the following reply, I have one question:

    1) Supposed I have a scenario like this: 

    I have several collective members with the configuration of clusterMember-1.0 feature  <clusterMember name="AppCluster1"/> in server.xml in all of them, and I have a controller (with httpPort="9080" and  httpsPort="9446")  and I want to push one particular app to all of these cluster members from a controller server, what is the way to do it?

    After installing same app to multiple members, If we want to apply that patch to all the clustemembers. So, would it be possible to do that.

    I know there is a "Liberty Profile Admin UI" in 8.5.5 (https://ibmdw.net/wasdev/downloads/liberty-profile-admin-ui-tech-preview/). Is there any feature to control clustermembers from that UI , or is there any way to publish applications to all members by controller from this UI ?

    Thanks-Anwarul

     

    Hi Anwarul.  To accomplish your tasks, you'll need a combination of 3 MBeans (ClusterManager, RoutingContext and FileTransfer).  

    So after you establish a JMX REST connection to the controller, your code logic would look something like this:

    (1) Get the list of cluster members (for your AppCluster1 cluster) by using the ClusterManagerMBean.

    (2) Inside a loop, for each clusterMember inside your list:
       (2.1) set the routing context to that member using RoutingContextMBean
       (2.2) call FileTransferMBean's uploadFile method to upload the app (** you then have a choice of uploading your app to the monitored "${server.config.dir}/dropins" folder or you can put your app anywhere else as long you update the corresponding "${server.config.dir}/server.xml" application element to point to that app.  You can also take advantage of the "expandOnCompletion" boolean parameter from uploadFile if you want to deploy your app as an expanded archive and thus allow you to easily change individual files later **)

    That's it!  So you do everything by just talking to the controller.  The nice thing about step (2.2) is that this line of code will be exactly the same for any cluster members, since we're using Liberty variables (ie: you don't need to know the exact location of that member).  

    Please note that for step (2.2) your clusterMembers would have to have the target application folder (either dropins or other) as one of the "writable locations", for example:

    <remoteFileAccess>
      <writeDir>${server.config.dir}/dropins</writeDir>
    </remoteFileAccess>

    (for more information on remoteFileAccess please see the following article: https://www.ibmdw.net/wasdev/docs/using-file-service-and-file-transfer-mbeans-with-liberty/)

    If later on you want to apply a patch to your cluster you can do so by following the same steps.  Another cool thing you can do is let's say you want to take some of those cluster members out of your cluster:  you follow the same steps, but in (2.2) you can do a downloadFile to get the ${server.config.dir}/server.xml, make the change to the file and then use uploadFile to push the modification through.

    Hope this helps.

    Arthur

  • wellsmith
    wellsmith
    8 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-11T15:17:34Z  

    Hi Anwarul.  To accomplish your tasks, you'll need a combination of 3 MBeans (ClusterManager, RoutingContext and FileTransfer).  

    So after you establish a JMX REST connection to the controller, your code logic would look something like this:

    (1) Get the list of cluster members (for your AppCluster1 cluster) by using the ClusterManagerMBean.

    (2) Inside a loop, for each clusterMember inside your list:
       (2.1) set the routing context to that member using RoutingContextMBean
       (2.2) call FileTransferMBean's uploadFile method to upload the app (** you then have a choice of uploading your app to the monitored "${server.config.dir}/dropins" folder or you can put your app anywhere else as long you update the corresponding "${server.config.dir}/server.xml" application element to point to that app.  You can also take advantage of the "expandOnCompletion" boolean parameter from uploadFile if you want to deploy your app as an expanded archive and thus allow you to easily change individual files later **)

    That's it!  So you do everything by just talking to the controller.  The nice thing about step (2.2) is that this line of code will be exactly the same for any cluster members, since we're using Liberty variables (ie: you don't need to know the exact location of that member).  

    Please note that for step (2.2) your clusterMembers would have to have the target application folder (either dropins or other) as one of the "writable locations", for example:

    <remoteFileAccess>
      <writeDir>${server.config.dir}/dropins</writeDir>
    </remoteFileAccess>

    (for more information on remoteFileAccess please see the following article: https://www.ibmdw.net/wasdev/docs/using-file-service-and-file-transfer-mbeans-with-liberty/)

    If later on you want to apply a patch to your cluster you can do so by following the same steps.  Another cool thing you can do is let's say you want to take some of those cluster members out of your cluster:  you follow the same steps, but in (2.2) you can do a downloadFile to get the ${server.config.dir}/server.xml, make the change to the file and then use uploadFile to push the modification through.

    Hope this helps.

    Arthur

    Hi Arthur,

    I think the liberty cluster doesn't not resolve the load balancing and failover, maybe we still use the IHS or apache as the web server, what do you think, but i can not find any document introduce the liberty how to work with IHS or apache,  waiting your reply!

    thanks in advance!

  • Eric Covener
    Eric Covener
    16 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-11T16:54:26Z  
    • wellsmith
    • ‏2013-06-11T15:17:34Z

    Hi Arthur,

    I think the liberty cluster doesn't not resolve the load balancing and failover, maybe we still use the IHS or apache as the web server, what do you think, but i can not find any document introduce the liberty how to work with IHS or apache,  waiting your reply!

    thanks in advance!

    http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/index.jsp?topic=%2Fcom.ibm.websphere.wlp.nd.doc%2Fae%2Ftwlp_admin_webserver_plugin.html

  • QYC1_Arthur_De_Magalhaes
    4 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-11T19:39:01Z  
    • wellsmith
    • ‏2013-06-11T15:17:34Z

    Hi Arthur,

    I think the liberty cluster doesn't not resolve the load balancing and failover, maybe we still use the IHS or apache as the web server, what do you think, but i can not find any document introduce the liberty how to work with IHS or apache,  waiting your reply!

    thanks in advance!

    Hi wellsmith.  As Eric pointed out above, there's a good infocenter article describing how to setup your web server plugin in Liberty.

    After you have done that, you can merge the plugins for a given cluster by invoking the operation "generateClusterPluginConfig" from the ClusterManagerMBean.

     

    Thanks.

  • wellsmith
    wellsmith
    8 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-12T00:41:05Z  

    Hi wellsmith.  As Eric pointed out above, there's a good infocenter article describing how to setup your web server plugin in Liberty.

    After you have done that, you can merge the plugins for a given cluster by invoking the operation "generateClusterPluginConfig" from the ClusterManagerMBean.

     

    Thanks.

    thanks for your reply.

    I download a install manager and select the following two options to install:

    1>. IBM HTTP server for Websphere application server

    2>. web server plugin for Websphere application server

     

    after the installation is completed, I finish the configuration for httpd.conf as belows:

    LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so
    WebSpherePluginConfig /opt/IBM/HTTPServer/conf/plugin-cfg.xml

     

    then copy the generated plugin file to the web server host, restart IHS, but can not find any routing.

    web server host and liberty app server both shipped on Readhat6.1, there is no firewall and I make sure all the server is live

    the detail logs as here :

    /Jun/2013:22:30:14.68380] 00000cd9 08fc1700 - DEBUG: ESI: cacheURL: '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68384] 00000cd9 08fc1700 - DETAIL: ESI: esiRequestPushUrl: '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68391] 00000cd9 08fc1700 - DEBUG: ESI: esiRequestCreate: success
    [11/Jun/2013:22:30:14.68396] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseGet
    [11/Jun/2013:22:30:14.68441] 00000cd9 08fc1700 - DEBUG: ESI: esiRulesGetCacheId: getting cache id for '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68447] 00000cd9 08fc1700 - DEBUG: ESI: esiFindEntry: key = '/first/DatePrintServlet'; hash = 86335016
    [11/Jun/2013:22:30:14.68451] 00000cd9 08fc1700 - DETAIL: ESI: esiRulesGetCacheId: cache miss; no rule for '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68457] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: creating new response
    [11/Jun/2013:22:30:14.68462] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: adding Surrogate-Capability header
    [11/Jun/2013:22:30:14.68466] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestSetHeader: Setting the header name |Surrogate-Capability| to value |WS-ESI="ESI/1.0+"|
    [11/Jun/2013:22:30:14.68471] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: sending request and awaiting response
    [11/Jun/2013:22:30:14.68474] 00000cd9 08fc1700 - DEBUG: ws_common: websphereWriteRequestReadResponse: Enter reqInfo is OK
    [11/Jun/2013:22:30:14.68482] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking for session affinity
    [11/Jun/2013:22:30:14.68489] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the SSL cookie affinity: SSLJSESSION
    [11/Jun/2013:22:30:14.68493] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: Looking for cookie: 'SSLJSESSION'
    [11/Jun/2013:22:30:14.68519] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: No cookie found for: 'SSLJSESSION'
    [11/Jun/2013:22:30:14.68534] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the cookie affinity: JSESSIONID
    [11/Jun/2013:22:30:14.68538] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: Looking for cookie: 'JSESSIONID'
    [11/Jun/2013:22:30:14.68541] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: No cookie found for: 'JSESSIONID'
    [11/Jun/2013:22:30:14.68545] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the url rewrite affinity: jsessionid
    [11/Jun/2013:22:30:14.68549] 00000cd9 08fc1700 - DEBUG: ws_common: websphereParseSessionID: Parsing session id from '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68553] 00000cd9 08fc1700 - DEBUG: ws_common: websphereParseSessionID: No session found for jsessionid
    [11/Jun/2013:22:30:14.68556] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Bypassing check for partitionID cookie affinity.  No stored partition table.
    [11/Jun/2013:22:30:14.68564] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: Round Robin load balancing
    [11/Jun/2013:22:30:14.68570] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: numPrimaryServers is 1
    [11/Jun/2013:22:30:14.68573] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: group defaultServer_default_node_Cluster
    [11/Jun/2013:22:30:14.68579] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68585] 00000cd9 08fc1700 - DEBUG: ws_server_group: weights_need_reset: default_node_defaultServer0: 1 max, 0 cur.
    [11/Jun/2013:22:30:14.68589] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary server
    [11/Jun/2013:22:30:14.68593] 00000cd9 08fc1700 - DEBUG: ws_server_group: weights_need_reset: Time to reset the weights
    [11/Jun/2013:22:30:14.68625] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstServer: getting the first server
    [11/Jun/2013:22:30:14.68638] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextServer: getting the next server
    [11/Jun/2013:22:30:14.68642] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: max multiplication factor 1.
    [11/Jun/2013:22:30:14.68646] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstServer: getting the first server
    [11/Jun/2013:22:30:14.68650] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: Server default_node_defaultServer0: 1 max, 1 cur.
    [11/Jun/2013:22:30:14.68654] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextServer: getting the next server
    [11/Jun/2013:22:30:14.68662] 00000cd9 08fc1700 - DEBUG: New attempts 1 numberservers 1
    [11/Jun/2013:22:30:14.68665] 00000cd9 08fc1700 - TRACE: ws_server_group: NewserverGroupNextRoundRobinServer: Initializing Round Robin Iterator
    [11/Jun/2013:22:30:14.68671] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetServerIterator: Getting the round robin iterator starting point 0
    [11/Jun/2013:22:30:14.68675] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68681] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary server
    [11/Jun/2013:22:30:14.68685] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68689] 00000cd9 08fc1700 - STATS: ws_server_group: serverGroupCheckServerStatus: Checking status of default_node_defaultServer0, ignoreWeights 0, markedDown 0, retryNow 0, retryInSec --, wlbAllows 1 reachedMaxConnectionsLimit 0
    [11/Jun/2013:22:30:14.68693] 00000cd9 08fc1700 - DEBUG: ws_server_group: lockedServerGroupUseServer: Server default_node_defaultServer0 picked, weight 0.
    [11/Jun/2013:22:30:14.68721] 00000cd9 08fc1700 - DEBUG: ws_server_group: serverGroupIncrementConnectionCount: Server default_node_defaultServer0 picked, pendingConnectionCount 1 totalConnectionsCount 1.
    [11/Jun/2013:22:30:14.68736] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: use server default_node_defaultServer0
    [11/Jun/2013:22:30:14.68740] 00000cd9 08fc1700 - TRACE: ws_common: websphereFindTransport: Finding the transport
    [11/Jun/2013:22:30:14.68746] 00000cd9 08fc1700 - DETAIL: ws_common: websphereFindTransport: Setting the transport(case 2): rh62xzg.eng.platformlab.ibm.com on port 9080
    [11/Jun/2013:22:30:14.68752] 00000cd9 08fc1700 - DEBUG: ws_common: websphereExecute: Executing the transaction with the app server reqInfo is OKuseExistingStream=0, client->stream=(nil)
    [11/Jun/2013:22:30:14.68756] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: Getting the stream to the app server
    [11/Jun/2013:22:30:14.68759] 00000cd9 08fc1700 - DEBUG: ws_transport: transportStreamDequeue: Checking for existing stream from the queue
    [11/Jun/2013:22:30:14.68767] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: calling blocking connect
    [11/Jun/2013:22:30:14.68910] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: Setting socket to non-block for ServerIOTimeout over HTTP
    [11/Jun/2013:22:30:14.68933] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: socket 13 connected to rh62xzg.eng.platformlab.ibm.com:9080 timeout=900
    [11/Jun/2013:22:30:14.68939] 00000cd9 08fc1700 - DEBUG: lib_stream: openStream: Opening the stream
    [11/Jun/2013:22:30:14.68952] 00000cd9 08fc1700 - DETAIL: ws_common: websphereGetStream: Created a new stream; queue was empty, socket = 13 Local Port=44449
    [11/Jun/2013:22:30:14.68957] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestSetHeader: Setting the header name |_WS_HAPRT_WLMVERSION| to value |-1|
    [11/Jun/2013:22:30:14.68968] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestWrite: Writing the request reqInfo is OK:
    [11/Jun/2013:22:30:14.68976] 00000cd9 08fc1700 - DETAIL:    GET /first/DatePrintServlet HTTP/1.1
    [11/Jun/2013:22:30:14.68979] 00000cd9 08fc1700 - DETAIL:    Host: 9.111.242.145
    [11/Jun/2013:22:30:14.68983] 00000cd9 08fc1700 - DETAIL:    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
    [11/Jun/2013:22:30:14.68987] 00000cd9 08fc1700 - DETAIL:    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [11/Jun/2013:22:30:14.68991] 00000cd9 08fc1700 - DETAIL:    Accept-Language: en-AU,zh-CN;q=0.5
    [11/Jun/2013:22:30:14.68995] 00000cd9 08fc1700 - DETAIL:    Accept-Encoding: gzip, deflate
    [11/Jun/2013:22:30:14.69024] 00000cd9 08fc1700 - DETAIL:    Cache-Control: max-age=0
    [11/Jun/2013:22:30:14.69038] 00000cd9 08fc1700 - DETAIL:    $WSIS: false
    [11/Jun/2013:22:30:14.69043] 00000cd9 08fc1700 - DETAIL:    $WSSC: http
    [11/Jun/2013:22:30:14.69046] 00000cd9 08fc1700 - DETAIL:    $WSPR: HTTP/1.1
    [11/Jun/2013:22:30:14.69050] 00000cd9 08fc1700 - DETAIL:    $WSRA: 9.111.242.196
    [11/Jun/2013:22:30:14.69054] 00000cd9 08fc1700 - DETAIL:    $WSRH: 9.111.242.196
    [11/Jun/2013:22:30:14.69058] 00000cd9 08fc1700 - DETAIL:    $WSSN: 9.111.242.145
    [11/Jun/2013:22:30:14.69061] 00000cd9 08fc1700 - DETAIL:    $WSSP: 80
    [11/Jun/2013:22:30:14.69066] 00000cd9 08fc1700 - DETAIL:    Surrogate-Capability: WS-ESI="ESI/1.0+"
    [11/Jun/2013:22:30:14.69070] 00000cd9 08fc1700 - DETAIL:    _WS_HAPRT_WLMVERSION: -1
    [11/Jun/2013:22:30:14.69084] 00000cd9 08fc1700 - DEBUG: ws_common: websphereExecute: Wrote the request; reading the response
    [11/Jun/2013:22:30:14.69089] 00000cd9 08fc1700 - DETAIL: lib_htresponse: htresponseRead: Reading the response: f0012660
    [11/Jun/2013:22:30:14.69093] 00000cd9 08fc1700 - DETAIL:
    [11/Jun/2013:22:30:14.69117] 00000cd9 08fc1700 - ERROR: lib_htresponse: htresponseRead: Response code 0 received. Error occured in reading response -1.
    [11/Jun/2013:22:30:14.69121] 00000cd9 08fc1700 - DEBUG: lib_htresponse: htresponseSetError: Setting the error to: |INVALID_FORMAT|(3, Line: 734)
    [11/Jun/2013:22:30:14.69125] 00000cd9 08fc1700 - ERROR: ws_common: websphereExecute: Failed to read from a new stream; App Server may have gone down during read
    [11/Jun/2013:22:30:14.69129] 00000cd9 08fc1700 - DEBUG: lib_stream: destroyStream: Destroying the stream
    [11/Jun/2013:22:30:14.69141] 00000cd9 08fc1700 - DEBUG: lib_rio: rclose: socket 13 closed
    [11/Jun/2013:22:30:14.69178] 00000cd9 08fc1700 - DEBUG: ws_server: serverSetFailoverStatus: Request to mark default_node_defaultServer0 down ignored.

  • wellsmith
    wellsmith
    8 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-12T00:41:37Z  

    thank you!

  • wellsmith
    wellsmith
    8 Posts

    Re: Collectives in Liberty is not like cluster in ND?

    ‏2013-06-12T03:58:42Z  
    • wellsmith
    • ‏2013-06-12T00:41:05Z

    thanks for your reply.

    I download a install manager and select the following two options to install:

    1>. IBM HTTP server for Websphere application server

    2>. web server plugin for Websphere application server

     

    after the installation is completed, I finish the configuration for httpd.conf as belows:

    LoadModule was_ap22_module /opt/IBM/WebSphere/Plugins/bin/64bits/mod_was_ap22_http.so
    WebSpherePluginConfig /opt/IBM/HTTPServer/conf/plugin-cfg.xml

     

    then copy the generated plugin file to the web server host, restart IHS, but can not find any routing.

    web server host and liberty app server both shipped on Readhat6.1, there is no firewall and I make sure all the server is live

    the detail logs as here :

    /Jun/2013:22:30:14.68380] 00000cd9 08fc1700 - DEBUG: ESI: cacheURL: '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68384] 00000cd9 08fc1700 - DETAIL: ESI: esiRequestPushUrl: '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68391] 00000cd9 08fc1700 - DEBUG: ESI: esiRequestCreate: success
    [11/Jun/2013:22:30:14.68396] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseGet
    [11/Jun/2013:22:30:14.68441] 00000cd9 08fc1700 - DEBUG: ESI: esiRulesGetCacheId: getting cache id for '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68447] 00000cd9 08fc1700 - DEBUG: ESI: esiFindEntry: key = '/first/DatePrintServlet'; hash = 86335016
    [11/Jun/2013:22:30:14.68451] 00000cd9 08fc1700 - DETAIL: ESI: esiRulesGetCacheId: cache miss; no rule for '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68457] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: creating new response
    [11/Jun/2013:22:30:14.68462] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: adding Surrogate-Capability header
    [11/Jun/2013:22:30:14.68466] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestSetHeader: Setting the header name |Surrogate-Capability| to value |WS-ESI="ESI/1.0+"|
    [11/Jun/2013:22:30:14.68471] 00000cd9 08fc1700 - DEBUG: ESI: esiResponseCreate: sending request and awaiting response
    [11/Jun/2013:22:30:14.68474] 00000cd9 08fc1700 - DEBUG: ws_common: websphereWriteRequestReadResponse: Enter reqInfo is OK
    [11/Jun/2013:22:30:14.68482] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking for session affinity
    [11/Jun/2013:22:30:14.68489] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the SSL cookie affinity: SSLJSESSION
    [11/Jun/2013:22:30:14.68493] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: Looking for cookie: 'SSLJSESSION'
    [11/Jun/2013:22:30:14.68519] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: No cookie found for: 'SSLJSESSION'
    [11/Jun/2013:22:30:14.68534] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the cookie affinity: JSESSIONID
    [11/Jun/2013:22:30:14.68538] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: Looking for cookie: 'JSESSIONID'
    [11/Jun/2013:22:30:14.68541] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestGetCookieValue: No cookie found for: 'JSESSIONID'
    [11/Jun/2013:22:30:14.68545] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Checking the url rewrite affinity: jsessionid
    [11/Jun/2013:22:30:14.68549] 00000cd9 08fc1700 - DEBUG: ws_common: websphereParseSessionID: Parsing session id from '/first/DatePrintServlet'
    [11/Jun/2013:22:30:14.68553] 00000cd9 08fc1700 - DEBUG: ws_common: websphereParseSessionID: No session found for jsessionid
    [11/Jun/2013:22:30:14.68556] 00000cd9 08fc1700 - DEBUG: ws_common: websphereHandleSessionAffinity: Bypassing check for partitionID cookie affinity.  No stored partition table.
    [11/Jun/2013:22:30:14.68564] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: Round Robin load balancing
    [11/Jun/2013:22:30:14.68570] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: numPrimaryServers is 1
    [11/Jun/2013:22:30:14.68573] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: group defaultServer_default_node_Cluster
    [11/Jun/2013:22:30:14.68579] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68585] 00000cd9 08fc1700 - DEBUG: ws_server_group: weights_need_reset: default_node_defaultServer0: 1 max, 0 cur.
    [11/Jun/2013:22:30:14.68589] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary server
    [11/Jun/2013:22:30:14.68593] 00000cd9 08fc1700 - DEBUG: ws_server_group: weights_need_reset: Time to reset the weights
    [11/Jun/2013:22:30:14.68625] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstServer: getting the first server
    [11/Jun/2013:22:30:14.68638] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextServer: getting the next server
    [11/Jun/2013:22:30:14.68642] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: max multiplication factor 1.
    [11/Jun/2013:22:30:14.68646] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstServer: getting the first server
    [11/Jun/2013:22:30:14.68650] 00000cd9 08fc1700 - DEBUG: ws_server_group: assureWeightsValid: Server default_node_defaultServer0: 1 max, 1 cur.
    [11/Jun/2013:22:30:14.68654] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextServer: getting the next server
    [11/Jun/2013:22:30:14.68662] 00000cd9 08fc1700 - DEBUG: New attempts 1 numberservers 1
    [11/Jun/2013:22:30:14.68665] 00000cd9 08fc1700 - TRACE: ws_server_group: NewserverGroupNextRoundRobinServer: Initializing Round Robin Iterator
    [11/Jun/2013:22:30:14.68671] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetServerIterator: Getting the round robin iterator starting point 0
    [11/Jun/2013:22:30:14.68675] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68681] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetNextPrimaryServer: getting the next primary server
    [11/Jun/2013:22:30:14.68685] 00000cd9 08fc1700 - TRACE: ws_server_group: serverGroupGetFirstPrimaryServer: getting the first primary server
    [11/Jun/2013:22:30:14.68689] 00000cd9 08fc1700 - STATS: ws_server_group: serverGroupCheckServerStatus: Checking status of default_node_defaultServer0, ignoreWeights 0, markedDown 0, retryNow 0, retryInSec --, wlbAllows 1 reachedMaxConnectionsLimit 0
    [11/Jun/2013:22:30:14.68693] 00000cd9 08fc1700 - DEBUG: ws_server_group: lockedServerGroupUseServer: Server default_node_defaultServer0 picked, weight 0.
    [11/Jun/2013:22:30:14.68721] 00000cd9 08fc1700 - DEBUG: ws_server_group: serverGroupIncrementConnectionCount: Server default_node_defaultServer0 picked, pendingConnectionCount 1 totalConnectionsCount 1.
    [11/Jun/2013:22:30:14.68736] 00000cd9 08fc1700 - DEBUG: ws_server_group: NewserverGroupNextRoundRobinServer: use server default_node_defaultServer0
    [11/Jun/2013:22:30:14.68740] 00000cd9 08fc1700 - TRACE: ws_common: websphereFindTransport: Finding the transport
    [11/Jun/2013:22:30:14.68746] 00000cd9 08fc1700 - DETAIL: ws_common: websphereFindTransport: Setting the transport(case 2): rh62xzg.eng.platformlab.ibm.com on port 9080
    [11/Jun/2013:22:30:14.68752] 00000cd9 08fc1700 - DEBUG: ws_common: websphereExecute: Executing the transaction with the app server reqInfo is OKuseExistingStream=0, client->stream=(nil)
    [11/Jun/2013:22:30:14.68756] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: Getting the stream to the app server
    [11/Jun/2013:22:30:14.68759] 00000cd9 08fc1700 - DEBUG: ws_transport: transportStreamDequeue: Checking for existing stream from the queue
    [11/Jun/2013:22:30:14.68767] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: calling blocking connect
    [11/Jun/2013:22:30:14.68910] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: Setting socket to non-block for ServerIOTimeout over HTTP
    [11/Jun/2013:22:30:14.68933] 00000cd9 08fc1700 - DEBUG: ws_common: websphereGetStream: socket 13 connected to rh62xzg.eng.platformlab.ibm.com:9080 timeout=900
    [11/Jun/2013:22:30:14.68939] 00000cd9 08fc1700 - DEBUG: lib_stream: openStream: Opening the stream
    [11/Jun/2013:22:30:14.68952] 00000cd9 08fc1700 - DETAIL: ws_common: websphereGetStream: Created a new stream; queue was empty, socket = 13 Local Port=44449
    [11/Jun/2013:22:30:14.68957] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestSetHeader: Setting the header name |_WS_HAPRT_WLMVERSION| to value |-1|
    [11/Jun/2013:22:30:14.68968] 00000cd9 08fc1700 - DEBUG: lib_htrequest: htrequestWrite: Writing the request reqInfo is OK:
    [11/Jun/2013:22:30:14.68976] 00000cd9 08fc1700 - DETAIL:    GET /first/DatePrintServlet HTTP/1.1
    [11/Jun/2013:22:30:14.68979] 00000cd9 08fc1700 - DETAIL:    Host: 9.111.242.145
    [11/Jun/2013:22:30:14.68983] 00000cd9 08fc1700 - DETAIL:    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0
    [11/Jun/2013:22:30:14.68987] 00000cd9 08fc1700 - DETAIL:    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    [11/Jun/2013:22:30:14.68991] 00000cd9 08fc1700 - DETAIL:    Accept-Language: en-AU,zh-CN;q=0.5
    [11/Jun/2013:22:30:14.68995] 00000cd9 08fc1700 - DETAIL:    Accept-Encoding: gzip, deflate
    [11/Jun/2013:22:30:14.69024] 00000cd9 08fc1700 - DETAIL:    Cache-Control: max-age=0
    [11/Jun/2013:22:30:14.69038] 00000cd9 08fc1700 - DETAIL:    $WSIS: false
    [11/Jun/2013:22:30:14.69043] 00000cd9 08fc1700 - DETAIL:    $WSSC: http
    [11/Jun/2013:22:30:14.69046] 00000cd9 08fc1700 - DETAIL:    $WSPR: HTTP/1.1
    [11/Jun/2013:22:30:14.69050] 00000cd9 08fc1700 - DETAIL:    $WSRA: 9.111.242.196
    [11/Jun/2013:22:30:14.69054] 00000cd9 08fc1700 - DETAIL:    $WSRH: 9.111.242.196
    [11/Jun/2013:22:30:14.69058] 00000cd9 08fc1700 - DETAIL:    $WSSN: 9.111.242.145
    [11/Jun/2013:22:30:14.69061] 00000cd9 08fc1700 - DETAIL:    $WSSP: 80
    [11/Jun/2013:22:30:14.69066] 00000cd9 08fc1700 - DETAIL:    Surrogate-Capability: WS-ESI="ESI/1.0+"
    [11/Jun/2013:22:30:14.69070] 00000cd9 08fc1700 - DETAIL:    _WS_HAPRT_WLMVERSION: -1
    [11/Jun/2013:22:30:14.69084] 00000cd9 08fc1700 - DEBUG: ws_common: websphereExecute: Wrote the request; reading the response
    [11/Jun/2013:22:30:14.69089] 00000cd9 08fc1700 - DETAIL: lib_htresponse: htresponseRead: Reading the response: f0012660
    [11/Jun/2013:22:30:14.69093] 00000cd9 08fc1700 - DETAIL:
    [11/Jun/2013:22:30:14.69117] 00000cd9 08fc1700 - ERROR: lib_htresponse: htresponseRead: Response code 0 received. Error occured in reading response -1.
    [11/Jun/2013:22:30:14.69121] 00000cd9 08fc1700 - DEBUG: lib_htresponse: htresponseSetError: Setting the error to: |INVALID_FORMAT|(3, Line: 734)
    [11/Jun/2013:22:30:14.69125] 00000cd9 08fc1700 - ERROR: ws_common: websphereExecute: Failed to read from a new stream; App Server may have gone down during read
    [11/Jun/2013:22:30:14.69129] 00000cd9 08fc1700 - DEBUG: lib_stream: destroyStream: Destroying the stream
    [11/Jun/2013:22:30:14.69141] 00000cd9 08fc1700 - DEBUG: lib_rio: rclose: socket 13 closed
    [11/Jun/2013:22:30:14.69178] 00000cd9 08fc1700 - DEBUG: ws_server: serverSetFailoverStatus: Request to mark default_node_defaultServer0 down ignored.

    Thanks all, I have resolved this issue. the reason why IHS can not get response from remote liberty server is that they are locate on different network segment.