ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 由f60webmx到weblogic的连接池特性

由f60webmx到weblogic的连接池特性

原创 Linux操作系统 作者:lsl031 时间:2011-08-17 09:50:48 0 删除 编辑

也是前不久的事情了:

在应用服务器端发现服务器负载较大。
发现存在大量的如下脚本占用了cpu。

26617 fmsappl   25   0 55152  34m 8044 R  100  0.4  33436:34 f60webmx          
 5109 fmsappl   25   0 60172  39m 8044 R  100  0.5 174:51.08 f60webmx          
 4266 fmsappl   25   0 47088  25m 7708 R  100  0.3  70325:31 f60webmx          
13700 fmsappl   25   0 54320  33m 8012 R  100  0.4  68691:14 f60webmx          
13219 fmsappl   25   0 52072  31m 7932 R  100  0.4  41437:57 f60webmx          
26685 fmsappl   25   0 53312  32m 7884 R  100  0.4  33081:35 f60webmx          
19394 fmsappl   25   0 47796  26m 7736 R  100  0.3  32691:33 f60webmx          
29866 fmsappl   25   0 47432  26m 7844 R  100  0.3  31117:05 f60webmx          
25096 fmsappl   25   0 51340  30m 7936 R  100  0.4  21561:08 f60webmx          
 6872 fmsappl   25   0 51284  30m 7932 R  100  0.4  21195:07 f60webmx          
 3046 fmsappl   25   0 47276  26m 7704 R  100  0.3  11500:57 f60webmx          
 8004 fmsappl   25   0 47256  26m 7708 R  100  0.3   9682:46 f60webmx          
 4647 fmsappl   25   0 55576  34m 8004 R  100  0.4  21767:17 f60webmx

同时查询数据库,发现数据库基本没有活动的会话。那到底这些进程在执行啥动作呢。

疑问:
到底这些进程在干嘛呢?

在网上查到的语句为:

select a.spid,a.TERMINAL,a.PROGRAM,a.username,b.OSUSER,b.PROCESS,b.username,b.machine,
       b.MODULE,b.action,b.CLIENT_INFO,b.logon_time,b.sid,b.serial#,c.SQL_TEXT
  from v$process a,v$session b,v$sql c
where a.ADDR = b.PADDR
   and b.sql_address = c.address(+)
   and b.process = '66206'      ----- process即为在应用服务器端的进程号。

对于查不到的进程
   select b.OSUSER,b.PROCESS,b.username,b.machine,
       b.MODULE,b.CLIENT_INFO,b.logon_time,b.sid,b.serial# from v$session b where process='25167'

如果还没有,可以直接杀掉进程。

查询该进程对应数据库会话的等待事件,可以发现等待事件为等待客户端返回信息的空闲等待事件。


实际上由此带来的理解既是通过v$session的process列既可以查到中间件服务器端对应的进程号。

 

疑问:
如果查到中间件端的进程,是否可以查到进程的线程号呢。同理,如果知道了线程号,是否有可能查到该线程到底是有哪个客户端发起的。


是否给某些操作确定最终操作的用户端提供了一定的线索???

 


Script. How To Identify The apps User Using The O/S PID For Forms Users In 11i [ID 185762.1]

--------------------------------------------------------------------------------
 
  修改时间 15-DEC-2008     类型 SCRIPT     状态 PUBLISHED  


"Checked for relevance on 16-DEC-2008"

PURPOSE
-------
This document is a how to find the Oracle Applications username for a Forms
session, when you know the O/S process id.


SCOPE & APPLICATION
---------------------

This note can help in case that your f60webmx process id very intense or high
CPU usage / memory and you want to identify who has created that session.
The script. output can also help to determine the apps user that used
Ctrl-Alt-Del to close an Oracle Applications 11i session and that session
hung on the Forms-tier/DB-tier.

-----疑问:根据结果如何发现这些进程是僵死的呢。

How To Identify The apps User Using The O/S PID For Forms Users In 11i
----------------------------------------------------------------------

You have to pass the UNIX process id to this script.
------------------------------------Cut here--------------------------
column "User Name" format a10
column "ClPID" format a8

select
d.user_name "User Name",
       b.sid SID,b.serial# "Serial#", c.spid "srvPID", a.SPID "ClPID",
       to_char(START_TIME,'DD-MON-YY HH:MM:SS') "STime"
from
fnd_logins a, v$session b, v$process c, fnd_user d
where
b.paddr = c.addr
and a.pid=c.pid
and a.spid = b.process
and d.user_id = a.user_id
and (d.user_name = 'USER_NAME' OR 1=1)
and a.SPID = &PID

-----应用服务器进程号查处是什么用户发起的请求。


但是查询民安的v$session视图,发现中间件连接过来的process均是1234.真是怪事情了哦。如何克服这一难题呢?

查询metalink后发现,对于jdbc thin连接方式,默认的process就为1234
要想改变这样的行为,就需要特殊处理。具体件后附的描述。
对于weblogic而言实际上很简单。只要在连接属性里强制增加这些关注的东西就可以了。
如下:
实质上,这样的设定应该做为以后中间件配置的建议方式。ip地址加上端口号作为process的值,而功能模块作为program的值。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/288166/viewspace-705053/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 单证语句优化
请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    56
  • 访问量
    799689