CollCront.java 2.45 KB
package com.sitech.ismp.coll;

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.LineNumberReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Vector;
import org.apache.log4j.Logger;

public class CollCront implements CollCrontMBean {

	/*
	 * ��SHELL�ű�
	 * 
	 * @param params
	 * 
	 * @return
	 */

	private static Logger logger = Logger.getLogger("LOGER");

	public CollCront() {

	}

	public Vector doCrontab(HashMap params) {

		String lin = "";
		String shellway = "";
		Process process = null;

		shellway = params.get("SHELLWAY").toString().trim();
		logger.info("doCrontab :" + shellway);

		Runtime sys = Runtime.getRuntime();

		try {
			process = sys.exec(shellway);

			/** 20090413(huangkai) NEW **/
			BufferedReader bufferedReader = new BufferedReader(
					new InputStreamReader(process.getInputStream()));
			String sb = "";

			while ((lin = bufferedReader.readLine()) != null) {
				sb += lin + "\n";				
			}
			logger.debug("[\n" + shellway + "]<" + sb + ">");

			int err = process.waitFor();

			if (err == 1) { // ���쳣
				InputStreamReader ir = new InputStreamReader(process
						.getErrorStream());
				LineNumberReader input = new LineNumberReader(ir);

				sb = "";
				while ((lin = input.readLine()) != null) {
					sb += lin + "\n";
				}
				logger.error("[" + shellway + "] Error<\n" + sb + ">");
				input.close();
			}

			/** 20090413(huangkai) OLD BEGIN **
			 if(process.getErrorStream().read() != -1) {                
			 //process.destroy();
			 logger.error("[" + shellway + "] Run Error!");
			 }
			 
			 BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(process.getInputStream()));
			 StringBuffer sb = new StringBuffer();
			 
			 while (  (str = bufferedReader.readLine()) != null) {
			 logger.debug("[" + shellway + "]<" + str + ">");
			 }
			 int runResult=process.waitFor();
			 if(runResult==0){
			 logger.debug("[" + shellway + "]<+++++++++ normal termination ++++++++>");
			 }else{
			 logger.error("[" + shellway + "]<+++++++++ error termination ++++++++>");
			 }
			 ** 20090413 OLD END **/

		} catch (Exception e) {
			e.printStackTrace();
			logger.error("[" + shellway + "]Error!");
			logger.error(e);
		}

		return new Vector();
	}

	public static void main(String args[]) throws IOException {
		CollCront CollCront = new CollCront();
		HashMap params = new HashMap();
		
		params.put("SHELLWAY", args[0]);
		CollCront.doCrontab(params);
	}
}