加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

中间件(WAS、WMQ)运维 9个常见难点解析

发布时间:2019-01-28 03:46:36 所属栏目:外闻 来源:talkwithtrend
导读:副标题#e# 安装 1、was 负载均衡的机制的粘连性,was负载均衡异常? 有一个case系统,,部署在was集群环境,应用是集群环境,有的时候当一个节点异常的时,客户端访问该系统就会抛出异常,按正常情况,该会话应该不会断或者断了再连接一次就会到另一个节点,

tcp_keepintvl连接间隔,单位为0.5秒,缺省值为150,我们可将它设为50;

  1. /usr/sbin/no -o tcp_keepidle=240  
  2. /usr/sbin/no -o tcp_keepinit=50  
  3. /usr/sbin/no -o tcp_keepintvl=50 

需要注意的一点是通道两端的KeepAlive参数要保持协调一致,若发送端的KeepAlive值小于接收端的KeepAlive值,则当网络出现故障时,发送端的通道停下来之后,接收端的通道会仍然停不下来。

C)使用AdoptNewMCA

通过修改qm.ini文件的Channels一节进行修改,如:Channels:

AdoptNewMCA=ALL

当MQ接收到启动通道的请求,但是同时它发现与该通道对应的amqcrsta的进程已经存在,这时,该进程必须首先被停止,然后,通道才能启动。AdoptNewMCA的作用就是停止这种进程,并且为新的通道启动请求启动一个新的进程。

该属性可以将状态处于running状态的接收端通道强行终止,从而使发送端的通道启动或请求操作得以成功。

如果为某一通道指定了AdoptNewMCA的属性,但是新的通道由于"channel is already running"而启动失败,则它可以:

1) 新的通道通知之前的通道停止

2) 如果旧的通道在AdoptNewMCATimeout的时间间隔内没有接受该停止请求,相应的进程(或线程)被kill掉

3) 如果旧的通道经过步骤2仍未终止,则当第二个AdoptNewMCATimeout时间间隔到达时,MQ终止该通道,同时产生"channelin use"的错误。

D) 设置MaxChannels和MaxActiveChannels属性

MaxChannels和MaxActiveChannels分别代表队列管理器允许配置的通道的最大个数和允许同时运行的通道的个数,MaxChannels的缺省值是100,MaxActiveChannels的缺省值与MaxChannels相同。如果您的并发通道连接个数超过了100,您需要修改这两个参数。这对于大并发的Client/Server间通讯尤为重要。

E)Disconnect interval属性

DisconnectInterval(DISCINT)是发送和服务类型的通道所具有的一个参数,它的作用是:在它设置的时间间隔内,如果传输队列为空即通道上没有消息通过时,通道就会被停止。设置完Disconnect Interval参数之后,当发送方重起通道时,通道就会被正常启动。

Disconnect Interval的值会地影响通道的性能。如果把Disconnect Interval的值设置得非常小,会导致通道的频繁启动;反之,如果把Disconnect Interval的值设置得很大,则意味着即使通道上很长时间没有消息,系统资源也会被长期占用,从而影响系统的性能。因此,利用改变 Disconnect Interval的值,我们可以有效地改善通道的性能。

当传输队列中没有消息要传送时,发送方通道(SDR)、服务器通道(SVR)将在等待了该参数指定的时间间隔后断开连接,停止通道。该参数以秒为单位,定义新的通道时,如果没有特别指定,该参数会继承系统对象的属性,设为6000秒,约两个小时。亦通道连续两个小时没有消息发送后就会停止。DISCINT参数设定为0,通道永远不会停止。(注:有防火墙的不能设为0)

F) Heart Beat Interval属性

与Disconnect Interval(HBINT)相对应的是Heart BeatInterval这一参数(仅针对WebSphere MQ for AIX、HP-UX、OS/2、Sun Solaris、Windows NT/2000 V5.1以上)。它的作用是:在Heart Beat Interval指定的时间间隔内,如果传输队列上没有一直没有消息到达,发送方MCA会向接收方MCA发送一个心跳信号,据此给接收方通道以停止的机会,在这种情况下,它不必等待Disconnect Interval超时,也会将通道停止下来。同时,它会释放用来存贮大消息的内存空间并关闭接收方的队列。

为了使HeartBeat Interval和Disconnect Interval这两个参数更有效地发挥作用,一般情况下需要让Heart Beat Interval设置值小于Disconnect Interval设置值。

另外,如果我们使用的传输协议是TCP/IP,我们也可以利用设置TCP/IP的socket的SO_KEEPALIVE参数来实现这一功能。设置完 SO_KEEPALIVE参数,并设置时间间隔之后,TCP/IP本身就会定期去检测另一端连接的状态,如果对方连接已断开,通道也会被停止。在这里,TCP/IP的时间间隔也应小于WebSphere MQ通道的Disconnect Interval的值。

G) ShortRetry和LongRetry属性

在发送类型等类型的通道属性中,还有四个参数是与通讯恢复和通道连接有关的,它们是:shortrty,shorttmr,longrty,longtmr,它们的缺省值分别是:10,60,999999999,1200,分别代表短 重试时间间隔和次数以及长重试时间间隔和次数,它们的作用和含义在于当通道从running变为retrying状态时,按照这四个参数规定的时间间隔和次数进行通道重新连接的尝试,并且先进行短重试,短重试结束后,再进入长重试。

在设计这四个参数时,要注意以下两点:

1) 要确保短重试+长重试的时间〉故障恢复时间

例如:假设您估计您的系统故障恢复时间为1个小时,则要设置shorttmr(time of shortrty)+longtmr(time of shortrty)>2 hours这样,才能保证在故障恢复之后,通道仍然能够自动进行重新连接的尝试。

2) 重试间隔将影响自动恢复的效率

例如:如果您把短重试总时间设定为10分钟,而长重试时间间隔设为1小时,而网络在15分钟后,便已经恢复,可是此时,由于通道已经进入长重试阶段,它将在 1个小时之后,才能通过长重试恢复通道的正常运行。相反,也不必把重试间隔设置得太短,应根据需要和用户的实际情况进行适中的设置。

H) Batch size属性

通道的Batchsize(BATCHSZ)值是影响通道性能的一个关键参数。在MQ进行消息传输时,通道对消息的处理也是在同步点的控制之下并具有交易特性的,在以下条件满足时,它将统一提交一批消息:

当发送的消息个数达到BATCHSZ时;或传输队列为空,并且在BATCHINT指定的时间间隔内一直没有消息到达时。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读