3、问题解决:

  A、登录实际的工程环境,查看所有相关的程序日志,但程序的日志都正常,不能从中得到启示和帮助。

  B、根据推测可能的原因,在测试环境中试图使用大压力测试,但也没出现工程所描述的故障。

  C、与开发负责人、项目经理和工程人员讨论可能导致故障出现的原因,并根据讨论结果设计测试案例、测试方案。

  D、将工程实际环境的配置和执行文件拿到测试环境,并模拟工程环境搭建测试环境,发现其中配置存放短信的配置项比实际测试环境的大两倍。也是:

  ; queue size, in byte, 20MB
  QueueSize=20971520
  ; max ISMG queue length, 0 means no limit
  MaxQueueLen=50000

  E、模拟出现故障时的业务压力,发现当发送队列MaxQueueLen超过了46807后,不会继续增大,永远不会到达50000,也是说永远不可能出现队列满的情况,模块永远不会报队列满的错误;所以系统只要接收到信息往队列里放(只有该模块队列满或者连接不上等异常出现的时候才会存放到短信缓存器),而该模块共享队列大只能存放46807条信息,多余的信息也便丢失了。

  F、建议开发人员修改程序,当短信存放超过了实际存放长度或配置长度,提示错误并将短信存放到短信缓存器,确保短信在高峰期得到保障。

  G、给工程人员提供配置建议。共享队列大小、队列长度与网关连接个数之间的关系应该满足:对于共享队列大小为QueueSize=20971520,MaxIQueueLen,网关连接个数为之间的关系为:网关连接个数*MaxQueueLen<=40000。因此,若网关个数为1,则MaxQueueLen的安全大小是MaxQueueLen=40000。

  H、开发人员修改程序之后验证问题:(1)、仍然保留MaxQueueLen=50000配置不变,压力测试,当短信发送队列MaxQueueLen超过了46807后,系统能够提示错误信息,并将短信缓存到短信缓存器。(2)、配置MaxQueueLen=40000,压力测试,当短信发送队列MaxQueueLen=40000的时候,系统提示错误,并将短信存放到短信缓存器。

  六、资源不足该怎么办

  1、现有的资源是否能解决

  2、能否可以借用资源

  3、向领导反映并说明问题的严重性