b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

ibm websphere mq (1cpu)_ibm websphere mq jar_ibm websphere m

电脑杂谈  发布时间:2019-09-06 01:06:09  来源:网络整理

ibm websphere mq (1cpu)_ibm websphere mq jar_ibm websphere mq搭建

开发四年只会写业务代码ibm websphere mq (1cpu),分布式高并发都不会还做程序员?->>>

最近的程序仍然在和websphere mq打交道,但是碰到这些疑问,网上查资料几乎查不到什么结果。。。主要有一下几个问题,求大神来解答

1、事务

ibm websphere mq (1cpu)_ibm websphere mq搭建_ibm websphere mq jar

我看有一些实例,比如《IBM WebSphere MQ基础教程》这本书中,无论是往mq放消息而是取消息都调用了qMgr.commit(),而网上一些实例都没有调用该方式。所以什么时候该用,什么时候不用?

2、多线程访问mq

ibm websphere mq搭建_ibm websphere mq (1cpu)_ibm websphere mq jar

未充分利用CPU提升效益,应用是多线程的。多个泛型同时访问一个队列从上面更改息会有问题吗?还是《IBM WebSphere MQ基础教程》这本书里有那么一段话:

但是,从网上某篇博客中又看见这样一句话:

ibm websphere mq jar_ibm websphere mq (1cpu)_ibm websphere mq搭建

我对访问mq的操作作了一个封装类MQGet,使用了单例。。。。应用是一个web应用ibm websphere mq (1cpu),在servlet的init方法中先读取MQGet.getInstance().conn(),这样应用推进时就确立了联结;然后在进入的N多个线程中都调用MQGet.getInstance().getMsg()来取队列消息;在servlet的destroy方法中读取MQGet.getInstance().close()来关闭连接。

不知道这样做是否有问题,坐等大神指教。。

ibm websphere mq jar_ibm websphere mq (1cpu)_ibm websphere mq搭建

附MQGet类源码:

package com.tk.csc.service;
import org.apache.log4j.Logger;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
public class MQGet {
	private static final Logger logger = Logger.getLogger(MQGet.class);
	private static final String HOST = OverallProperties.getInstance().getPropertyStr("mqUrl");
	private static final int PORT = OverallProperties.getInstance().getPropertyInt("mqPort");
	private static final String CHANNEL = OverallProperties.getInstance().getPropertyStr("mqChannel");
	private static final String QMANAGER = OverallProperties.getInstance().getPropertyStr("mqManager");
	private static final String QNAME = OverallProperties.getInstance().getPropertyStr("mqName");
	private static final int CCSID = 1208;
	
	private static final MQGet m = new MQGet();
	
	private MQQueueManager qMgr;
	private MQQueue queue ;
	public static MQGet getInstance() {
		return m;
	}
	
	private MQGet() {}
	
	public boolean conn() {
		logger.info("trying to connect MQ:" + HOST+ ":" + PORT);
		MQEnvironment.hostname = HOST;
		MQEnvironment.channel = CHANNEL;
		MQEnvironment.CCSID = CCSID;
		MQEnvironment.port = PORT;
		MQEnvironment.properties.put("transport", "MQSeries");
		
		try {
			qMgr = new MQQueueManager(QMANAGER, 0);
		} catch (MQException e) {
			logger.info("create mqmanager fail!" + e.getMessage());
			return false;
		}
		
		try {
			queue = qMgr.accessQueue(QNAME, 8226, null, null, null);
		} catch (MQException e) {
			logger.info("accessQueue fail!" + e.getMessage());
			return false;
		}
		return true;
	}
	
	public String[]  getMsg() {
			
			int depth = 0;
			try {
				depth = queue.getCurrentDepth();
			} catch (MQException e1) {
				logger.info("get queue depth fail!" + e1.getMessage());
			}
			
			logger.info("当前队列深度==" + depth);
			
			if (depth <= 0) {
				return null;
			}
			
			MQGetMessageOptions gmo = new MQGetMessageOptions();
	        gmo.options = gmo.options + 2;
	        gmo.options = gmo.options + 8192;
	        
	        MQMessage rcvMsg = new MQMessage();
			try {
				queue.get(rcvMsg, gmo);
			} catch (MQException e) {
				logger.info("get msg from queue fail!" + e.getMessage());
			}
			String[] s = null;
			try {
				s = (String[]) rcvMsg.readObject();
			} catch (Exception e) {
				logger.info("execute readObject() fail!" + e.getMessage()); 
			}
			return s;
		
	}
	
	public void close() {
		if (queue != null) {
			try {
				queue.close();
				logger.info("close queue Success!");
			} catch (MQException e) {
				logger.info("colse queue fail!");
			}finally {
				if (qMgr != null) {
					try {
						qMgr.close();
						qMgr.disconnect();
						logger.info("close qMgr Success!");
					} catch (MQException e) {
						logger.info("close qMgr fail !");
					}
				}
			}
		}
	}
}

3、是否有也许有丢消息的状况?

在测试过程中经常出现队列深度queue.getCurrentDepth()一次增加2的状况,但是唯有一个应用一个线程在更改息,每取走一条消息深度必须减1啊,,,


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-121852-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 郑娟
        郑娟

        伊拉克肯定向中俄暗盟倾斜的

      • 赵龙慧
        赵龙慧

        当时日本军舰都有速射炮

      热点图片
      拼命载入中...