亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mqthread.java

?? 針對IBM的消息中間件MQ編寫的程序
?? JAVA
字號:
package com.face;

import com.mq.MQOperator;

import java.util.*;

public class MQThread extends Thread {
	//Define const for call function
	public static final int IDLE = 0;
	public static final int WAITRETURN = -1;
	public static final int PUT_MESSAGE = 1;
	public static final int GET_MESSAGE = 2;
	public static final int CONN_QMANAGER = 3;
	public static final int LIST_QUEUE = 4;
	
	private IMQDisplay mywindow; //Display message interface class
	private int runflag = 0; //函數是否運行的標志
                             // Should be locked!
	private String MQI_NAME; //MQI的名稱
	private int completion_code; //完成碼
	private int reason_code; //原因碼
	private String return_message; //返回信息
	private boolean suspendFlag; //線程是否運行的標志
	private String[] queue;
	private String QM_NAME; //隊列管理器名稱
	private String Q_NAME; //隊列名稱
	private String outMessage; //要發送的消息
	private String inMessage = null; //讀取的消息
	private MQOperator mqOp; 
	
	/**
	 * 構造函數
	 */
	public MQThread() {
		this.suspendFlag = false;
	}
	
	/**
	 * 構造函數
	 */
	public MQThread(IMQDisplay listener) {
		this.mywindow = listener;
		this.suspendFlag = false;
		runflag = IDLE;
	}
	
	/**
	 * 設置運行標志位
	 * @param flag 運行標志位
	 * @return boolean
	 */
	public synchronized boolean setrunflag(int flag) {
		/*如果線程還在運行,則等待,不能做任何工作*/
		if(runflag != IDLE) {
			return false;
		}
		runflag = flag;
		return true;
	}
	
	/**
	 * 獲取運行標志位
	 * @return int
	 */
	public int getrunflag() {
		return runflag;
	}
	
	/**
	 * 設置隊列管理器的名稱
	 * @param QMgrName 隊列管理器的名稱
	 */
	public void setQM_NAME(String QMgrName) {
		QM_NAME = QMgrName;
	}
	
	/**
	 * 取得隊列管理器的名稱
	 * @return String 隊列管理器名稱
	 */
	public String getQM_NAME() {
		return QM_NAME;
	}
	
	/**
	 * 設置隊列的名稱
	 * @param QName 隊列的名稱
	 */
	public void setQ_NAME(String QName) {
		Q_NAME = QName;
	}
	
	/**
	 * 取得隊列的名稱
	 * @return String 隊列的名稱
	 */
	public String getQ_NAME() {
		return Q_NAME;
	}
	
	/**
	 * 取得隊列名稱數組
	 * @return String[]
	 */
	public String[] getQ_NAMES() {
		return queue;
	}
	
	/**
	 * 設置隊列名稱數組
	 * @param q
	 */
	public void setQ_NAMES(String[] q) {
		queue = q;
	}
	
	/**
	 * 取得完成碼
	 * @return int 完成碼
	 */
	public int getComCode() {
		return completion_code;
	}
	
	/**
	 * 設置完成碼
	 * @param code 完成碼
	 */
	public void setComCode(int code) {
		completion_code = code;
	}
	
	/**
	 * 取得原因碼
	 * @return int 原因碼
	 */
	public int getReaCode() {
		return reason_code;
	}
	
	/**
	 * 設置原因碼
	 * @param code 原因碼
	 */
	public void setReaCode(int code) {
		reason_code = code;
	}
	
	/**
	 * 設置發送消息
	 * @param message 要發送的消息
	 */
	public void setOutMessage(String message) {
		outMessage = message;
	}
	
	/**
	 * 獲取要發送的消息
	 * @return String 要發送的消息
	 */
	public String getOutMessage() {
		return outMessage;
	}
	
	/**
	 * 設置接收消息
	 * @param message
	 */
	public void setInMessage(String message) {
		inMessage = message;
	}
	
	/**
	 * 獲取接收到的消息
	 * @return
	 */
	public String getInMessage() {
		return inMessage;
	}
	
	/**
	 * 獲取MQI的名稱
	 * @return String MQI名稱
	 */
	public String getMQIName() {
		return MQI_NAME;
	}
	
	/**
	 * 設置MQI的名稱
	 * @param mqiName MQI名稱
	 */
	public void setMQIName(String mqiName) {
		MQI_NAME = mqiName;
	}
	
	/**
	 * 獲得返回信息
	 * @return String
	 */
	public String getreturn_message() {
		runflag = IDLE;
		return return_message;
	}	
	
	/**
	 * 屏幕打印
	 * @param ch
	 * @param msg
	 */
	private void myprintln(int ch, String msg) {
		mywindow.println(ch, msg);
		//System.out.println(msg);
	}
	
	public void run() {
		int i;
		//completion_code = 0;
		return_message = "--";
		MQOperator mqOperator = new MQOperator();
		for(i = 0; ;i ++) {
			//myprintln(3, "runflag=" + runflag);
			switch(runflag) {
				case 1:
					MQI_NAME = "PutMessage";
					put(mqOperator);
							
					//return_message = new Date() + "Complete!\n";
					if(completion_code == 0) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_OK" + "(" 
						                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else if(completion_code == 1) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_WARNING" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_FAILED" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					}					
					runflag = WAITRETURN;
					
					
					
					break;
				case 2:
					MQI_NAME = "GetMessage";
					get(mqOperator);
					
					//return_message = new Date() + "Complete!\n";
					if(completion_code == 0) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_OK" + "(" 
						                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else if(completion_code == 1) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_WARNING" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_FAILED" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					}					
					runflag = WAITRETURN;
															
					break;
				case 3:
					MQI_NAME = "MQQueueManager";
					connQMgr(mqOperator);			
					//System.out.println(completion_code);
					//System.out.println(reason_code);
					//return_message = new Date() + "Complete!\n";
					if(completion_code == 0) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_OK" + "(" 
						                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else if(completion_code == 1) {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_WARNING" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					} else {
						return_message = "[MQI]:" + MQI_NAME + "[完成碼]:MQCC_FAILED" + "(" 
		                                 + completion_code + ")" + "[原因碼]:" + "(" + reason_code + ")";
					}					
					runflag = WAITRETURN;					
					break;
				case 4:
					MQI_NAME = "ListQueues";
					getQueueName(mqOperator);				
					//return_message = new Date() + "Complete!\n";
					return_message = "Connect Success!\n";			
					runflag = WAITRETURN;
					
					break;
				default:
					try {
						//myprintln(4, "sleep");
						sleep(2000);
					} catch(Exception e) {
						
					}
					break;										
			}
		}
	}
	
	/**
	 * 控制線程為被占用
	 */
	public synchronized void mysuspend() {
		suspendFlag = true;
	}
	
	/**
	 * 控制線程重新被使用
	 */
	public synchronized void myresume() {
		suspendFlag = false;
		try {
			notify(); //Wakes up a single thread that is waiting on this object's monitor
		} catch(Exception e) {
			System.out.println("notify error:" + e.getMessage());
		}
		
	}
	
	/**
	 * 發送消息
	 * @param op
	 * @return boolean
	 */
	public boolean put(MQOperator op) {
		mqOp = op;
		if(mqOp.connQManager(QM_NAME) == null) {
			myprintln(3, "輸入無效!");
			
			return false;
		} else if(mqOp.openQueue(Q_NAME) == null) {
			//myprintln(3, "選擇有誤!");
			
			return false;
		} else if(mqOp.getCurQueueDepth() >= mqOp.getMaxQueueDepth() - 100) {
			myprintln(2, "請注意!隊列可放消息空間不足!");
			return false;
		} else {
			
			if(mqOp.putMessage(outMessage) != 1) {
				myprintln(2, "發送失敗!");
				
			} else {
				myprintln(2, "發送成功!");
				
			}
		}
		completion_code = mqOp.getCompletionCode();
		reason_code = mqOp.getReasonCode();	
		
		mqOp.closeQueue();
		mqOp.disConnection();
		return true;
	}
	
	/**
	 * 讀取消息
	 * @param op
	 * @return boolean
	 */
	public boolean get(MQOperator op) {
		mqOp = op;
		if(mqOp.connQManager(QM_NAME) == null) {
			return false;
		} else if(mqOp.openQueue(Q_NAME) == null) {
			return false;
		} else {
			if(mqOp.getCurQueueDepth() == 0) {
				myprintln(2, "隊列為空!");			
			} else {
				myprintln(2, "[獲取的消息為]:" + mqOp.getMessage());
				//setInMessage(mqOp.getMessage());
			}
		}
		completion_code = mqOp.getCompletionCode();
		reason_code = mqOp.getReasonCode();	
		
		mqOp.closeQueue();
		mqOp.disConnection();
		return true;
	}
	
	/**
	 * 連接隊列管理器
	 * @param op
	 * @return boolean
	 */
	public boolean connQMgr(MQOperator op) {
		mqOp = op;
		if(mqOp.connQManager(QM_NAME) == null) {
			myprintln(3, "輸入無效,請重新輸入隊列管理器!");
			
			completion_code = mqOp.getCompletionCode();
			reason_code = mqOp.getReasonCode();	
			
			return false;
		} else {
			myprintln(3, "輸入有效,請選擇隊列!");
			return true;
		}
	}
	
	/**
	 * 獲取隊列名稱
	 * @param op
	 * @return boolean
	 */
	public boolean getQueueName(MQOperator op) {
		mqOp = op;
		queue = mqOp.listQueueName(QM_NAME);
		
		completion_code = mqOp.getCompletionCode();
		reason_code = mqOp.getReasonCode();	
		
		return true;
		
	}

	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
视频在线在亚洲| 欧美日韩一区二区不卡| 欧美精品一区二区三区久久久| 国产精品美女久久久久久2018| 日本美女一区二区三区视频| 在线观看三级视频欧美| 亚洲精品欧美二区三区中文字幕| 成人av电影免费在线播放| 精品国产电影一区二区| 久久国产精品色| 精品99一区二区| 国产·精品毛片| 国产精品进线69影院| 99re在线精品| 一区二区三区av电影 | 国产欧美va欧美不卡在线| 国产美女一区二区三区| 久久久电影一区二区三区| 丁香亚洲综合激情啪啪综合| 亚洲欧洲精品一区二区三区不卡| 91在线看国产| 日韩av中文在线观看| 久久久久亚洲综合| 色综合天天综合网天天狠天天 | 欧美一卡二卡三卡四卡| 国产精品一二三四| 亚洲人成伊人成综合网小说| 欧美日韩一区二区不卡| 国产精品自在在线| 亚洲国产一区二区视频| 国产日韩欧美精品一区| 欧美视频中文一区二区三区在线观看| 麻豆成人在线观看| 一区二区三区日韩精品视频| 精品va天堂亚洲国产| 欧美性色综合网| 91女人视频在线观看| 国产在线视频精品一区| 亚洲午夜私人影院| 国产精品网站导航| 日韩久久免费av| 91精品国产综合久久久久| 99re在线视频这里只有精品| 国产福利不卡视频| 久久丁香综合五月国产三级网站| 亚洲黄色尤物视频| 亚洲码国产岛国毛片在线| 日本一区二区综合亚洲| 久久看人人爽人人| 久久尤物电影视频在线观看| 欧美精品免费视频| 欧美精品第1页| 欧美二区三区的天堂| 欧美精品久久久久久久多人混战| 一本到三区不卡视频| 在线观看一区日韩| 欧美羞羞免费网站| 91麻豆精品国产自产在线观看一区| 91女神在线视频| 欧美午夜在线一二页| 欧美日韩亚洲国产综合| 欧美高清hd18日本| 日韩精品中文字幕在线一区| 久久影视一区二区| 国产精品视频在线看| 亚洲三级在线免费| 五月开心婷婷久久| 美女视频第一区二区三区免费观看网站| 视频精品一区二区| 国产美女视频91| 91猫先生在线| 日韩欧美高清dvd碟片| 久久精品一区二区三区四区| 亚洲图片欧美激情| 老司机精品视频导航| 99久久精品免费看国产| 欧美日韩情趣电影| 久久精品视频网| 调教+趴+乳夹+国产+精品| 韩国v欧美v亚洲v日本v| 欧美亚洲国产一区在线观看网站| 日韩亚洲欧美综合| 亚洲欧美中日韩| 韩国三级在线一区| 欧美性色黄大片手机版| 中文字幕不卡的av| 麻豆国产一区二区| 精品视频在线视频| 日韩理论电影院| 高清国产一区二区| 欧美成人女星排行榜| 中文字幕免费一区| 丝袜美腿亚洲色图| 欧美三级电影精品| 夜夜嗨av一区二区三区网页| 国产成人综合亚洲网站| 精品99一区二区三区| 美女尤物国产一区| 日韩欧美高清在线| 捆绑变态av一区二区三区| 91精品在线麻豆| 蜜臀国产一区二区三区在线播放| 欧美日韩国产小视频| 天天操天天综合网| 欧美日韩一级二级三级| 日韩电影在线免费观看| 日韩精品一区二区三区视频在线观看| 亚洲国产日韩在线一区模特| 欧美日本精品一区二区三区| 亚洲高清视频的网址| 欧美一区在线视频| 国产精品亚洲第一区在线暖暖韩国| 欧美精品一区二区三区在线| 国产a视频精品免费观看| 国产精品久久久久久一区二区三区| 成人黄色一级视频| 亚洲妇女屁股眼交7| 日韩欧美www| 99精品久久免费看蜜臀剧情介绍| 亚洲青青青在线视频| 日韩欧美在线123| 91色婷婷久久久久合中文| 日韩中文字幕不卡| 国产精品欧美精品| 精品视频在线免费| 国产白丝网站精品污在线入口| 亚洲黄色尤物视频| 久久精品在线观看| 欧美日韩国产片| av午夜精品一区二区三区| 日韩电影免费在线看| 国产精品久久久久9999吃药| 欧美福利视频导航| 在线欧美日韩精品| 成人激情小说网站| 国产精品99久| 久久电影网电视剧免费观看| 日韩精品乱码av一区二区| 国产精品美日韩| 国产日韩欧美精品在线| 日韩精品一区二区三区四区| 91久久奴性调教| 99久久国产综合精品色伊 | 亚洲欧美另类图片小说| 国产日韩影视精品| 欧美精品一区视频| 欧美mv日韩mv| 精品美女在线观看| 精品少妇一区二区三区在线播放 | 亚洲伊人伊色伊影伊综合网| 成人免费一区二区三区视频| 国产午夜亚洲精品理论片色戒| 日韩精品中文字幕一区二区三区| 欧美日韩另类一区| 7878成人国产在线观看| 日韩一级免费观看| 26uuu精品一区二区在线观看| 日韩视频永久免费| 2020国产精品| 国产精品国产三级国产普通话蜜臀| 国产日韩欧美精品综合| 综合激情成人伊人| 亚洲小说春色综合另类电影| 欧美aaaaaa午夜精品| 国产精品自在欧美一区| 972aa.com艺术欧美| 欧美日韩国产一级片| 玉米视频成人免费看| 亚洲欧美激情一区二区| 免费久久99精品国产| 国产一区不卡在线| 在线免费观看一区| 久久亚洲免费视频| 一区二区三区精品在线| 免费在线看成人av| www.亚洲精品| 久久嫩草精品久久久精品| 亚洲免费观看视频| 久久成人18免费观看| 91国产福利在线| 国产欧美一区二区三区鸳鸯浴| 亚洲黄色免费网站| 成人久久18免费网站麻豆 | 欧美日韩一二区| 国产精品传媒视频| 国产成人精品亚洲午夜麻豆| 欧美妇女性影城| 一区二区日韩av| 色综合久久天天| 国产精品久久久久影院| 精彩视频一区二区三区| 欧美男生操女生| 亚洲一区二区三区四区中文字幕| 成人精品在线视频观看| 久久亚洲精品小早川怜子| 另类综合日韩欧美亚洲| 欧美一二三区精品| 青青草原综合久久大伊人精品 | 91精品国产综合久久婷婷香蕉| 激情综合网天天干|