精华内容
下载资源
问答
  • websphere详解
    千次阅读
    2017-09-29 15:51:00
    应用程序读取数据库有2种方式,一种是直接连接数据库,一种是调用连接池。
        1)       直连是程序直接创建物理连接,调用数据库进行数据读取。直连的创建会带来很大的系统开销,若程序中多处频繁使用直连,会造成应用服务器资源消耗过多,影响程序的性能。
        2)       连接池是创建和管理一个物理连接的缓冲池,其中会保留一定数量创建的物理连接不关闭,当有客户端请求时,调用连接池,可以有效减少物理连接的创建次数,降低直连所带来的系统开销,缓解应用服务器压力,提高程序性能。
        下面我对连接池各参数意义进行讲解:
        连接超时
        连接超时是指,当对指定连接池进行请求时,池中没有可用连接(连接全部被使用,或者数据库请求超时),当请求时间到达指定之间时未响应,那麽这个时候就会产生超时异常,通过日志可以发现。
        连接超时的设置,是对我们应用响应速度的一种把关,客户往往要求我们的产品在多长时间必须有响应,所以连接超时的设置,可以让我们发现哪些程序点有响应速度问题,可能是数据库查询语句问题,也有可能是程序逻辑死循环,再有可能就是数据库表结构需要优化,还有可能是最大连接数到达最大值。
        最大连接数
        最大连接数是指当前连接池中允许创建的最大物理连接数,当到达指定值后,将不允许创建物理连接。和连接超时相对应,当达到最大值后,连接请求将等待,直到池中有空闲连接为止,否则报连接超时错误。当使用集群机制时,会同时存在多个相同连接池,这个时候需要考虑最大数量的设置。
        最大连接数可以有效控制创建物理连接的数量,连接池的大小影响着服务器资源的占用情况,若连接池过大,则会长期占用服务器可利用资源,若连接池过小,无法满足现场环境应用高负载使用压力。最大连接数的设置应根据TPV观测数据进行合理配置。
        最小连接数
        最小连接数是指当前连接池要保留的最小物理连接,其决定未使用超时维护机制的下限,连接池的创建不是根据最小连接数而特意创建,而是根据用户请求而创建,系统会一直维护最小的连接数目。
        最小连接数使应用服务器保持一定数量的物理连接,利用应用服务器维护机制,合理分配服务器资源。当应用程序访问频繁,但访问人数少的情况下,最小连接数的合理配置,可以将有效的资源进行充分利用,满足特定应用需求。
        收集时间
        收集时间是连接池维护机制的核心,是指每次维护连接池的时间间隔。其有两个维护指标,分别为未使用超时和时效超时,其值应该小于两个指标中的任何一个。每一次维护周期中,连接池都会将连接池中超时的物理连接关闭,以减少系统占用资源。
        合理的收集时间设置,是帮助我们关闭不必要的连接,节省系统资源占用的有效途径。收集时间设置不易过大,因为时间间隔过长,会使很多未被使用的物理连接持续占用资源。若收集时间过小,则频繁的维护会带来很多系统开销,连接池的主要精力都放到了维护上。
        未使用的超时
        未使用的超时指池中的物理连接空闲未使用的时间间隔,每隔指定时间,系统会为连接标记,帮助收集时间在维护过程中进行关闭。未使用的超时应该小于实效超时时间,并且其以最小连接数为标准,当连接数超过最小连接数时,其才起作用。
        未使用超时的设置,帮助我们关闭不必要的空闲连接,释放系统资源,并且减少数据库开销。根据现场环境使用情况,我们可以根据系统访问频繁程序,来定制合理的未使用超时,如果过小,当访问频繁程度大时,总需要重新创建,如果过大,当访问频繁程度不大时,连接池又空闲占用过多。
        时效超时
        实效超时指关闭物理连接的时间间隔,这个值是指到达指定的时间后,关闭满足时间条件的物理连接,若这个物理连接未使用,则直接关闭,若这个连接正在使用,则当前事务结束后,关闭此连接。这个值不受最小连接数的影响,若没有新创建的连接,此机制会关闭连接直到为0。
        时效超时的设置,是为了方式应用程序或者数据库造成的数据库连接持续占用,可能导致的原因包括程序逻辑错误,数据库宕机导致的错误等。还有一种情况为人为导致,就是若某个用户持续占用一个资源不放,会导致其他用户无法访问。所以时效超时的设置,是对不合理使用应用,或者链接错误等进行强行关闭,保证程序的稳定性和持久性。
    更多相关内容
  • WebSphere详解

    2010-03-21 19:26:47
    IBM WebSphere详解 ,描述IBM WebSphere的外文版资料
  • IBM WebSphere详解(PPT 78页)
  • Websphere 新建概要文件:一、查看是否已经创建了概要文件:二、创建概要概要创建可分为两种方式:命令行和图形化界面1、命令行创建概要该方式没有创建用户,可自行查找可以创建用户的命令行概要创建方式。...
  • WebSphere Application Server 是IBM企业级应用服务器,与WAS6,WAS7,WAS8相比较而言 WAS9发生了很大的改变,其安装介质和以前截然不同。本文档用图例的方式详细讲解WebSphere的下载和安装过程,以及部署应用
  • WebSphere安装详解

    2012-04-06 11:50:24
    WebSphere安装详解
  • IBM WebSphere MQ入门教程.pdf
  • IBM-WebSphere-MQ介绍安装以及配置服务详解.docx
  • WebSphere应用发布详解

    2012-04-11 13:47:18
    WebSphere应用发布详解,教你如何使用websphere
  • websphere常用目录

    2011-12-12 15:08:19
    包括了WebSphere中缓存、日志、配置等常用地址
  • IBM Websphere MQ 使用详解

    万次阅读 2019-03-20 17:07:10
    首先,此攻略不包含安装和配置的内容。...下面是安装配置后的截图: 1.队列和通道的理解 队列对应Buffer,通道对应Channel。 根据通道是本方还是对方,启用相应的通道(即服务)。 远程队列_remote发送到对方的本地...

    1.MQ安装配置

    安装和配置的内容,可参考https://jingyan.baidu.com/article/2fb0ba409f4e1e00f2ec5fd3.html
    下面是安装配置后的截图:
    IBM MQ 部署后截图

    2.队列和通道的理解

    队列对应Buffer,通道对应Channel。
    根据通道是本方还是对方,启用相应的通道(即服务)。
    MQ队列
    远程队列_remote发送到对方的本地队列_local。
    比如,在abc_remote上放入消息“123”,在cz_local队列上就能获取“123”。

    更详细的理解请点击

    3.java代码

    3.1 阻塞模式
    import grp.pt.util.StringUtil;
    
    import org.apache.log4j.Logger;
    
    import com.ibm.mq.MQC;
    import com.ibm.mq.MQEnvironment;
    import com.ibm.mq.MQException;
    import com.ibm.mq.MQGetMessageOptions;
    import com.ibm.mq.MQMessage;
    import com.ibm.mq.MQPutMessageOptions;
    import com.ibm.mq.MQQueue;
    import com.ibm.mq.MQQueueManager;
    import com.ibm.mq.MQSimpleConnectionManager;
    import com.river.common.UploadFileUtil;
    
    /**
     * MQ配置 连接信息
     */
    public class MqHandler {
    
    	private static Logger log = Logger.getLogger(MqHandler.class);
    
    	private static String MQ_IP = UploadFileUtil
    			.getFromPro("mqconfig", "MQ_IP");
    
    	private static int MQ_PORT = Integer.parseInt(UploadFileUtil.getFromPro(
    			"mqconfig", "MQ_PORT"));
    	// 队列管理器
    	private static String MQ_QMANAGER = UploadFileUtil.getFromPro("mqconfig",
    			"MQ_QMANAGER");
    	// mq服务方通道
    	private static String MQ_CHANNEL = UploadFileUtil.getFromPro("mqconfig",
    			"MQ_CHANNEL");
    	// mq通讯编码集
    	private static int MQ_CCSID = Integer.parseInt(UploadFileUtil.getFromPro(
    			"mqconfig", "MQ_CCSID"));
    	// mq请求方发送队列
    	private static String MQ_CLENT_SENDQUEUE = UploadFileUtil.getFromPro(
    			"mqconfig", "MQ_CLENT_SENDQUEUE");
    	// mq请求方接收队列
    	private static String MQ_CLENT_RECQUEUE = UploadFileUtil.getFromPro(
    			"mqconfig", "MQ_CLENT_RECQUEUE");
    	
    	// MQ自带连接池
    	private static MQSimpleConnectionManager myConnMan = null;
    	
    	// 异步长连接接收队列管理器
    	private MQQueueManager queueManager = null;
    
    	// 异步发送队列
    	private MQQueue SendQueue = null;
    	// 异步接收队列
    	public MQQueue ReceiveQueue = null;
    	
    	/**
    	 * 构造方法
    	 */
    	public MqHandler() throws Exception {
    		init();
    	}
    
    	/**
    	 * 异步发送消息
    	 * 
    	 * @param msg
    	 * @param messageId
    	 * @param charSet
    	 * @throws Exception
    	 */
    	public void sendMsg(String msg, String messageId, String charSet)
    			throws Exception {
    
    		try {
    
    			if (StringUtil.isEmpty(charSet)) {
    				charSet = "GBK";
    			}
    
    			byte[] msgId = StringUtil.isEmpty(messageId) ? null : messageId
    					.getBytes(charSet);
    
    			// 打开队列
    			queueManager = new MQQueueManager(MQ_QMANAGER, myConnMan);
    			SendQueue = queueManager.accessQueue(MQ_CLENT_SENDQUEUE,
    					MQC.MQOO_OUTPUT | MQC.MQPMO_NEW_MSG_ID
    							| MQC.MQOO_FAIL_IF_QUIESCING, null, null, null);
    
    			// 初始化消息选项
    			MQPutMessageOptions pmo = new MQPutMessageOptions();
    			// 确保每次发送前为消息自动生成唯一的msgId
    			pmo.options = pmo.options + MQC.MQPMO_NEW_MSG_ID;
    			// 如果设置了该参数,则发送后必须调用commit功能。否则无法将消息发送出
    			pmo.options = pmo.options + MQC.MQPMO_SYNCPOINT;
    
    			// 创建消息对象
    			MQMessage outMsg = new MQMessage();
    			// 设置MQMD格式字段
    			outMsg.format = MQC.MQFMT_STRING;
    
    			outMsg.messageId = msgId == null ? MQC.MQMI_NONE : msgId;
    
    			outMsg.encoding = MQ_CCSID;
    			outMsg.characterSet = MQ_CCSID;
    
    			// 消息发送时必须以字节流的方式发送
    			outMsg.write(msg.getBytes(charSet));
    
    			// 在队列上放置消息
    			SendQueue.put(outMsg, pmo);
    
    			// 和MQC.MQPMO_SYNCPOINT属性对应。如果设置了该属性,则发送后需要提交。
    			queueManager.commit();
    
    		} finally {
    			close(SendQueue);
    		}
    
    	}
    
    	/**
    	 * 接收消息
    	 * @param correlationId
    	 * @param charSet
    	 * @return
    	 * @throws Exception
    	 */
    	public String receive(String correlationId, String charSet)
    			throws Exception {
    
    		try {
    			if (StringUtil.isEmpty(charSet)) {
    				charSet = "GBK";
    			}
    			
    			queueManager = new MQQueueManager(MQ_QMANAGER, myConnMan);
    			ReceiveQueue = queueManager.accessQueue(MQ_CLENT_RECQUEUE,
    					MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE
    							| MQC.MQOO_FAIL_IF_QUIESCING);
    
    			MQMessage respMessage = new MQMessage();
    
    			// 设置MQMD 格式字段
    			respMessage.format = MQC.MQFMT_STRING;
    			// 设置编码格式与MQ服务一致
    			respMessage.encoding = MQ_CCSID;
    			// 设置字符集与MQ服务一致
    			respMessage.characterSet = MQ_CCSID;
    
    			MQGetMessageOptions gmo = new MQGetMessageOptions();
    
    			gmo.options = gmo.options + MQC.MQGMO_WAIT; // 如果设置了该参数,则当前线程将阻塞,直到等到回复的消息或超时
    			gmo.waitInterval = MQC.MQWI_UNLIMITED;
    			if (StringUtil.isNotEmpty(correlationId)) {
    				// 如果设置了该参数,则根据消息的correlId去匹配对应的响应消息
    				gmo.matchOptions = MQC.MQMO_MATCH_CORREL_ID;
    				respMessage.correlationId = correlationId.getBytes(charSet);
    			}
    
    			ReceiveQueue.get(respMessage, gmo);
    
    			byte[] msgBuffer = new byte[respMessage.getMessageLength()];
    
    			respMessage.readFully(msgBuffer);
    
    			String respMsg = new String(msgBuffer, charSet);
    
    			return respMsg;
    		} finally {
    			close(ReceiveQueue);
    		}
    	}
    
    	/**
    	 * 初始化连接
    	 * 
    	 * @param type
    	 * @throws MQException
    	 */
    	private void init() throws MQException {
    		MQEnvironment.hostname = MQ_IP;
    		MQEnvironment.port = MQ_PORT;
    		MQEnvironment.CCSID = MQ_CCSID;
    		MQEnvironment.channel = MQ_CHANNEL;
    		MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,
    				MQC.TRANSPORT_MQSERIES_CLIENT);
    		
    		myConnMan = new MQSimpleConnectionManager();
            myConnMan.setActive(MQSimpleConnectionManager.MODE_AUTO);
            myConnMan.setTimeout(3600000);
            myConnMan.setMaxConnections(75);
            myConnMan.setMaxUnusedConnections(50);
            MQEnvironment.setDefaultConnectionManager(myConnMan);
            
    		log.info("初始化队列管理器receiverQueueManager....." + MQ_QMANAGER);
    	}
    
    	private void close(MQQueue queue) {
    
    		try {
    			if (queue != null && queue.isOpen) {
    				queue.close();
    			}
    
    			if (queueManager != null) {
    				queueManager.disconnect();
    			}
    
    		} catch (MQException ex) {
    			log.error("", ex);
    		}
    	}
    }
    
    

    网上类似的代码很多,下面对代码中的细节进行解释。
    初始化
    MQEnvironment的静态属性:hostname、port、CCSID等初始化后,MQQueueManager利用这些属性来构造实例对象。
    MQSimpleConnectionManager是简单的连接池,当设置了连接池后MQEnvironment.setDefaultConnectionManager(myConnMan),再使用close方法时,并不会破坏连接,而是归还池中。

    连接池详细内容可以参考官方的API

    消息参数

    • MQOO_FAIL_IF_QUIESCING
      如果队列管理器停顿就取不到消息
    • MQOO_INPUT_AS_Q_DEF
      读取后消息从队列中移除,与之相对的是MQOO_BROWSE,读取后消息还在。
    • MQGMO_WAIT
      当队列中没有消息时,等待有消息时才返回。相当于阻塞IO。
    • MQWI_UNLIMITED
      无限等待时间,必须设置了waitInterval.xxx并和上条属性结合才能起到阻塞的效果。这个等待时间可为任意值。
    • MQOO_INQUIRE
      如果需要获取队列深度等信息的时候,就要加上此参数。
    • MQPMO_NEW_MSG_ID
      确保每次发送前为消息自动生成唯一的msgId。
    • MQPMO_SYNCPOINT
      如果设置了该参数,则发送后必须调用commit功能。否则无法将消息发送出。queueManager.commit()。

    更多参数参见官方说明

    3.2测试类
    import org.jfree.util.Log;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.junit.runners.JUnit4;
    
    import com.ctjsoft.treasury.util.MqHandler;
    
    @RunWith(JUnit4.class)
    public class MqTest {
    	
    	@Test
    	public void mqSend(){
    		try {
    			MqHandler mq = new MqHandler();
    			mq.sendMsg("sq--send1", null, "gbk");
    			mq.sendMsg("sq--send2", null, "gbk");
    			mq.sendMsg("sq--send3", null, "gbk");
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	@Test
    	public void mqReceive(){
    		try {
    			MqHandler mq = new MqHandler();
    			String msg = mq.receive(null, "gbk");
    			System.out.println(msg);
    			String msg1 = mq.receive(null, "gbk");
    			System.out.println(msg1);
    			String msg2 = mq.receive(null, "gbk");
    			System.out.println(msg2);
    			System.out.println("任务完成");
    		} catch (Exception e) {
    			Log.error("", e);
    		}
    	}
    
    }
    
    

    测试过程中出现的问题举例:

    • MQJE001: 完成代码是 2,原因为 2033
      当前消息队列为空,如果不是阻塞模式的获取消息,队列为空就会抛出此异常。
    • MQJE001: MQException 出现:完成代码是 2,原因为 2018
      MQJI002: 未连接至队列管理器。

      消息通道服务被关闭
    • 原因为 2080
      代表消息的实际长度超过了你在程序代码中设置的缓冲区长度

    感觉有用请点赞

    展开全文
  • IHS和websphere 6.1的性能调节详解 ,针对was下的性能优化,对于参数的调整做了详细的介绍。
  • WebSphere_Application_Server实用详解教程,包括安装使用与配置详解
  • IBM WebSphere message broker 命令详解
  • WAS高手资料-基于WAS 6.1的WebSphere Portal 6.1 Cluster配置详解
  • websphere使用技巧集锦

    2009-09-25 09:48:00
    1、websphere6.0中概要表删除: wasprofile.bat -delete -profilename 2、普通应用部署在websphere上中文乱码问题 解决:管理控制台--->服务器--->应用程序服务器--->server1--->java和...
    1、websphere6.0中概要表删除:
    wasprofile.bat -delete -profilename

    2、普通应用部署在websphere上中文乱码问题
    解决管理 控制台---> 服务器---> 应用程序 服务器--->server1--->java和进程管理--->进程定义--->java虚拟机--->将通用 jvm参数设置为
    -Dfile.encoding=GBK -Ddefault.client.encoding=GBK

    3、在部署文件中设定了jdbc引用名jdbc/sample,jndi名字为jdbc/sample
    如果采用如下代码:
    javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/env/jdbc/sample");
    conn = ds.getConnection();

    运行就报错:05-7-1 10:02:24:178 CST] 00000031 SystemErr R Naming-Exception: Exception occurred while the JNDI NamingManager was processing a javax.naming.Reference object.

    去掉“java:comp/env/”就好了。

    解决:确认部署后在概要表空间下的config\cells\CN7642012HNode01Cell\applications目录下相应应用的web. xml文件下有正确的配置JNDI,如:
    <resource-ref id="ResourceRef_1097466019938">
    <res-ref-name>jdbc/yjjndi</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    再查看同目录下的ibm-web-bnd.xmi文件中id是否和上面的id相同,如下(注意粗体部分):
    <resRefBindings xmi:id="ResourceRefBinding_1097466019938" jndiName="jdbc/yjjndi" loginC>
    <bindingResourceRef href="WEB-INF/web.xml#ResourceRef_1097466019938"/>
    <properties xmi:id="Property_1165956970219" name="com.ibm.mapping.authDataAlias" value="CN7642012HNode01/yjj2c" description="description"/>
    </resRefBindings>


    4、如何避免 WebSphere Application Server 总是自动产生heapdumps和javacores

    对于 WAS 4.0.x:
    1. 找到<WAS_HOME>/bin/startupServer.sh (.bat)文件,其中<WAS_HOME>表示WAS的安装目录
    2. 用文本编辑器打开该文件,并在文件的顶部添加如下的2行:
    Unix平台:
    export IBM_HEAPDUMP_OUTOFMEMORY=false
    export IBM_JAVADUMP_OUTOFMEMORY=false
    Window平台:
    set IBM_HEAPDUMP_OUTOFMEMORY=false
    set IBM_JAVADUMP_OUTOFMEMORY=false
    3. 保存并关闭文件,重新启动WAS

    对于WAS 5.0.x或者5.1.x:
    1. 打开管理控制台,依次选择:服务器 > 应用服务器 > 需要更改的服务器名称 > 进程定义 > 环境条目
    2. 新建如下的2个条目:
    Name Value
    IBM_HEAPDUMP_OUTOFMEMORY false
    IBM_JAVADUMP_OUTOFMEMORY false
    3. 保存配置的更改,重新启动WAS

    收集整理与:IBM 中国技术支持网站
    展开全文
  • ( 8)选择"WebSphere MQ"安装选项 (9)选择启动WebSphere MQ安装程序,然后等待,直到显示了带有欢迎信息的"WebSphere MQ安装"窗口为止。 (10)单击"下一步"按钮继续。 (11)阅读面板上的信息和许可证条款,...

    首先介绍一下MQ

    MQ消息队列的简称是一种应用程序对应用程序的通信方法。说白了也就是通过队列的方式来对应用程序进行数据通信。而无需专用链接来链接它们。

    MQ的通讯方式

    1.数据报的方式 Datagram (Send and forget)

    应用程序在创建完消息后。利用MQ的API将消息发送到队列中。它充分利用了MQ(once and once only )

    2.请求和应答方式 Request/Reply

    发送消息之后需等待对方处理结果。  需考虑如下问题:

    a.等待应答的时间是多少?

    b.如果没有应答怎么办。

    c.本次session是否需要保留?

    MQ的开发流程

    1.让应用程序与队列管理器链接,通过MQconnect调用来进行此链接。

    2.使用MQOpen调用为输出打开一个队列

    3.应用程序使用MQPut调用将其数据放到队列上。

    4.调用MQOpen调用打开输入队列

    5.使用MQGet从队列上接收数据

    安装步骤。(此处为转载文章,作者已经证实所有步骤。)

    Windows下

    WebSphere MQ

    服务端的安装:

    (

    1)把WebSphere MQ

    Windows版服务器CD-ROM插入CD-ROM驱动器。

    (

    2)如果安装了自动运行,那么会启动安装进程。如果不启动,则双击CD-ROM上的根目录中的Setup图标以启动安装程序。

    (3)请等待,直到出现"WebSphere MQ

    安装启动板"窗口为止。

    (4)如果需要更改安装的本地语言,单击"选择语言"图标,然后从列表中选择所需的语言。

    (5)选择必备软件选项。

    选择典型安装后,安装界面上的每个安装项右边有一个对钩号(表示已安装),反之则为一个叉号(表示还没有安装,如果要装

    MQ,则必须先把这些软件装好)。

    如果出现了叉号:

    1)单击项目左边的

    "+"号以显示安装连接;

    2)选择要使用的安装源的选项,从以下各项选择:

    WebSphere MQ CD

    因特网

    网络

    (

    6)安装完成时,单击项目左边的"-"符号。

    注意:对于定制安装,可能不需要所有的必备软件。

    (

    7)安装完所有的必备软件,然后选择"网络先决条件"选项。

    (

    8)选择"WebSphere

    MQ"安装选项

    (9)选择启动WebSphere

    MQ安装程序,然后等待,直到显示了带有欢迎信息的"WebSphere MQ安装"窗口为止。

    (10)单击"下一步"按钮继续。

    (11)阅读面板上的信息和许可证条款,选择接受,然后单击"下一步"。

    (12)如果机器上未安装过此产品的前一个版本,则显示"安装类型"面板。选择希望的安装类型(一般选择"典型"安装即可),然后单击"下一步"按钮。

    (13)"WebSphere

    MQ安装"窗口显示"安装WebSphere MQ就绪"信息。该窗口还显示用户选中的安装摘要,单击"安装"开始正式安装。

    (

    14)成功安装WebSphere

    MQ后,"WebSphere MQ安装"窗口显示以下信息:安装向导成功完成。

    (

    15)单击"完成"按钮启动"准备WebSphere

    MQ"向导。

    anchor.gif安装图示

    69cc550ceaff505e85df6dcad9e57008.png

    f4ab9362ded4740b8d76670bc1cada9a.png

    a239db809cdb41d9e55064fee7345f60.png

    a8fb245acda20c3cfc84bb8a8b9006b5.png

    d9eebe26aaf9c72fcb5ac142ad54643d.png

    9fc42175509566fe36e2de682638c39a.png

    6207d8b9e64683933d0f23df9c4ab429.png

    c516c4992f93893910a38ea4de28501e.png

    4e9fc368ea549a3d672459efbd9e6ef9.png

    070116856604ffd105ae2c54bf6556f8.png

    b39ce6c9112d34b252aadbb200082d0c.png

    e95d01ca568eebaf3e0c532b1b3f4258.png

    eaeb2695a4bd8fdda823932a240394c1.png

    c099d773df99fa63b7b29ae6d2217f9f.png

    3b14ce321a7fbc90e41c5b7200f2b801.png

    991d0100c28f2ec02cd44cb0fb055d98.png

    08c327fc353d3d543b7731914fa318b0.png

    应用分析

    该章节主要内容包括MQ服务端的基本配置,如队列管理器,队列以及通道的建立,

    且包含JAVA实现的客户端程序。由此构成一个完整的客户端-服务器的流程。

    服务端配置

    1)点

    "开始"->"所有程序"->"IBM

    WebSphere MQ"->"WebSphere MQ 资源管理器",进入WebSphere MQ

    资源管理器界面。如下图所示:

    anchor.gif

    图9

    服务端配置

    796d858c2696eb6d9c5b34aae9ead2d6.png

    2)创建名为

    "QM_JACK"的队列管理器

    <1>选中

    "队列管理器"->"新建"->"队列管理器",如下图所示:

    anchor.gif

    图10 创建名为"QM_JACK"的队列管理器

    528dd2671e8d5a2db825096d39d9a180.png

    <2>在队列管理中输入

    "QM_JACK",其他选项默认不变,点"下一步":

    anchor.gif

    图11 在队列管理中输入"QM_JACK"

    3e2cd654490137b27cb8d08a475cc792.png

    <3>设置队列日志(本步骤采用系统默认设置),点

    "下一步":

    anchor.gif

    图12

    设置队列日志

    0f81f79aaed1bfab7010ddc24e3f47a3.png

    <4>启动队列管理器,创建服务器连接通道,允许在

    TCP/IP上进行队列管理器的远程管理,点击"下一步":

    anchor.gif

    图13 创建服务器连接通道

    5f23d1c3cee0af50cd25f333744760a8.png

    <5>设置队列管理器

    QM_JACK的侦听端口:8927(用户可以根据需要自行更改端口号),点击"完成"。

    anchor.gif

    14

    设置队列管理器QM_JACK的侦听端口

    f8f8d83180f5408dc81db908f466a3a6.png

    <6>系统进入等待界面:

    anchor.gif

    15

    系统等待界面

    48be7ad9e7598c1307c3f79554e9b12c.png

    <7>队列管理器

    QM_JACK创建成功

    anchor.gif

    16

    系统队列管理器QM_JACK创建成功

    d1ee3f84abd49a7396ea84ea6ccd9faa.png

    3)在

    QM_JACK下创建名为"QUEUE_RECV"和"QUEUE_REPLY"的本地队列(客户可以根据自己的需求随意更改本地队列的名字和数量,这里创建这两个本地队列只是为之后的MQ_Tuxedo项目作准备):

    anchor.gif

    图17 定义本地队列

    e1c9f063cbb475d68fe635dae0c909e7.png

    anchor.gif

    图18 定义本地队列

    b0870b6989467ba85e2ba5ad95b975c6.png

    设置队列名后其他属性全为系统默认值,点击

    "确定"。

    4)在

    QM_JACK下创建名为"CNN_JACK"的服务器通道。

    anchor.gif

    19

    创建服务器连接通道

    b50116b578a639c5a4c573dd8890562f.png

    anchor.gif

    图20 创建服务器连接通道

    a3aea9235017ca42fb1616090e7f0658.png

    通道名称设为

    CNN_JACK,其他选项保留为系统默认设置,点击"确定"。

    5)在

    MQ服务器端的计算机用户中添加MQ客户端所在计算机的系统用户。比如我的MQ客户端被Suse

    Linux下的root用户使用,那么,我们就需要在MQ的服务端(也就是Windows

    xp系统中添加名为"root"的用户)所在的计算机系统中添加名为"root"的用户。具体步骤如下:

    <1>点击

    "开始"->"控制面板"->"计算机管理"->"系统工具"->"本地用户和组"->"用户",点右键,选"新用户",如下图所示:

    anchor.gif

    图21

    创建系统用户

    7b5425b9468a1b666d1638fb29db82fd.png

    <2>创建新用户:

    root(注意:这里的用户名"root"是MQ客户端所在系统的用户名,用户要根据具体情况进行修改)

    anchor.gif图22 创建系统用户437a97a5a5b32cb46422208110ab6267.png

    随意设置一个有效密码,选中密码永不过期,点击

    "创建"。

    <3>将新用户加入

    mqm组(注意:这里的mqm组是我们安装完MQ

    Server后系统自动创建的)。具体操作如下:

    anchor.gif

    图23

    设置系统用户所在组

    79efe52572c71c7aa5e2b8c9524cfd4f.png

    点击

    "属性":

    anchor.gif

    图24 设置系统用户所在组

    a6ee6aac11571c956e2882b845e59708.png

    点击

    "添加":

    anchor.gif图25

    设置系统用户所在组

    3c3a2d639420858cbbddc05b4cb77fd3.png

    输入对象名称:

    mqm,点击"确定":

    anchor.gif

    图26 设置系统用户所在组

    5da87de553190f41b9eafc14b61173b5.png

    root用户被添入

    mqm组中:

    anchor.gif图27 设置系统用户所在组ec29ff1b3d52eabfa5423c3c4a93c889.png

    点击

    "应用",点击"确定"。

    重启机器。至此,

    MQ服务端的配置完成。

    展开全文
  • WebSphere中流行数据库连接池的配置 本文介绍WebSphere下Oracle、SQL Server、Sybase、MySQL数据库连接池的配置方法,并给出相应调用连接池的示例。相对于Weblogic,WebSphere连接池的配置要稍微复杂一些,因为缺少...
  •  IBM WebSphere MQ产品支持应用程序通过不同组件如处理器,子系统,操作系统,以及通信协议的网络彼此通信。例如:IBM WebSphere MQ支持35种以上的不同操作系统。  IBM WebSphere MQ支持两种不同的应用程序编程...
  • 前言首先介绍一下MQMQ消息队列的简称是一种应用程序对应用程序的通信方法。说白了也就是通过队列的方式来对应用程序进行数据通信。而无需专用链接来链接它们。MQ的通讯方式1.数据报的方式 Datagram (Send and forget...
  • IBM WebSphere MQ安装及使用教程

    千次阅读 2022-04-25 10:23:46
    IBM WebSphere MQ安装及使用教程 Linux下websphere MQ安装 #软件安装目录 mkdir /opt/mqm #添加用户组mqm groupadd mqm useradd -d /var/mqm -g mqm -s /usr/sbin -m mqm #设置密码 passwd mqm #授权 chown -R mqm:...
  • WebSphere 安装手册 下载或得到WebSphere的安装包具体下载地址此处不予以详解 双击启动安装程序向导进行WebSphere的安装下面以截图为例进行一步步的安装详解 鼠标点击启动面版左侧的 WebSphere application server ...
  • 精通+WebSphere+MQ.rar,精通+WebSphere+MQ.pdf
  • 精通 WebSphere MQ.rar

    2011-05-23 09:12:44
    精通 WebSphere MQ,主要讲述了IBM 的MQ的一些技术特性和在应用要注意的问题。
  • websphere application server 8.5的安装详解以及创建非集群node,并对该node进行简单的应用实例测试。
  • IBM WebSphere MQ安装及配置详解

    千次阅读 2018-03-06 16:08:00
    打开MQ安装程序,选择下一步,默认安装WebSphere MQ, 完成MQ的安装工作,启动WebSphere MQ, 服务器配置,选择新建队列管理器,创建名为"mq"的队列管理器,其他选项默认不变,点...
  • 上一篇介绍了WebSphere MQ的安装过程,如果你现在还没有安装WebSphere MQ,不妨看一看安装教程。 在常见的互联网消息中间件中,WebSphere MQ常见与银行业务使用,IBM 消息中间件MQ以其独特的安全机制、简便快速的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,538
精华内容 1,415
关键字:

websphere详解