1 Reply Latest reply: Jul 9, 2008 7:55 PM by 3004 RSS

    [Weblogic 9.2MP2] Error targetting WorkManagerMBean to an empty cluster

    666705
      Our product installation creates Work Managers using the WLST command.

      At the time that the Work Managers are created, we have the Domain, Cluster, and Admin Server created. However no Managed Servers yet (they are created later).

      The snippet of our WLST script is as follows:

      clusterTarget = getMBean('/Clusters/myCluster')
      ms2=getMBean('/SelfTuning/HDMDomain/MaxThreadsConstraints/MaxThreadConstraint_75')
      if ms2 is None:
      ms2 = cmo.createMaxThreadsConstraint('MaxThreadConstraint_75')
      ms2.setCount(75)
      ms2.addTarget(clusterTarget)
      else:
      ms2.setCount(75)

      wm1=getMBean('/SelfTuning/myDomain/WorkManagers/hdm.ConnectionRequests')
      if wm1 is None:
      cd('/SelfTuning/HDMDomain/WorkManagers')
      wm1 = cmo.createWorkManager('hdm.ConnectionRequests')
      wm1.addTarget(clusterTarget)
      wm1.setMaxThreadsConstraint(ms2)

      We got the following error:

      java.lang.IllegalArgumentException: WorkManagerMBean 'hdm.ConnectionRequests' refers to a constraint or request class 'MaxThreadCons
      traint_75' but they are deployed on targets that have no servers in common. Please deploy the mbeans such that they share atleast on
      e server in common.
      at weblogic.management.configuration.WorkManagerLegalHelper.validateTargets(WorkManagerLegalHelper.java:66)
      at weblogic.management.configuration.WorkManagerMBeanImpl.setMaxThreadsConstraint(WorkManagerMBeanImpl.java:480)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at weblogic.management.jmx.modelmbean.WLSModelMBean.setAttribute(WLSModelMBean.java:620)
      at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.setAttribute(DynamicMetaDataImpl.java:180)
      at com.sun.jmx.mbeanserver.MetaDataImpl.setAttribute(MetaDataImpl.java:206)
      at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:737)
      at com.sun.jmx.mbeanserver.JmxMBeanServer.setAttribute(JmxMBeanServer.java:722)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
      at weblogic.management.mbeanservers.edit.internal.EditLockInterceptor.setAttribute(EditLockInterceptor.java:95)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
      at weblogic.management.mbeanservers.internal.SecurityInterceptor.setAttribute(SecurityInterceptor.java:341)
      at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$8.run(AuthenticatedSubjectInterceptor.java:300)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor.setAttribute(AuthenticatedSubjectInterceptor.ja
      va:298)
      at weblogic.management.jmx.mbeanserver.WLSMBeanServer.setAttribute(WLSMBeanServer.java:290)
      at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1431)
      at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
      at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
      at javax.management.remote.rmi.RMIConnectionImpl.setAttribute(RMIConnectionImpl.java:679)
      at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
      at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:550)
      at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:440)
      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
      at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:436)
      at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:58)
      at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:975)
      at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
      at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

      java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: WorkManagerMBean 'hdm.ConnectionRequests' refers to a constr
      aint or request class 'MaxThreadConstraint_75' but they are deployed on targets that have no servers in common. Please deploy the mbeans such that they share atleast one server in common.

      My questions are:

      1) Why is it prohibited that we create a WorkManager with MaxThreadsContraint both targeted at a Cluster, but no Managed Servers in the Cluster?

      2) Say the Cluster has 1 Managed Server at the time the script is run. But months later, another Managed Server is added. Do I have to call addTarget() again for the new Managed Server?

      thanks,
      -shinta
        • 1. Re: [Weblogic 9.2MP2] Error targetting WorkManagerMBean to an empty cluster
          3004
          I believe this was a bug that is fixed in 10.3

          You might try targeting in a different edit session and see if that
          eliminates the validation error.

          Peter

          Shinta Smith wrote:
          Our product installation creates Work Managers using the WLST command.

          At the time that the Work Managers are created, we have the Domain, Cluster, and Admin Server created. However no Managed Servers yet (they are created later).

          The snippet of our WLST script is as follows:

          clusterTarget = getMBean('/Clusters/myCluster')
          ms2=getMBean('/SelfTuning/HDMDomain/MaxThreadsConstraints/MaxThreadConstraint_75')
          if ms2 is None:
          ms2 = cmo.createMaxThreadsConstraint('MaxThreadConstraint_75')
          ms2.setCount(75)
          ms2.addTarget(clusterTarget)
          else:
          ms2.setCount(75)

          wm1=getMBean('/SelfTuning/myDomain/WorkManagers/hdm.ConnectionRequests')
          if wm1 is None:
          cd('/SelfTuning/HDMDomain/WorkManagers')
          wm1 = cmo.createWorkManager('hdm.ConnectionRequests')
          wm1.addTarget(clusterTarget)
          wm1.setMaxThreadsConstraint(ms2)

          We got the following error:

          java.lang.IllegalArgumentException: WorkManagerMBean 'hdm.ConnectionRequests' refers to a constraint or request class 'MaxThreadCons
          traint_75' but they are deployed on targets that have no servers in common. Please deploy the mbeans such that they share atleast on
          e server in common.
          at weblogic.management.configuration.WorkManagerLegalHelper.validateTargets(WorkManagerLegalHelper.java:66)
          at weblogic.management.configuration.WorkManagerMBeanImpl.setMaxThreadsConstraint(WorkManagerMBeanImpl.java:480)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:585)
          at weblogic.management.jmx.modelmbean.WLSModelMBean.setAttribute(WLSModelMBean.java:620)
          at com.sun.jmx.mbeanserver.DynamicMetaDataImpl.setAttribute(DynamicMetaDataImpl.java:180)
          at com.sun.jmx.mbeanserver.MetaDataImpl.setAttribute(MetaDataImpl.java:206)
          at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.setAttribute(DefaultMBeanServerInterceptor.java:737)
          at com.sun.jmx.mbeanserver.JmxMBeanServer.setAttribute(JmxMBeanServer.java:722)
          at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
          at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
          at weblogic.management.mbeanservers.edit.internal.EditLockInterceptor.setAttribute(EditLockInterceptor.java:95)
          at weblogic.management.jmx.mbeanserver.WLSMBeanServerInterceptorBase.setAttribute(WLSMBeanServerInterceptorBase.java:124)
          at weblogic.management.mbeanservers.internal.SecurityInterceptor.setAttribute(SecurityInterceptor.java:341)
          at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor$8.run(AuthenticatedSubjectInterceptor.java:300)
          at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
          at weblogic.management.mbeanservers.internal.AuthenticatedSubjectInterceptor.setAttribute(AuthenticatedSubjectInterceptor.ja
          va:298)
          at weblogic.management.jmx.mbeanserver.WLSMBeanServer.setAttribute(WLSMBeanServer.java:290)
          at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1431)
          at javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectionImpl.java:81)
          at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1245)
          at java.security.AccessController.doPrivileged(Native Method)
          at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1348)
          at javax.management.remote.rmi.RMIConnectionImpl.setAttribute(RMIConnectionImpl.java:679)
          at javax.management.remote.rmi.RMIConnectionImpl_WLSkel.invoke(Unknown Source)
          at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:550)
          at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:440)
          at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
          at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:147)
          at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:436)
          at weblogic.rmi.internal.BasicServerRef.access$300(BasicServerRef.java:58)
          at weblogic.rmi.internal.BasicServerRef$BasicExecuteRequest.run(BasicServerRef.java:975)
          at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
          at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

          java.lang.IllegalArgumentException: java.lang.IllegalArgumentException: WorkManagerMBean 'hdm.ConnectionRequests' refers to a constr
          aint or request class 'MaxThreadConstraint_75' but they are deployed on targets that have no servers in common. Please deploy the mbeans such that they share atleast one server in common.

          My questions are:

          1) Why is it prohibited that we create a WorkManager with MaxThreadsContraint both targeted at a Cluster, but no Managed Servers in the Cluster?

          2) Say the Cluster has 1 Managed Server at the time the script is run. But months later, another Managed Server is added. Do I have to call addTarget() again for the new Managed Server?

          thanks,
          -shinta