由f60webmx到weblogic的連線池特性

lsl031發表於2011-08-17

也是前不久的事情了:

在應用伺服器端發現伺服器負載較大。
發現存在大量的如下指令碼佔用了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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章