JmsAdaptor.java 2.28 KB
package com.sitech.jmx.adaptor;

import javax.jms.Message;
import javax.jms.ObjectMessage;

import org.apache.log4j.Logger;

import com.sitech.ismp.check.CommandExcutor;
import com.sitech.ismp.messageObject.AgentSyncObject;
import com.sitech.ismp.messageObject.AlarmEventConfigSyncObject;
import com.sitech.ismp.messageObject.MibConfigSyncObject;
import com.sitech.ismp.messageObject.cc.CommandParameters;
import com.sitech.util.ThreadPoolUtil;
import com.sitech.util.mq.MQReceiver;

/**
 * Agent配置同步服务接口
 * @author LINXC
 * 2012-12-24
 */
public class JmsAdaptor extends MQReceiver {
	public Logger logger = Logger.getLogger(JmsAdaptor.class);

	public JmsAdaptor(String url, String name) {
		super(url, name, QUEUE);
	}

    protected void dispatchMessage(Message arg0) {
        try {
            if (arg0 instanceof ObjectMessage) {
                Object object = ((ObjectMessage) arg0).getObject();

                if (object instanceof AgentSyncObject) {
                    AgentSyncObject agentSyncObj = (AgentSyncObject) object;

                    if (ManualOprUtil.isManualTriger(agentSyncObj)) {
                        // 手动触发执行任务
                        ManualOprUtil.doManualOperation(agentSyncObj);
                    } else {
                        // 采集配置同步
                        SchSyncUtil.doSyncOperation(agentSyncObj);
                    }
                } else if (object instanceof AlarmEventConfigSyncObject) {
                    // 告警配置同步
                    EvtSyncUtil.doSyncOperation(((AlarmEventConfigSyncObject) object));
                } else if (object instanceof MibConfigSyncObject) {
                    // MIB同步
                	System.out.println("---------开始MIB同步-----------");
                	MibSyncUtil.doSyncOperation(((MibConfigSyncObject) object));
                } else if (object instanceof CommandParameters) {
                    // 当agent类型为指令执行器时才处理
                    CommandParameters param = (CommandParameters) object;
                    ThreadPoolUtil.executorService.execute(new CommandExcutor(param));
                }
            }
        } catch (Exception e) {
            logger.error("Exception while process message:" + arg0, e);
        }
    }









}