FileDocCategorySizeDatePackage
EntityBeanMonitorTask.javaAPI DocGlassfish v2 API10149Fri May 04 22:25:18 BST 2007com.sun.enterprise.cli.commands.monitor

EntityBeanMonitorTask

public class EntityBeanMonitorTask extends BeanMonitorTask

Fields Summary
private final String
displayFormat
Constructors Summary
public EntityBeanMonitorTask(ServerRootMonitor srm, String filter, Timer timer, boolean verbose, File fileName)


             
                                   
         
    
        super(srm, filter, timer, verbose, fileName);
        
        if (this.filter == null)
            getDefaultFilter();
        else
        {
            final StringTokenizer st = new StringTokenizer(this.filter, ":");
            if (st.countTokens() < 2 )
                throw new MonitorTaskException(localStrings.getString("commands.monitor.entity_bean_invalid_filter"));
            else if (st.countTokens() == 2)
            {
                ejbName = st.nextToken();
                beanName = st.nextToken();
            }
            else {
                appName = st.nextToken();
                ejbName = st.nextToken();
                beanName = st.nextToken();
            }
            verifyFilterValue();
        }
        final String entityBeanTitle = localStrings.getString("commands.monitor.entity_bean_monitoring_title", new Object[] {this.filter});
        final String title = String.format("%1$50s", entityBeanTitle);
        CLILogger.getInstance().printMessage(title);
        displayHeader();        
    
Methods Summary
booleancheckIfBeanExists(java.util.Map ejbModuleMap)
returns true if entitybean exists in ejbmodule

throws
MonitorTaskException if ejbmodule is invalid.

        if (!ejbModuleMap.containsKey(ejbName))
        {
            if (appName == null)
                throw new MonitorTaskException(localStrings.getString("commands.monitor.does_not_exist", new Object[] {ejbName}));
            else
                throw new MonitorTaskException(localStrings.getString("commands.monitor.does_not_exist_in1", new Object[] {ejbName, appName}));                
        }
        else {
            final EJBModuleMonitor ejbmoduleMonitor = ejbModuleMap.get(ejbName);
            final Map<String,EntityBeanMonitor> entityBeanMap = ejbmoduleMonitor.getEntityBeanMonitorMap();
            if (!entityBeanMap.containsKey(beanName))
                return false;
            else
                return true;
        }
    
private voiddisplayData(EntityBeanStats stat)

        final String data = String.format(displayFormat,
                                          stat.getPooledCount().getLowWaterMark(),
                                          stat.getPooledCount().getHighWaterMark(),
                                          stat.getPooledCount().getCurrent(),
                                          stat.getReadyCount().getLowWaterMark(),
                                          stat.getReadyCount().getHighWaterMark(),
                                          stat.getReadyCount().getCurrent());
        CLILogger.getInstance().printMessage(data);
        if (fileName != null)
        {
            final String fileData = String.format("%1$s,%2$s,%3$s,%4$s,%5$s,%6$s",
                                          stat.getPooledCount().getLowWaterMark(),
                                          stat.getPooledCount().getHighWaterMark(),
                                          stat.getPooledCount().getCurrent(),
                                          stat.getReadyCount().getLowWaterMark(),
                                          stat.getReadyCount().getHighWaterMark(),
                                          stat.getReadyCount().getCurrent());
            writeToFile(fileData);
        }
    
public voiddisplayDetails()

        final String details = localStrings.getString("commands.monitor.entity_bean_detail");
        CLILogger.getInstance().printMessage(details);
    
private voiddisplayHeader()

        final String pooledCount = localStrings.getString("commands.monitor.pooledcount");
        final String readyCount = localStrings.getString("commands.monitor.readycount");
        final String low = localStrings.getString("commands.monitor.low");
        final String hi = localStrings.getString("commands.monitor.hi");
        final String current = localStrings.getString("commands.monitor.current");
        
        
        final String header = String.format("%1$20s %2$30s",
                                            pooledCount, readyCount);
        final String subHeader = String.format(displayFormat,
                                               low,hi,current,low,hi,current);
        
        CLILogger.getInstance().printMessage(header);
        CLILogger.getInstance().printMessage(subHeader);

        if (fileName != null)
        {
            writeToFile(localStrings.getString("commands.monitor.entity_bean_write_to_file"));
        }
    
java.util.ListgetBeansInEjbModule(java.lang.String appName, java.util.Map ejbModuleMap)

        List<String> possibleEntityBeans = new Vector<String>();
        final String[] ejbModules = MapUtil.getKeyStrings(ejbModuleMap);
        if (ejbModuleMap != null && ejbModuleMap.size() > 0)
        {
            for (String ejbModule : ejbModules)
            {
                final EJBModuleMonitor ejbModuleMonitor = ejbModuleMap.get(ejbModule);
                final Map<String,EntityBeanMonitor> entityBeanMap = ejbModuleMonitor.getEntityBeanMonitorMap();
                final String[] entityBeans = MapUtil.getKeyStrings(entityBeanMap);
                for (String entityBean : entityBeans)
                {
                    if (appName == null)
                        possibleEntityBeans.add(ejbModule+":"+entityBean);
                    else
                        possibleEntityBeans.add(appName+":"+ejbModule+":"+entityBean);
                }
            }
        }
        return possibleEntityBeans;
    
private EntityBeanMonitorgetEntityBeanMonitor(java.util.Map ejbMap)

        final EJBModuleMonitor ejbModuleMonitor = ejbMap.get(ejbName);
        final Map<String,EntityBeanMonitor> entitybeanMap = ejbModuleMonitor.getEntityBeanMonitorMap();
        return entitybeanMap.get(beanName);
    
public voidrun()

        if (srm == null) {
            super.cancelMonitorTask();
            return;
        }
        
        Map<String,EJBModuleMonitor> ejbMap = null;
        if (appName == null)
        {
            ejbMap = srm.getEJBModuleMonitorMap();
        }
        else
        {
            final Map<String,ApplicationMonitor> appMap = srm.getApplicationMonitorMap();
            if (appMap == null || appMap.size()<1) {
                cancelMonitorTask();
                return;
            }
            final ApplicationMonitor am = appMap.get(appName);
            ejbMap = am.getEJBModuleMonitorMap();
        }
        if (ejbMap == null || ejbMap.size()<1) {
            cancelMonitorTask();
            return;
        }
        
        final EntityBeanMonitor entitybeanMonitor = getEntityBeanMonitor(ejbMap);
        if (entitybeanMonitor == null) {
            cancelMonitorTask();
            return;
        }
        
        final EntityBeanStats entitybeanStat = entitybeanMonitor.getEntityBeanStats();
        if (verbose && counter == NUM_ROWS)
        {
            displayHeader();
            counter = 0;  //reset to 0
        }
        displayData(entitybeanStat);
        if (verbose) counter++;