Chinaunix

标题: 如何识别Job对应的IP? [打印本页]

作者: wildfish    时间: 2006-06-09 16:10
标题: 如何识别Job对应的IP?
QZDASOINIT 是一个响应客户端的请求的job.也是一个越来越重要的job.
将来,如果400成为一个db server,那么系统管理员的任务还有一份就是如何识别ip对应的job.
譬如,如下场景:
   一个用户的应用程序启动事务,进行长时间的提交
  意外断电,
   job在服务器依然存在.
   客户端已经断开.
   客户重新连接400的时候,启动另外一个QZDASOINIT job.
   但是会出现一些异常.所以我们要做的是: end 这个ip对应的不正常的job.
   如果10-20个还好说,关键是1000个的时候,系统管理员的应该如何识别job对应的ip?

这种情况多见于B/S C/S的情况.
恳求高手指教.
作者: xuguopeng    时间: 2006-06-09 16:17
QZDASOINIT这个作业的JOBLOG中有IP的

                             Display All Messages                           
                                                            System:   XXXXX
Job . . :   QZDASOINIT    User . . :   QUSER         Number . . . :   459956
                                                                             
    Job 459956/QUSER/QZDASOINIT started on 06/01/06 at 13:46:33 in subsystem
      QUSRWRK in QSYS. Job entered system on 06/01/06 at 13:46:33.           
    User XXXXXX from client 10.18.4.101 connected to server.           

不过如何辨别哪些是可以END掉的,我没有什么好的办法
作者: wildfish    时间: 2006-06-09 16:22
老许,我是要识别哪些job对应哪些ip,我也知道dspjoblog能看出来,可是成百上千个,我总不能一个一个的找吧?
作者: tianyi    时间: 2006-06-09 16:37
是很麻烦的事情。
我是通过[ WRKTCPSTS OPTION(*CNN) ]
的JOB空闲时间来判断的。

等待高手解答中。。。。。。
作者: xuguopeng    时间: 2006-06-09 16:42
你们每个客户端连接上来都有一个QZDASOINIT??

这样不太合理吧,一般都是通过应用服务器统一连接上来的,每个客户端连接上来只是产生一个QZRCSRVS作业. 如果是这样的方式,这些连接的IP都是应用服务器的IP.并不是真正客户端的IP.如果应用服务器挂了,那这些JOB都可以END.

如果只是想查JOB的IP,我记得有个API可以轻松实现吧,关键是你怎么判断哪个IP改END?

如果你是每个客户端连接上来都是一个单独的进程,那么我觉得在系统管理角度去考虑该结束哪些JOB是很困难的,能不能在应用程序中实现如果JOB异常就释放连接?那样系统会自动结束这个JOB的
作者: wildfish    时间: 2006-06-09 16:49
C/S直连就是如此,领导不让用应用服务器,因为应用服务器当掉,影响面更大.
所以保险起见,直连.呵呵,我现在就在求那个API.
每个客户端一登陆,就会启动一个QZDASOINIT
作者: wildfish    时间: 2006-06-09 16:49
我的策略就是,客户发现问题了,丫的,把他的Job全部灭了
作者: xuguopeng    时间: 2006-06-09 17:47
刚才找了下 还真没找着 这API不想找的时候总能看到,想找的时候怎么也找不到~

晚上回家帮你找找吧
作者: wildfish    时间: 2006-06-10 11:57
呵呵,许大哥,那就谢谢你了~~。
程序作出来了之后,我保证Open source.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2