1 2 3 Previous Next 35 Replies Latest reply on Jun 3, 2009 1:21 AM by starksm64 Go to original post
      • 15. Re: How to Expose MBean Invocation Stats into admin-console?
        alrubinger

        k, I'll debug in a few hours after dinner.

        • 16. Re: How to Expose MBean Invocation Stats into admin-console?
          alrubinger

          It's this bit in DeployersImpl.getManagedObjects:

          for (DeployerWrapper deployer : deployers)
           {
           outputs.addAll(deployer.getOutputs());
           // If the deployer supports ManagedObjectCreator let is augment/modify the managed objects
           if(deployer.getManagedObjectCreator() != null)
           mocs.add(deployer);
           }
           //
           mgtObjectCreator.build(unit, outputs, managedObjects);


          Meaning that only the *outputs* of all deployers are scanned. If you just add an attachment with a name, that won't get passed to DefaultManagedObjectCreator.build.

          So this helps in my deployer:

          du.addAttachment(uniqueName, bean, BeanMetaData.class);
          this.addOutput(uniqueName);


          Is this the expected behaviour?

          Even still, I'm not seeing all the ManagedObjects that I'm expecting come through. More tomorrow.

          S,
          ALR

          • 17. Re: How to Expose MBean Invocation Stats into admin-console?
            starksm64

            I guess we are trying to limit the attachments we look at, but limiting to just the outputs is not consistent with how the KernelDeploymentDeployer processes all BeanMetaData attachments regardless of the attachment name. I need to create a testcase for what your trying to do at this point to see what can be done and get this usecase into the testsuite.

            • 18. Re: How to Expose MBean Invocation Stats into admin-console?
              alrubinger

              The logic is odd to me:

              * Loop through all outputs from all deployers
              * If that output has a corresponding attachment, make a managed object out of it.

              Why not just:

              [alrubinger@localhost 2.0.7.GA]$ svn di deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java
              Index: deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java
              ===================================================================
              --- deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java (revision 89514)
              +++ deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java (working copy)
              @@ -21,6 +21,7 @@
               */
               package org.jboss.deployers.spi.deployer.helpers;
              
              +import java.util.Collection;
               import java.util.Map;
               import java.util.Set;
              
              @@ -73,12 +74,14 @@
               if(factory == null )
               factory = ManagedObjectFactoryBuilder.create();
              
              - for(String name : attachments)
              + final Map<String,Object> duAttachments = unit.getAttachments();
              + final Collection<String> attachmentNames = duAttachments.keySet();
              + for(final String attachmentName:attachmentNames)
               {
              - Object instance = unit.getAttachment(name);
              + Object instance = unit.getAttachment(attachmentName);
               if (instance != null)
               {
              - ManagedObject mo = factory.initManagedObject(instance, null, metaData, name, null);
              + ManagedObject mo = factory.initManagedObject(instance, null, metaData, attachmentName, null);
               if (mo != null)
               managedObjects.put(mo.getName(), mo);
               }


              S,
              ALR

              • 19. Re: How to Expose MBean Invocation Stats into admin-console?
                alrubinger

                Using my patch from the previous post, and jboss-deployers:2.2.0-SNAPSHOT, I no longer need to addOutput to the DeploymentUnit.

                But the results are weird:

                ManagedDeployment: vfszip:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/stateless-test.jar/
                +++ ManagedComponent(name=org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=RunAsStatelessEjbName-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                ++++++ properties: [stats]
                +++ ManagedComponent(name=org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=AnonymousStatelessBean-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                


                I get "metrics-invocation" for "RunAsStatelessEjbName" and "metrics-instance" for "AnonymousStatelessBean". I should be getting both invocation and instance metrics for each (as log output from my deployer confirms). And I'm missing some other EJBs entirely:

                09:32:27,330 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=AnonymousStatelessBean-metrics-invocation
                09:32:27,330 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=AnonymousStatelessBean-metrics-instance
                09:32:27,330 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=CheckedStatelessBean-metrics-invocation
                09:32:27,330 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=CheckedStatelessBean-metrics-instance
                09:32:27,330 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=DefaultPoolStatelessBean-metrics-invocation
                09:32:27,359 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=DefaultPoolStatelessBean-metrics-instance
                09:32:27,359 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=RunAsStatelessEjbName-metrics-invocation
                09:32:27,359 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=RunAsStatelessEjbName-metrics-instance
                09:32:27,359 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=StrictMaxPoolStatelessBean-metrics-invocation
                09:32:27,360 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=StrictMaxPoolStatelessBean-metrics-instance
                09:32:27,360 INFO [Ejb3MetricsDeployer] Invocation stats for :jboss.j2ee:service=EJB3,name=UnsecuredStatelessBean-metrics-invocation
                09:32:27,360 INFO [Ejb3MetricsDeployer] Metrics stats for :jboss.j2ee:service=EJB3,name=UnsecuredStatelessBean-metrics-instance
                


                S,
                ALR

                • 20. Re: How to Expose MBean Invocation Stats into admin-console?
                  ips

                  Andrew,

                  I notice you are using MCBean:* as the component types for your MOs, e.g.:

                  (ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=UnsecuredStatelessBean-metrics-instance

                  From the Jopr/client perspective, we prefer that each type of MO has a unique component type, rather than having to look at the MO's name to figure out exactly what type of MO it is. For example, we'd much prefer something like:

                  (ComponentType{type=MCBean, subtype=jboss.j2ee:service=EJB3}), compName=UnsecuredStatelessBean-metrics-instance

                  or even:

                  (ComponentType{type=EJB3, subtype=StatelessBean}), compName=UnsecuredStatelessBean

                  I think the latter style is what Scott wants to head twoard in the future (i.e. not exposing via the component type the impl detail that an MCBean or an MBean backs MOs of that type).

                  • 21. Re: How to Expose MBean Invocation Stats into admin-console?
                    alrubinger

                    OK, so I've confirmed name collisions w/ the ManagedObject.getName. If not specified via @ManagedObject.name, the default behaviour is:

                    name = managementObject.name();
                     if (name.length() == 0 || name.equals(ManagementConstants.GENERATED))
                     name = classInfo.getName();


                    ...from AbstractManagedObjectFactory.buildManagedObject. If I apply the following patch, I get what I'm expecting:

                    Index: deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java
                    ===================================================================
                    --- deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java (revision 89514)
                    +++ deployers-spi/src/main/java/org/jboss/deployers/spi/deployer/helpers/DefaultManagedObjectCreator.java (working copy)
                    @@ -21,6 +21,7 @@
                     */
                     package org.jboss.deployers.spi.deployer.helpers;
                    
                    +import java.util.Collection;
                     import java.util.Map;
                     import java.util.Set;
                    
                    @@ -29,6 +30,7 @@
                     import org.jboss.deployers.structure.spi.DeploymentUnit;
                     import org.jboss.managed.api.ManagedObject;
                     import org.jboss.managed.api.factory.ManagedObjectFactory;
                    +import org.jboss.managed.plugins.ManagedObjectImpl;
                     import org.jboss.managed.plugins.factory.ManagedObjectFactoryBuilder;
                     import org.jboss.metadata.spi.MetaData;
                    
                    @@ -73,14 +75,20 @@
                     if(factory == null )
                     factory = ManagedObjectFactoryBuilder.create();
                    
                    - for(String name : attachments)
                    + final Map<String,Object> duAttachments = unit.getAttachments();
                    + final Collection<String> attachmentNames = duAttachments.keySet();
                    + for(final String attachmentName:attachmentNames)
                     {
                    - Object instance = unit.getAttachment(name);
                    + Object instance = unit.getAttachment(attachmentName);
                     if (instance != null)
                     {
                    - ManagedObject mo = factory.initManagedObject(instance, null, metaData, name, null);
                    - if (mo != null)
                    + ManagedObject mo = factory.initManagedObject(instance, null, metaData, attachmentName, null);
                    + factory.initManagedObject(instance, metaData);
                    + if (mo != null){
                    + ManagedObjectImpl impl = (ManagedObjectImpl) mo;
                    + impl.setName(unit.getName() + "-" + attachmentName);
                     managedObjects.put(mo.getName(), mo);
                    + }
                     }
                     }
                     }


                    Revealing, for instance:

                    ManagedDeployment: vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-invocation, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                    ++++++ properties: [stats]
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-instance, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-instance, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-instance, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-invocation, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                    ++++++ properties: [stats]
                    +++ ManagedComponent(name=vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/-jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-invocation, type=(ComponentType{type=MCBean, subtype=*}), compName=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                    ++++++ properties: [stats]


                    BTW my deployer is:

                    http://anonsvn.jboss.org/repos/jbossas/projects/ejb3/trunk/metrics-deployer/src/main/java/org/jboss/ejb3/metrics/deployer/Ejb3MetricsDeployer.java

                    Can we change the jboss-deployers behaviour to set the @ManagedObject.name, if not specified, to du.getName + attachmentName?

                    S,
                    ALR

                    • 22. Re: How to Expose MBean Invocation Stats into admin-console?
                      alrubinger

                       

                      "ips" wrote:
                      From the Jopr/client perspective, we prefer that each type of MO has a unique component type, rather than having to look at the MO's name to figure out exactly what type of MO it is. For example, we'd much prefer something like...


                      How does this look:

                      http://fisheye.jboss.org/changelog/JBossAS/?cs=89563

                      ...?

                      S,
                      ALR

                      • 23. Re: How to Expose MBean Invocation Stats into admin-console?
                        starksm64

                         

                        "ALRubinger" wrote:
                        OK, so I've confirmed name collisions w/ the ManagedObject.getName.

                        ...

                        Can we change the jboss-deployers behaviour to set the @ManagedObject.name, if not specified, to du.getName + attachmentName?


                        I think the unconditional override of the MO name is too much. Note that the component names are unique as they correspond to the runtime bean names. We can look to default the MO name to the component name if there is no name given on the ManagementObject in the AbstractManagedObjectFactory. The logic would need to be something like this patch:

                        Index: /Users/svn/JBossAS/projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java
                        ===================================================================
                        --- /Users/svn/JBossAS/projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java (revision 89190)
                        +++ /Users/svn/JBossAS/projects/jboss-man/branches/Branch_2_1/managed/src/main/java/org/jboss/managed/plugins/factory/AbstractManagedObjectFactory.java (working copy)
                        @@ -420,6 +420,14 @@
                         MutableManagedObject mmo = (MutableManagedObject) result;
                         ManagedObjectPopulator<Object> populator = getPopulator(moClass);
                         populator.populateManagedObject(mmo, instance, metaData);
                        + // Set a default MO.name to the MO.componentName
                        + Boolean hasDefaultName = (Boolean) mmo.getTransientAttachment("ManagedObject.hasDefaultName");
                        + Object compName = mmo.getComponentName();
                        + if(hasDefaultName && compName != null)
                        + {
                        + String moName = compName.toString();
                        + mmo.setName(moName);
                        + }
                         }
                        
                         return result;
                        @@ -518,6 +526,7 @@
                        
                         // Process the ManagementObject fields
                         boolean isRuntime = managementObject.isRuntime();
                        + boolean hasDefaultName = true;
                         String name = classInfo.getName();
                         String nameType = null;
                         String attachmentName = classInfo.getName();
                        @@ -528,8 +537,12 @@
                         if (managementObject != null)
                         {
                         name = managementObject.name();
                        + hasDefaultName = false;
                         if (name.length() == 0 || name.equals(ManagementConstants.GENERATED))
                        + {
                         name = classInfo.getName();
                        + hasDefaultName = true;
                        + }
                         nameType = managementObject.type();
                         if (nameType.length() == 0)
                         nameType = null;
                        @@ -862,7 +875,7 @@
                         ManagedObjectImpl result = new ManagedObjectImpl(name, properties);
                         result.setAnnotations(moAnnotations);
                         // Set the component name to name if this is a runtime MO with a name specified
                        - if (isRuntime && name.equals(classInfo.getName()) == false)
                        + if (isRuntime && hasDefaultName == false)
                         result.setComponentName(name);
                         if (nameType != null)
                         result.setNameType(nameType);
                        @@ -873,6 +886,8 @@
                         for (ManagedProperty property : properties)
                         property.setManagedObject(result);
                         result.setTransientAttachment(BeanInfo.class.getName(), beanInfo);
                        + // Propagate whether the name is defaulted
                        + result.setTransientAttachment("ManagedObject.hasDefaultName", hasDefaultName);
                         return result;
                         }
                        


                        I just uploaded a jboss-managed and related 2.1.1 snapshot to https://snapshots.jboss.org/maven2/org/jboss/man/jboss-man/2.1.1-SNAPSHOT/ with this change, so can you try that out?

                        Also, instead of casting to a MangedObjectImpl, use the MutableManagedObject interface when you need to change ManagedObject settings.


                        • 24. Re: How to Expose MBean Invocation Stats into admin-console?
                          emuckenhuber

                          I've been looking into this a bit today as well and got a working Ejb3MetricsDeployer not requiring any further updates.

                          I basically changes those things to get it working:
                          - implement the ManagedObjectCreator interface and process the beans internally.
                          - I only create one KernelDeployment with all the metric beans.
                          - Additionally i had to drop the BeanMetaDataBuilder as the construtor was messing up the controllerContext target, so that it was not possible to retrieve any values from the statistics.

                          I'll attach the changes to the JIRA - so that you can take a look at that. I also have a basic testcase in the AS testsuite which i can commit later on.

                          One thing i see which still should be done is a proper MetaMapping for the getStats() which is a Map<Method, TimeStatistic>.
                          So you might want to look at @MetaMapping and MetaMapper - i can also provide further information how to do that.

                          • 25. Re: How to Expose MBean Invocation Stats into admin-console?
                            alrubinger

                            Thanks, guys.

                            Scott, jboss-man:2.1.1-20090531.135556-1 isn't doing it as-is, I'll look into it a bit later.

                            Emanuel, I'll also try your patch. :) I couldn't get the KernelDeployment steps we'd discussed working after our IRC chat the other day, so went with the route currently in SVN. I'd still like to avoid, if possible, the jboss-man API calls like:

                            ManagedObject mo = managedObjectFactory.initManagedObject(bmd, null, metaData, bmd.getName(), null);


                            ...as it's cleaner from the EJB3 perspective to simply attach a @ManagedObject to the DeploymentUnit and have the deployers do the heavy lifting.

                            I'll follow up Monday.

                            S,
                            ALR

                            • 26. Re: How to Expose MBean Invocation Stats into admin-console?
                              emuckenhuber

                               

                              "ALRubinger" wrote:

                              Emanuel, I'll also try your patch. :) I couldn't get the KernelDeployment steps we'd discussed working after our IRC chat the other day, so went with the route currently in SVN. I'd still like to avoid, if possible, the jboss-man API calls like:

                              ManagedObject mo = managedObjectFactory.initManagedObject(bmd, null, metaData, bmd.getName(), null);



                              Yes, agreed - basically this is a workaround and should not be needed in the end.
                              I would need a bit more time and testing to resolve the naming conflicts, but i wanted to check why this was not working. I'll also follow up on this when i know more - but at least you should be able to proceed with this.


                              • 27. Re: How to Expose MBean Invocation Stats into admin-console?
                                ips

                                 

                                How does this look:

                                http://fisheye.jboss.org/changelog/JBossAS/?cs=89563

                                ...?


                                Looks good.

                                Thanks!


                                • 28. Re: How to Expose MBean Invocation Stats into admin-console?
                                  alrubinger

                                  Sorry, Emanuel, with your patch I still get:

                                  ManagedDeployment: vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/
                                  +++ ManagedComponent(name=org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper, type=(ComponentType{type=EJB3, subtype=Session}), compName=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                                  ++++++ properties: [stats]
                                  +++ ManagedComponent(name=org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics, type=(ComponentType{type=EJB3, subtype=SLSB}), compName=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                                  ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                                  


                                  Naming collisions still present. There should be both invocation and instance metrics for each EJB.

                                  Now trying Scott's again, will post back.

                                  S,
                                  ALR

                                  • 29. Re: How to Expose MBean Invocation Stats into admin-console?
                                    alrubinger

                                    OK, the working combo is:

                                    1) Emanuel's patch
                                    2) Scott's jboss:man SNAPSHOT

                                    Resulting in:

                                    ManagedDeployment: vfsfile:/home/alrubinger/business/jboss/wc/jbossas/branches/Branch_5_x/build/output/jboss-5.2.0.Beta/server/default/deploy/profileservice-secured.jar/
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-invocation, type=(ComponentType{type=EJB3, subtype=Session}), compName=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                                    ++++++ properties: [stats]
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-invocation, type=(ComponentType{type=EJB3, subtype=Session}), compName=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                                    ++++++ properties: [stats]
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-invocation, type=(ComponentType{type=EJB3, subtype=Session}), compName=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-invocation, attachment: org.jboss.ejb3.metrics.deployer.ManagedInvocationStatisticsWrapper
                                    ++++++ properties: [stats]
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-instance, type=(ComponentType{type=EJB3, subtype=SLSB}), compName=jboss.j2ee:service=EJB3,name=SecureDeploymentManager-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-instance, type=(ComponentType{type=EJB3, subtype=SLSB}), compName=jboss.j2ee:service=EJB3,name=SecureManagementView-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]
                                    +++ ManagedComponent(name=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-instance, type=(ComponentType{type=EJB3, subtype=SLSB}), compName=jboss.j2ee:service=EJB3,name=SecureProfileService-metrics-instance, attachment: org.jboss.ejb3.metrics.deployer.BasicStatelessSessionInstanceMetrics
                                    ++++++ properties: [removeCount, currentSize, maxSize, createCount, availableCount]


                                    I've therefore committed Emanuel's patch and released as jboss-ejb3-metrics-deployer:1.0.0-alpha-2.

                                    When used in conjunction with jboss-man:2.1.1-20090531.135556-1, this satisfies the JON use case. Scott, would you like to make a formal release of this 2.1.1-SNAPSHOT series?

                                    S,
                                    ALR