This discussion is archived
1 Reply Latest reply: Jul 9, 2008 5:55 PM by 3004 RSS

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

666705 Newbie
Currently Being Moderated
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 Newbie
    Currently Being Moderated
    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