users@glassfish.java.net

ORB connection leak

From: <glassfish_at_javadesktop.org>
Date: Mon, 09 Mar 2009 16:09:48 PDT

System settings and versions

GlassFish v2.1 (9.1.1) (build b60e-fcs)
server JDK 1.6.0_12-b04
client JDK 1.5.0_02-b09
Linux 64 bits 2.6.18-128.1.1.el5

There is an EJB application, and remote clients, they use CORBA to lookup and use EJBs.

I saw there are a lot of CORBA connection on the server side, in ESTABLISHED mode.
At the moment of the monitoring, I could see these numbers

758 incoming corba connections
[code]
$ netstat -antpuew|grep ::ffff:172.16.99.33:3700|grep -c ESTAB
[/code]

I can see a similar number, with asadmin monitoring utility
[code]
$ ./asadmin get -m "server.orb.connection-managers.orb_S1AS-ORB_1\.Connections\.Inbound\.AcceptedConnections.*"
server.orb.connection-managers.orb_S1AS-ORB_1\.Connections\.Inbound\.AcceptedConnections.connectionsidle-count = 743
server.orb.connection-managers.orb_S1AS-ORB_1\.Connections\.Inbound\.AcceptedConnections.totalconnections-current = 743
[/code]

Looking at the number of threads
[code]
$ ps -p 16803 -o pid,user,%cpu,rss,vsize,size,etime,nlwp,args
  PID USER %CPU RSS VSZ SZ ELAPSED NLWP COMMAND
16803 neus 58.9 7005208 7642964 7528216 07:18:39 [b]431[/b] /usr/local/jdk/jdk1.6.0_12/bin/java -Dcom.sun.aas.instanceRoot=/usr/local/glassfish/domains/domain1 -Dcom.sun.aas.C
[/code]


Looking at a client (172.17.9.141)

(command issued at server side)
[code]
$ netstat -antpuew|grep 172.17.9.141|grep -c ESTAB
25
[/code]

They are all like these
[code]
tcp 0 0 ::ffff:172.16.99.33:3700 ::ffff:172.17.9.141:55531 ESTABLISHED 500 69753 16803/java
tcp 0 0 ::ffff:172.16.99.33:3700 ::ffff:172.17.9.141:42219 ESTABLISHED 500 69544 16803/java
[/code]

But, looking at the client connections
[code]
$ netstat -antpuew|grep 3700
tcp6 0 0 172.17.9.141:44579 172.16.99.33:3700 ESTABLISHED 1000 15822 6294/java
tcp6 0 0 172.17.9.141:45698 172.16.99.33:3700 ESTABLISHED 1000 16664 6576/java
[/code]

So, clearly you can see some number discrepancy there.

This is the domain.xml part
[code]
 <orb max-connections="1024" message-fragment-size="1024" use-thread-pool-ids="thread-pool-1"/>
 <thread-pool idle-thread-timeout-in-seconds="60" max-thread-pool-size="900" min-thread-pool-size="0" num-work-queues="1" thread-pool-id="thread-pool-1"/>
[/code]
Looking at performance tuning guide
http://docs.sun.com/app/docs/doc/820-4343/abegt?a=view

I cannot see any configuration to release timed out orb connection, but only threads.

Is there any other configuration where I need to look at ?
It it a know bug ?
The client runs on ipv6 and the server ipv4, any issues ?

Thanks

Claudio Miranda
[Message sent by forum member 'claudio' (claudio)]

http://forums.java.net/jive/thread.jspa?messageID=335949