Featured post

c# - Usage of Server Side Controls in MVC Frame work -

i using asp.net 4.0 , mvc 2.0 web application. project requiremrnt have use server side control in application not possibl in noraml case. ideally want use adrotator control , datalist control. i saw few samples , references in codepleax mvc controllib howwver found less useful. can tell how utilize theese controls in asp.net application along mvc. note: please provide functionalities related adrotator , datalist controls not equivalent functionalities thanks in advace. mvc pages not use normal .net solution makes use of normal .net components impossible. a normal .net page use event driven solution call different methods service side mvc use actions , view completly different way handle things. also, mvc not use viewstate normal .net controlls require. found article discussing mixing of normal .net , mvc.

Relate JDBC connections to Oracle listener log file content -


environment

various applications use jdbc connection pool: weblogic 8 (and higher) , tomcat 6 application servers, various versions of oracle database (from 9.2.0.7 10.2.0.4) on various platforms (rhel 5.5, solaris 9, solari 10 etc).

i'm trying understand meaning of following entries in listener log file (notice frequency):

07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59576)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59578)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59577)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59579)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59580)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59581)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59583)) * establish * <my_sid> * 0 07-dec-2010 09:32:30 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59582)) * establish * <my_sid> * 0 07-dec-2010 09:32:32 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59589)) * establish * <my_sid> * 0 07-dec-2010 09:32:43 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59600)) * establish * <my_sid> * 0 07-dec-2010 09:32:43 * (connect_data=(sid=<my_sid>)(cid=(program=)(host=__jdbc__)(user=<my_user>))) * (address=(protocol=tcp)(host=<my_host>)(port=59601)) * establish * <my_sid> * 0 

all applications use connection pools, v$session.logon_time reflect time connection pool activated (usually tha application server start time) , expected number of connections.

so i'm trying understand frequent entries in listener log represent.

are these fresh new connections (i suppose aren't) or represent regular traffic passes through existing connections of connection pool (if not case, don't understand why port changing (i know listener redirects client free port during initial handshake, don't understand why happening after connection pool up)

could sort of heart beat doesn't use connection pool?

unfortunately, in case, auditing disabled application users don't have details in dba_audit_trail.

these numbers particular logfile:

$ tail -1000 listener_<my_sid>.log | awk 'end {     (i in count)   if (count[i] > 10)     print i, count[i] }   /__jdbc__/ {     sub(/:[^:]*$/, x, $2)     count[$2]++   }' 09:14 13 09:17 32 08:45 14 09:19 12 08:49 13 09:32 33 09:35 20 09:37 17 09:38 29 08:30 35 09:03 13 09:05 13 08:33 13 08:51 11 09:24 28 

the records out of order not relevant here, i'm trying understand meaning of these 35 entries per minute.

i observe behavior in various different java app servers environments on various customer sites , don't find abnormal resource usage because of it.

the configured connection pool connections appear correctly in v$session: instance 50 x app node (min = max) see 50 connections x app node in v$session, v$session.logon_time reflects correctly time respective app node started.

that makes me think though os port changes every request, somehow requests using established connection pool physical connections.

it great if else run above awk script (just use nawk on solaris) in different app environments use jdbc connection pool, compare numbers.

to honest, i'm observing same behavior on all our app environments , noticed on 2 customer sites managed different app admins , developers.

and, of course, it's not impossible there common misconfiguration .

===================

updates: 2011/02/28

more details 1 of environments.

  • 4 wl instances (2 x node)
  • 15 datasources

configuration:

initial-capacity: 5 max-capacity:     varies, 20 150 capacity-increment: varies, 1 5 connection-reserve-timeout-seconds: 10 test-frequency-seconds: varies, 120 240 inactive-connection-timeout-seconds: 0 seconds-to-trust-an-idle-pool-connection: 10 

the information below 1 of nodes (2 wl instances):

sql> select sysdate dual;  sysdate -------------------- 28/feb/2011 12:03:50   sql> select   username, machine, logon_time, count(1)   v$session   machine='node1' group   username, machine, logon_time order   1,2,3;    2    3    4    5    6    7    8    9   10  username   machine    logon_time             count(1) ---------- ---------- -------------------- ---------- c_user       node1     26/feb/2011 20:25:01          1 c_user       node1     26/feb/2011 20:25:19          3 c_user       node1     26/feb/2011 20:25:20          2 c_user       node1     26/feb/2011 22:45:32          1 c_user       node1     26/feb/2011 22:45:46          5 c_user       node1     27/feb/2011 10:39:42          1 c_user       node1     28/feb/2011 09:25:16          1 c_user       node1     28/feb/2011 10:01:05          1 c_user       node1     28/feb/2011 10:01:06          1 c_user       node1     28/feb/2011 10:23:32          1 c_user       node1     28/feb/2011 10:23:33          6 c_user       node1     28/feb/2011 10:23:34          3 c_user       node1     28/feb/2011 10:36:09          1 c_user       node1     28/feb/2011 10:46:21          1 c_user       node1     28/feb/2011 11:00:17          1 c_user       node1     28/feb/2011 11:00:18          3 c_user       node1     28/feb/2011 11:16:26          2 c_user       node1     28/feb/2011 11:24:07          1 c_user       node1     28/feb/2011 11:24:08          1 c_user       node1     28/feb/2011 11:30:32          4 c_user       node1     28/feb/2011 11:30:33          1 c_user       node1     28/feb/2011 11:43:10          5 c_user       node1     28/feb/2011 11:50:36          9 c_user       node1     28/feb/2011 11:50:37          1 c_user       node1     28/feb/2011 11:54:16          2 c_user       node1     28/feb/2011 11:54:17          2 c_user       node1     28/feb/2011 12:01:52          2 c_user       node1     28/feb/2011 12:01:54          1 c_user       node1     28/feb/2011 12:01:55          4 s_user       node1     26/feb/2011 20:25:21          1 s_user       node1     26/feb/2011 22:45:47          1 w_user       node1     23/feb/2011 07:03:33          1 w_user       node1     26/feb/2011 20:25:05          1 w_user       node1     26/feb/2011 20:25:07          5 w_user       node1     26/feb/2011 20:25:15          3 w_user       node1     26/feb/2011 20:25:16          7 w_user       node1     26/feb/2011 20:25:17          1 w_user       node1     26/feb/2011 20:25:18          7 w_user       node1     26/feb/2011 20:25:19          3 w_user       node1     26/feb/2011 22:45:35          1 w_user       node1     26/feb/2011 22:45:37          4 w_user       node1     26/feb/2011 22:45:38          5 w_user       node1     26/feb/2011 22:45:42          5 w_user       node1     26/feb/2011 22:45:43          5 w_user       node1     26/feb/2011 22:45:44          3 w_user       node1     26/feb/2011 22:45:45          7 w_user       node1     26/feb/2011 22:45:46          1 w_user       node1     27/feb/2011 16:51:48          4  48 rows selected.  $ date mon feb 28 12:19:35 cet 2011 $ tail -5000 listener_<snipped>.log | nawk 'end {     (i in count)   if (count[i] > 10)     print i, count[i] }   /__jdbc__.*host=<snipped>/ {     sub(/:[^:]*$/, x, $2)     count[$2]++   }'| sort 07:29 13 08:57 13 09:09 18 09:24 18 09:29 27 09:32 13 09:37 17 09:51 12 10:01 13 10:06 27 10:12 17 10:19 13 10:20 12 10:22 17 10:23 16 10:35 17 11:00 13 11:21 18 11:24 17 11:38 13 11:43 32 11:50 13 11:54 23 12:01 15 12:05 17 12:10 28 12:17 18 

i think make sense of need publish data source configuration application server in environment behaviour experienced.

the data source defines connection pool, , behaviour in terms of resizing etc.

i believe parameters used in data source definition proprietary, referring documentation jdbc provider may necessary - oracle , covers inthe weblogic documentation set.

hope helps.


Comments

Popular posts from this blog

c# - Usage of Server Side Controls in MVC Frame work -

cocoa - Nesting arrays into NSDictionary object (Objective-C) -

ios - Very simple iPhone App crashes on UILabel settext -