9 Replies Latest reply on Jun 24, 2013 11:51 AM by Ruben Melo

    Mod_Cluster 1.2.4.Final + AS5 - Not Working

    Ruben Melo Newbie

      I went to github and downloaded the source and built mod_cluster 1.2.4

       

      After configuring it with AS5 (5.1.2) im getting the following error:

       

       

      From Server.log

      ====================

      013-06-18 16:09:19,991 WARN  [org.jboss.system.server.profileservice.hotdeploy.HDScanner] (HDScanner) Failed to process changes
      org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): DEPLOYMENTS MISSING DEPENDENCIES:
        Deployment "ModClusterListener" is missing the following dependencies:
          Dependency "WebServer" (should be in state "Create", but is actually in state "Configured") DEPLOYMENTS IN ERROR:
        Deployment "WebServer" is in error due to the following reason(s): Configured at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1008)
      at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:954)
      at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:870)
      at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128)
      at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:416)
      at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:294)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:351)
      at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:178)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
      at java.lang.Thread.run(Thread.java:722)



      ......

      2013-06-18 16:13:13,370 ERROR [org.jboss.system.server.profileservice.ProfileServiceBootstrap] (main) Failed to load profile: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS):

        Deployment "ModClusterListener" is missing the following dependencies:
          Dependency "WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "WebServer" is missing the following dependencies:
          Dependency "ModClusterListener" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/AdminTools" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/BusinessProcessBI" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/MOBIServer" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/MobileBIService" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/MobileOTA14" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/OpenSearch" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/clientapi" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/BOE/dswsbobje" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/ROOT" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/admin-console" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/invoker" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/jbossws" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/jmx-console" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/juddi" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/load-demo" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured")
        Deployment "jboss.web.deployment:war=/web-console" is missing the following dependencies:
          Dependency "jboss.web:service=WebServer" (should be in state "Create", but is actually in state "Configured") DEPLOYMENTS IN ERROR:
        Deployment "jboss.web:service=WebServer" is in error due to the following reason(s): Configured
      Server.xml
      ===================

      <Listener className="org.jboss.web.tomcat.service.deployers.MicrocontainerIntegrationLifecycleListener" delegateBeanName="ModClusterListener" />

       

      jboss-bean.xml
      ==================


      <depends>ModClusterListener</depends>

       

       

      mod_cluster-jboss-beans.xml  (i added the text in red because it is missing / broken from the original github source)

      ============================

       

      <?xml version="1.0" encoding="UTF-8"?>
      <!--
        Beans that provide JBoss AS-side functionality for mod_cluster. These
        beans are all "On Demand", i.e. that are not installed unless requested.
      -->
      <deployment xmlns="urn:jboss:bean-deployer:2.0">

        <!-- Entry point: catalina lifecycle listener -->
        <bean name="ModClusterListener" class="org.jboss.modcluster.container.jbossweb.JBossWebEventHandlerAdapter" mode="On Demand">
          <constructor>
            <parameter class="org.jboss.modcluster.container.ContainerEventHandler"><inject bean="ModClusterService"/></parameter>
            <parameter class="javax.management.MBeanServer"><inject bean="JMXKernel" property="mbeanServer"/></parameter>
          </constructor>
          <depends>WebServer</depends>
        </bean>
       
        <!-- The core mod_cluster service -->
        <bean name="ModClusterService" class="org.jboss.modcluster.ModClusterService" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster",exposedInterface=org.jboss.modcluster.ModClusterServiceMBean.class)</annotation>
          <constructor>
            <parameter class="org.jboss.modcluster.config.impl.ModClusterConfig"><inject bean="ModClusterConfig"/></parameter>
            <parameter class="org.jboss.modcluster.load.LoadBalanceFactorProvider"><inject bean="DynamicLoadBalanceFactorProvider"/></parameter>
          </constructor>
        </bean>
       
        <!-- Configure this node's communication with the load balancer -->
        <bean name="ModClusterConfig" class="org.jboss.modcluster.config.impl.ModClusterConfig" mode="On Demand">
         
          <!-- Comma separated list of address:port listing the httpd servers
               where mod_cluster is running. -->
          <property name="proxyList">${jboss.mod_cluster.proxyList,jboss.modcluster.proxyList:}</property>
          <!-- URL prefix to send with commands to mod_cluster.  Default is no prefix. -->
          <!--property name="proxyURL"></property-->
         
          <!-- mod_advertise is a small httpd module that advertises the
               availability of httpd servers via multicast, allowing
               ModClusterService to discover the httpd front-end instead of/in
               addition to having them defined in proxyList. -->
          <!-- Whether to listen for advertise messages -->
          <property name="advertise">${jboss.mod_cluster.advertise:true}</property>
          <!-- Multicast address on which to listen for advertisements -->
          <property name="advertiseInterface">${jboss.mod_cluster.advertise.address,jboss.modcluster.advertise.address,jboss.partition.udpGroup:224.0.1.105}</property>
          <!-- Port to listen to for advertisements -->
          <property name="advertisePort">${jboss.mod_cluster.advertise.port,jboss.modcluster.advertise.port:23364}</property>
         
          <!-- Comma delimited list of contexts that should *not* be auto-registered with httpd. -->
          <!-- ROOT indicates the root context. -->
          <!-- Context may be qualified by host using a colon, e.g. host1:context1 -->
          <!-- If no host is defined, localhost is assumed. -->
          <property name="excludedContexts">${jboss.mod_cluster.excludedContexts,jboss.modcluster.excludedContexts:ROOT,admin-console,invoker,jbossws,jmx-console,juddi,web-console}</property>
          <property name="autoEnableContexts">${jboss.mod_cluster.autoEnableContexts:true}</property>
         
          <!-- Security key the proxy is going to send with advertise messages.
               Default is none. -->
          <!--property name="advertiseSecurityKey"></property-->
         
          <!-- Whether to use SSL to communicate with mod_cluster. Note this
               has nothing to do with handling of https requests by JBoss Web -->
          <property name="ssl">false</property>
         
          <!-- Configuration values for the load balancer itself (must be the
               same on all nodes in the cluster). These will be passed to the
               load balancer. -->
          <property name="stickySession">true</property>
          <property name="stickySessionForce">false</property>
          <property name="stickySessionRemove">false</property>
          <property name="maxAttempts">1</property>
          <property name="workerTimeout">-1</property>
        </bean>
       
        <!-- Provides information to ModClusterService informing it how much load
             this server should take.  This impl calculates load factor from a
             number of metrics and adjusts the value periodically based on runtime
             conditions, using to the JBossWeb engine's backgroundProcessorDelay. -->
        <bean name="DynamicLoadBalanceFactorProvider" class="org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProvider" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor",exposedInterface=org.jboss.modcluster.load.impl.DynamicLoadBalanceFactorProviderMBean.class)</annotation>
          <constructor>
            <parameter>
              <!-- Define the load metrics to use in your load balance factor calculation here -->
              <set elementClass="org.jboss.modcluster.load.metric.LoadMetric">
                <inject bean="BusyConnectorsLoadMetric"/>
                <inject bean="HeapMemoryUsageLoadMetric"/>
              </set>
            </parameter>
          </constructor>
          <!-- The number of historical load values used to determine load factor -->
          <!--property name="history">9</property-->
          <!-- The exponential decay factor for historical load values -->
          <!--property name="decayFactor">2</property-->
        </bean>

        <!-- Default load metrics/sources -->
        <!-- The JBossWeb connector thread pool usage as a ratio of busy threads to max thread pool size -->
        <!-- Analogous to method=B in mod_jk -->
        <bean name="BusyConnectorsLoadMetric" class="org.jboss.modcluster.load.metric.impl.BusyConnectorsLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=BusyConnectors",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!-- The weight determines the significance of this metric with respect
               to others in the overall load balance factor calculation -->
          <property name="weight">2</property>
        </bean>
       
        <!-- The heap memory usage as a ratio of used heap to max heap size -->
        <!-- N.B. This load metric is its own source -->
        <bean name="HeapMemoryUsageLoadMetric" class="org.jboss.modcluster.load.metric.impl.HeapMemoryUsageLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=HeapMemoryUsage",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!--property name="weight">1</property-->
        </bean>


        <!-- Alternative load balance factor providers -->
       
        <!-- Basic impl that returns a static load balance factor.
             This would replace the DynamicLoadBalanceFactorProvider
             used above.
         -->
        <bean name="SimpleLoadBalanceFactorProvider" class="org.jboss.modcluster.load.impl.SimpleLoadBalanceFactorProvider" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor",exposedInterface=org.jboss.modcluster.load.impl.SimpleLoadBalanceFactorProviderMBean.class)</annotation>
          <property name="loadBalanceFactor">1</property>
        </bean>

        <!--
             Alternative load metrics, grouped by source.
             To use these, inject them into the set passed to the
             DynamicLoadBalanceFactorProvider bean's constructor above.
         -->
       
        <!-- CPU usage -->
        <!-- Perhaps the best metric for determining system load - but only available on Java 1.6 or later -->
        <bean name="AverageSystemLoadMetric" class="org.jboss.modcluster.load.metric.impl.AverageSystemLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=AverageSystemLoad",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
        </bean>
        <!-- The system memory usage as ratio of used memory to total memory size -->
        <!-- Requires com.sun.management.OperatingSystemMXBean, i.e. Sun or OpenJDK JVM -->
        <bean name="SystemMemoryUsageLoadMetric" class="org.jboss.modcluster.load.metric.impl.SystemMemoryUsageLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=SystemMemoryUsage",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
        </bean>


        <!-- The number of requests/sec processed by the JBossWeb connectors, with respect to the defined capacity -->
        <!-- Analogous to method=R in mod_jk -->
        <bean name="RequestCountLoadMetric" class="org.jboss.modcluster.load.metric.impl.RequestCountLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=RequestCount",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!-- This metric requires an explicit capacity, e.g. maximum capacity of 1000 requests/sec -->
          <property name="capacity">1000</property>
        </bean>
        <!-- The incoming traffic received by JBossWeb connectors in KB/sec, with respect to the defined capacity -->
        <!-- Analogous to method=T in mod_jk -->
        <bean name="ReceiveTrafficLoadMetric" class="org.jboss.modcluster.load.metric.impl.ReceiveTrafficLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=ReceiveTraffic",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!-- This metric requires an explicit capacity, e.g. max capacity of 1024 KB/s -->
          <property name="capacity">1024</property>
        </bean>
        <!-- The outgoing traffic sent by JBossWeb connectors in KB/sec, with respect to the defined capacity -->
        <bean name="SendTrafficLoadMetric" class="org.jboss.modcluster.load.metric.impl.SendTrafficLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=SendTraffic",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!-- This metric requires an explicit capacity, e.g. max capacity of 512 KB/s -->
          <property name="capacity">512</property>
        </bean>


        <!-- The number of active sessions, with respect to the defined capacity -->
        <!-- Analogous to method=S in mod_jk -->
        <bean name="ActiveSessionsLoadMetric" class="org.jboss.modcluster.load.metric.impl.ActiveSessionsLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=ActiveSessions",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <!-- This metric requires an explicit capacity, e.g. max capacity of 1000 active sessions -->
          <property name="capacity">1000</property>
        </bean>

        <!-- Generic load metrics/sources -->
       
        <!-- Uses the sum of the values of the specified attribute for each
             mbean matching the query, with respect to a defined capacity. -->
        <bean name="MBeanAttributeLoadMetric" class="org.jboss.modcluster.load.metric.impl.MBeanAttributeLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=MBeanAttribute",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <property name="pattern"><!-- mbean name pattern --></property>
          <property name="attribute"><!-- mbean attribute --></property>
          <property name="capacity">1</property>
        </bean>
        <!-- Uses the ratio of the sum of the values of the specified dividend attribute,
             to the sum of the values of the specified divisor attribute for each mbean
             matching the query. -->
        <bean name="MBeanAttributeRatioLoadMetric" class="org.jboss.modcluster.load.metric.impl.MBeanAttributeRatioLoadMetric" mode="On Demand">
          <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.web:service=ModCluster,provider=LoadBalanceFactor,metric=MBeanAttributeRatio",exposedInterface=org.jboss.modcluster.load.metric.LoadMetricMBean.class)</annotation>
          <property name="pattern"><!-- mbean name pattern --></property>
          <property name="dividendAttribute"><!-- mbean attribute --></property>
          <property name="divisorAttribute"><!-- mbean attribute --></property>
        </bean>

      </deployment>

       

       

      Any suggestions would be greatly appreciated.

       

      This same server / configuration works perfectly fine with mod_cluster 1.2.0