AIX 和Linux 下查看端口给那个服务进程占用(实用技能)

在Aix 系统下,通过端口来查证是什么服务绑定这个端口的方法如下:

  1. netstat -Aan|grep <portnumber>

找到该端口连接对应的 PCB/ADDR 和连接的协议类型。

注:PCB —-Protocol Control Block

  1. 如果是 tcp 连接,则 rmsock <PCB/ADDR> tcpcb

如果是 udp 连接,则 rmsock <PCB/ADDR> inpcb

下面我们以 telnet 服务所使用的 23 号端口为例,说明该方法:

#netstat -Aan|grep 23

f1000200019ce398 tcp 0 0 *.23 *.* LISTEN

可以看到 PCB/ADDR 为 f1000200019ce398 ,且协议类型为 tcp 。

#rmsock f1000200019ce398 tcpcb

The socket 0x19ce008 is being held by proccess 185006 (inetd).

命令报告该端口正在被 inetd 进程使用, PID 为 185006 。

注意: rmsock 命令需要 root 权限执行。

查看到PID后,然后用 ps -ef | grep PID  来确认PID是对应那个服务,这样就可以知道这个端口给那个服务给占用啦。

阅读更多

MQ配置和编程最佳实践

MQ配置和编程最佳实践

对于MQ的使用,主要会涉及到MQ系统本身的配置和MQ应用程序的开发两方面的工作。为了帮助大家更好地使用MQ,本文将就MQ配置和编程中的一些注意事项和技巧与大家探讨,并希望与大家分享这方面的一些最佳实践(Best Practice)。

第一部分:有关MQ对象配置的最佳实践

对于MQ系统配置,我们要规划MQ通讯网络,确定系统的拓扑结构,确定各种对象的属性和命名规则并创建所需的各种对象等,首先,我们谈一谈在系统建设之初,如何设计和定义MQ的各种对象。

1、有关队列管理器:

创建队列管理器时,应考虑的因素主要有:

1) 队列管理器的日志类型以及日志文件的大小和个数,要根据用户数据量的大小、各个队列上的消息总容量,来计算日志的总容量,以免在系统运行过程中出现日志写满的情况;

2) 应该为队列管理器指定和建立死信队列;

3) 对最多打开句柄数MAXHANDS(缺省为256,如果您需要多于256个应用程序同时连接队列管理器,应增大该值),最大消息长度MAXMSGL,最多的未提交的消息个数MAXUMSGS属性(缺省为10000,如果您使用了消息分段或分组,某个大消息的分段个数超过了10000,应增大该值)的考虑;

4) 创建完队列管理器之后,应修改队列管理器的配置文件,考虑有关TCP和通道有关的参数的配置,举例如下:

TCP:

KeepAlive=Yes

Channels:

AdoptNewMCA=ALL

PipeLineLength=2

MaxActiveChannels=200

2、有关队列:

对于队列的属性,应该考虑的因素主要有:

1) 永久性和非永久性设置:尤其要注意的是DEFPSIST属性的缺省值为No,若要保证消息的安全可靠,必须将其设置为Yes;

2) 对于本地队列和传输队列,要考虑队列的最大深度MAXDEPTH(缺省为5000,应根据实际情况计算该值),队列中每个消息的最大字节数MAXMSGL的配置。

阅读更多

IBM MQ 多实例队列管理器高可用架构

1.   多实例队列管理器高可用架构

实例队列管理器能够在备用服务器上自动地重新启动。如下图所示,WebSphere MQ 安装在两个服务器上,其中一个服务器处于空闲状态。QM1 的一个实例处于活动状态,并且正在一个服务器上运行。QM1 的另一个实例以备用方式在另一个服务器上运行,它不执行任何活动处理,但已准备好在 QM1 的活动实例发生故障时接管活动实例。

QM1 的活动实例在运行期间对共享的队列管理器数据文件夹和日志文件夹进行互斥访问。活动实例发生故障时,QM1 的备用实例将检测到这种情况并变为活动实例。它将以先前活动实例所遗留的状态来接管 QM1 数据和日志,并接受来自客户机和通道的重新连接请求。

多实例队列管理器是高可用性解决方案的组成部分。需要其他一些组件才能构建实用的高可用性解决方案。

  • 客户机和通道重新连接功能,用于将 WebSphere MQ连接转移到接管活动队列管理器实例的计算机。
  • 高性能共享网络文件系统,此系统正确地管理锁定并防范介质和文件服务器故障。

阅读更多