I'm running a database server on an AIX 4.3 box. The database system spawns one process per connection. Some of these processes are running long after the client has given up and gone home. Here's one that is heading towards it's first birthday:
I'm not blaming the database server because it is being told that the connection is still active:
I've checked that tcp has sensible settings:
At which point I really don't know where to go next. I can (obviously) kill the processes but would rather leave them for debugging until I get a solution to stop the problem occurring in the first place. The clients are a mixture of Linux servers, LAN- and WAN-attached windows desktops and even, as in this example, a modem-attached VPNed laptop so I don't think it's a client problem.
Has anyone come across this problem or got any ideas as to how to proceed?
Yours,
fish
["]As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.["]
--Maur
Code:
[b]ps -fp 11584[/b]
UID PID PPID C STIME TTY TIME CMD
rsmi 11584 79582 0 Nov 18 - 0:00 /usr/informix/lib/sqlexec stx_se po
I'm not blaming the database server because it is being told that the connection is still active:
Code:
[b]lsof -p 11584 -a -i TCP[/b]
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sqlexec 11584 rsmi 7u IPv4 0x702f86dc 0t0 TCP po:sql->rsmi-vpn:1066 ([blue]ESTABLISHED[/blue])
I've checked that tcp has sensible settings:
Code:
[b]no -a | grep tcp[/b]
tcp_ndebug = 100
tcp_ttl = 60
tcp_sendspace = 16384
tcp_recvspace = 16384
[blue]tcp_keepintvl = 150[/blue]
[blue]tcp_keepidle = 14400[/blue]
tcp_mssdflt = 512
[blue]tcp_keepinit = 150[/blue]
tcp_pmtu_discover = 1
tcp_timewait = 1
tcp_ephemeral_low = 32768
tcp_ephemeral_high = 65535
tcp_newreno = 0
tcp_nagle_limit = 65535
At which point I really don't know where to go next. I can (obviously) kill the processes but would rather leave them for debugging until I get a solution to stop the problem occurring in the first place. The clients are a mixture of Linux servers, LAN- and WAN-attached windows desktops and even, as in this example, a modem-attached VPNed laptop so I don't think it's a client problem.
Has anyone come across this problem or got any ideas as to how to proceed?
Yours,
fish
["]As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.["]
--Maur