My Oracle Support Banner

Tuxedo中间件某server超时,进程号被其他用户占用,重启失败 (Doc ID 2084873.1)

Last updated on AUGUST 06, 2020

适用于:

Oracle Tuxedo - 版本 10.0 到 10.0
HP 9000 HP-UX 11.0 (32 bit)

目标

Tuxedo进程15887服务超时,引发系统清理时报错:

日志分析:
  083834.kjdb2!BBL.11952.1.0: CMDTUX_CAT:1836: WARN: Server(15887) processing terminated with SIGKILL after SVCTIMEOUT
  说明 此进程由于服务时间超时,将被BBL发出终止信号

  083834.kjdb2!restartsrv.15881.1.-2: server GROUP1/4023: CMDTUX_CAT:571: INFO: Server process, 15887 is still running; forcing termination via SIGIOT
  重启的服务:发现此进程仍然在运行,发出强制终止

  083834.kjdb2!restartsrv.15881.1.-2: CMDTUX_CAT:572: ERROR: Cannot kill the process, 15887 Not owner
  重启的服务:提示不能杀掉进程,原因是当前用户不是进程的所有者。

  083834.kjdb2!cleanupsrv.15891.1.-2: CMDTUX_CAT:538: INFO: Process 15887 still running - forcing termination (via SIGIOT)
  清理的服务:发现此进程仍然在运行,发出强制终止

  083834.kjdb2!cleanupsrv.15891.1.-2: CMDTUX_CAT:539: ERROR: Failed to kill process 15887 - Not owner
  清理的服务:提示不能杀掉进程,原因是当前用户不是进程的所有者。

  083839.kjdb2!BBL.11952.1.0: LIBTUX_CAT:216: WARN: Process 15887 died; removing from BB
  BBL:发现此进程死掉,从BB中移出。


原因分析: 
由于SVCTIMEOUT超时事件,BBL已经把这个进程kill掉了,然后BBL会进行重启的动作,也就是调用restartserver,
restartserver进程去重启这个server,在BBLkill掉进程和restartserver进行重启的时间间隔内,
有另外的用户使用了这个进程ID,所以BBL没有报错,但是restartserver报错了,这个时间窗口很小,
并且还的是PID正好被其他用户使用了,这个机率就更低,所以也就出现过这一次。

关于重现:
此现象可以再现,由于时间窗口很短,再现概率低。
 

解决方案

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


文档内容
目标
解决方案


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.