IRC log for #tomcat on 20071208

00:25.32*** join/#tomcat acidjnk (i=acid@p5B3F0642.dip0.t-ipconnect.de)
00:59.22*** join/#tomcat tomisina (n=tomisina@CMU-218271.WV.CC.cmu.edu)
01:03.38*** join/#tomcat randrewj (n=raj-user@user-160u617.cable.mindspring.com)
01:13.48*** join/#tomcat acidjnk (i=acid@p5B3F04A4.dip0.t-ipconnect.de)
01:28.25*** join/#tomcat tomisina (n=tomisina@CMU-218271.WV.CC.cmu.edu)
01:52.39tomisinahey what
01:52.53tomisina's so bad about storing tons of information in the session
01:53.05tomisinalike information that's being pushed to the view...
01:54.21jasonbNothing except it makes the request heavier whenever it gets persisted to disk, or read back from disk.  But, if you can't limit how much memory that takes, you'll likely find yourself in an out of memory situation in the JVM.
01:54.51jasonbIt's generally better to keep it stored in the DB, but not always.
02:11.43puckoit all depends on how heavy traffic one have. lots of users with lots of data in sessions = out of memory sooner or later
02:14.07*** join/#tomcat acidjnk (i=acid@p5B3F0184.dip0.t-ipconnect.de)
02:15.30puckoif one absolutely want to cache stuff in memory, only use sessions when the data differs between users and put the rest in a applicationwide object
02:39.27*** join/#tomcat acidjnk (i=acid@p5B3F430E.dip0.t-ipconnect.de)
03:06.12*** join/#tomcat tomisina (n=tomisina@CMU-218271.WV.CC.cmu.edu)
03:28.10*** join/#tomcat acidjnk (i=acid@p5B3F4044.dip0.t-ipconnect.de)
03:37.34*** part/#tomcat randrewj (n=raj-user@user-160u617.cable.mindspring.com)
03:49.10*** join/#tomcat acidjnk (i=acid@p5B3F3E65.dip0.t-ipconnect.de)
03:52.33*** join/#tomcat isa (n=ighigiu@cpe-68-206-97-180.satx.res.rr.com)
04:21.09*** join/#tomcat acidjnk (i=acid@p5B3F3CD2.dip0.t-ipconnect.de)
04:34.44*** join/#tomcat acidjnk (i=acid@p5B3F3A18.dip0.t-ipconnect.de)
04:57.07*** join/#tomcat CharlieS1 (n=charlie@pool-71-114-232-73.austtx.dsl-w.verizon.net)
05:21.40*** join/#tomcat odin_ (n=dlm@host81-132-27-142.range81-132.btcentralplus.com)
05:38.38*** join/#tomcat acidjnk (i=acid@p5B3F3863.dip0.t-ipconnect.de)
06:48.32*** join/#tomcat cofeineSunshine1 (n=justinas@212.47.107.24)
07:27.44*** join/#tomcat cofeineSunshine (n=justinas@212.47.107.24)
07:39.02*** join/#tomcat kjkoster5489 (n=kjkoster@kjkoster.org)
08:39.31*** join/#tomcat _eth0 (i=schlamak@f049010208.adsl.alicedsl.de)
08:59.15*** join/#tomcat Kassec (n=Kassec@gar78-1-82-238-169-95.fbx.proxad.net)
09:02.13Kassechi !
09:02.19*** join/#tomcat TBBle (n=tbble@202.55.155.45)
09:11.50KassecI have an issue with a tomcat 5.5.23, jvm 1.5.0_12-b04, Debian Linux 2.6.18, spring 1.2 : some requests take hours while most are served in just a few ms. Tomcat's manager shows some requests in servicing status that are more than 4,000,000 ms old. We tried to remove any front-end (like apache/mod_jk) but it does not help. Requests are still in servicing status while the tcp socket has already been closed for a while in the Linux's tcp
09:11.57Kassecany hint welcome ;)
09:26.37*** join/#tomcat a4akba (n=a4akb@62.215.156.215)
09:33.09kjkoster5489Kassec: Have you traced some of the requests in Java already?
09:37.27*** join/#tomcat teszrr (n=ISADMIN@62.215.156.215)
09:39.33*** join/#tomcat a4akba (n=a4akb@62.215.156.215)
09:39.39a4akbahola
09:50.43*** join/#tomcat KCNV (n=polx@62.128.48.166.static.012.net.il)
09:58.05Kasseckjkoster5489: nope, it's not my project, I'm a sysadmin (with java knowledge), not the dev of this project
10:00.36Kassecand the volume is large enough (50 reqs/sec) so that debug traces will be a real pain ;)
10:07.29KCNVhey guys. I'm running Tomcat 5.5.23, JRE 1.4.2_03 on a Win2003 RC2 server. I have a problem that when I start-up the server and try to access the http://localhost:8080 page, I get a 404 error. I checked the logs and there seems to be nothing there but notifications of the start-up and shut-down of the server. I have also configured my manager and admin users, and made sure the connector for is set to the 8080 port. What else can I try to fix it
10:43.23*** join/#tomcat kjkoster5489 (n=kjkoster@kjkoster.org)
11:10.55kjkoster5489Kassec: is it limited to a specific request url or not? You could enable request response time logging in the logs to see.
11:14.35*** join/#tomcat wild_oscar (n=miguel@a83-132-60-128.cpe.netcabo.pt)
11:18.08Kasseckjkoster5489: not a specific url, we have two or three candidates over 150 that are mostly causing but they are, by far, the most requested so I believe this is fair ...
11:19.04kjkoster5489Hmm.
11:19.42kjkoster5489The question is what is happening here, assuming the application is at fault and not some proxy or httpd config problem.
11:19.57kjkoster5489Are these straight request for some content?
11:20.09kjkoster5489Your basic JSP with a database to get data from?
11:20.16kjkoster5489Or web services as backend?
11:20.50*** join/#tomcat Nicke (n=niclasa@ua-83-227-140-135.cust.bredbandsbolaget.se)
11:21.09kjkoster5489An idea might be to do occasional thread dumps to see what your threads are blocking on.
11:24.55Kasseckjkoster5489: I really have no idea. I already spend some hours trying to see something. We really optimized the db server, changed a little the tomcat config, etc.
11:25.03Kassecwe had some success on perf when everything is fine
11:25.19kjkoster5489I don't understand that last statement.
11:25.44Kassecof course ;)
11:25.48kjkoster5489You have no idea of the application architecture?
11:25.59KassecI mean, we now have better app perf for pages served correctly
11:25.59kjkoster5489Don't know what web services it uses?
11:26.32Kassecand then, after some time (10 to 30 minutes after tomcat's restart), we begin to "loose" some threads and they get stuck
11:26.47Kassecand the client gets no response (or after one hour !)
11:26.59kjkoster5489Ok.
11:27.04kjkoster5489No errors in the logs?
11:27.18kjkoster5489You have apache in front of Tomcat?
11:27.27Kasseca few app exceptions, nothing meaningfull
11:27.34Kassecno more apache since a few hours
11:27.57Kassecup to know, I wasn't betting on an app problem
11:28.22KassecI don't understand that tomcat doesn't timeout its threads after some time
11:28.30Kassecand didn't find a way to configure that
11:28.45Kassecthat would, at least, let us run the service, even with bugs
11:28.59kjkoster5489Yes, I see your point.
11:29.01Kassecbut now, with the number of clients, we exhaust the 1500 threads pool quite quickly
11:29.10kjkoster5489Hmm.
11:29.20kjkoster5489Have you considered load balancing?
11:29.41Kassecthe first setup was running laod balancing over two tomcats using mod_jk
11:29.51kjkoster5489Not to solve the issue, but to lighten the load on your servers, allowing it to run longer until the thread statt to die.\
11:30.14kjkoster5489And you have the same behaviour with and without the load balancing?
11:30.21KassecI'd better have 3000 threads in the tomcat, would do the same, I only have one server for serving the app right now
11:30.25Kassecexactly
11:30.42Kassecon both tomcats
11:30.54kjkoster5489No memory issues?
11:31.09KassecFree memory: 78.22 MB Total memory: 531.93 MB Max memory: 986.12 MB
11:31.34Kassecno file desc issue either, ulimit has been raised
11:31.50kjkoster5489Have you enabled JMX, so that you can use jconsole to look into the server?
11:32.28kjkoster5489I have relatively littel experience doing so, but I think you should cause thread dumps on the server using kill -3 iirc.
11:32.54KassecI'm going to at the moment, would you help find the values where I could have the better info ?
11:32.58kjkoster5489I'm not sure doing so is safe from a functional persecive, but it may help you locate what the dead threads are and what they are doing.
11:33.11Kassecthread dump is a great idea, I didn't thought about it !
11:33.40Kassecany chance I can get this info through jmx ?
11:33.43kjkoster5489Just start tomcat with -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
11:33.57kjkoster5489You are running with -server enabled, yes?
11:34.07Kassechum, let me check
11:34.29kjkoster5489I'm not sure that the client hotspot uses more than one cpu.
11:35.13Kassecnope
11:36.02Kassecwill relaunch the app with that -server and jmx enabled soon
11:37.50kjkoster5489What monitoring tools do you use? Just curious.
11:38.07Kassecfor ?
11:38.21Kassecsystems ?
11:40.40*** join/#tomcat LongBeach (n=mike@AFontenayssB-152-1-57-48.w82-121.abo.wanadoo.fr)
11:48.52kjkoster5489Kassec: yes
11:53.16Kasseckjkoster5489: jmx gives access to threads stack trace, it's great.
11:53.35kjkoster5489:-)
11:53.52kjkoster5489<golllum>JMX is my friend.</gollum>
11:55.14kjkoster5489You may have to script things, though.
11:55.30kjkoster5489If the volume is as high as you say.
12:00.29KassecI just found that the dev lied to me
12:00.47Kassecwhen I asked 'no more mtex in the code ?' and they said no
12:01.03KassecAnd now we found a lot of synchronized methods
12:01.05Kassec...
12:06.31kjkoster5489Well, it's kind'a hard to write an app without them.
12:06.57kjkoster5489Are you sure they are not library methods?
12:38.25Kasseckjkoster5489: they are app methods
12:38.32kjkoster5489Ok.
12:38.45KassecThey're checking the code to see how to avoid them, or at least deadlocks
12:38.53Kassecthanks a lot for your time
12:39.18kjkoster5489In my experience you can save a lot of this by making use of the synchornised library classes.
12:39.28kjkoster5489BlockingQueue is my favourite.
12:40.12Kassecyes, I never use synchronized myself, too much trouble and no timeout ;-)
12:40.20kjkoster5489:-)
12:40.39kjkoster5489Then you'll like the blocking queue. It has time-outs.
12:40.47Kassecbut here, I was given a problem on a project that I didn't know it existed a few hours ago !
12:41.02kjkoster5489Such is life.
12:41.12kjkoster5489What systems monitoring tool do you use?
12:41.29Kassecoh yes, several
12:41.31Kassecmunin
12:41.35kjkoster5489Zabbix?
12:41.38Kassecnagios+centreon
12:41.40Kassecand our owns
12:41.47kjkoster5489ok.
12:41.48Kassecdevelopped in j2ee
12:42.14kjkoster5489What JMX attributes do you monitor on a regular basis?
12:42.17KassecI don't really know zabbix
12:42.32kjkoster5489I'm working on a Java plugin for Zabbix.
12:42.46kjkoster5489It's just another monitor tool. :)
12:42.48Kassecyou're working for Zabbix project ?
12:42.53kjkoster5489No, my own.
12:42.53Kassecis it cool ?
12:43.06kjkoster5489Well, Java monitoring with Zabbix is vool.
12:43.11kjkoster5489s/vool/cool/
12:43.17Kassecwill give it a try
12:43.28kjkoster5489http://www.kjkoster.org/zapcat/
12:43.34kjkoster5489That's the Java plugin.
12:43.47kjkoster5489I'm working on a template.
12:44.01kjkoster5489So I would like to know what you monitor from Tomcat and JVM's.
12:44.33kjkoster5489If you try Zabbix, drop me a line and I will e-mail you the draft Java template.
12:46.32Kassecok. we mostly monitor tomcat's nb threads, connections, reqs, etc.
12:46.35Kassecvery usual
12:46.46Kassecdigging to find interesting is long
12:46.57Kassecit takes too much time for usual needs
12:47.35Kassechaving a tool preconfigured with a bunch of good templates that give access to good beans to monitor would be very cool
12:47.42Kassecwould save time and improve monitoring
12:49.28kjkoster5489Ok. threads have in my template, memory (os, Java heap and Java nonheap) and file descritors.
12:49.38kjkoster5489How do you monitor the connections?
12:49.44kjkoster5489And the requests?
12:59.23*** join/#tomcat ries (n=ries@200.110.78.134)
12:59.25Kassecdon't remember the values
12:59.30Kassecthey're exposed by tomcat
13:03.24kjkoster5489ok.
13:07.23Kasseckjkoster5489:
13:07.24Kassecajp_requests.jmxObjectName Catalina:name=jk-8009,type=GlobalRequestProcessor
13:07.24Kassecajp_requests.jmxAttributeName requestCount
13:07.36Kassecajp_errors.jmxAttributeName errorCount
13:07.52kjkoster5489Thanks.
13:08.09Kasseccatalina_threads_busy.jmxObjectName Catalina:name=ajp-8009,type=ThreadPool
13:08.09Kasseccatalina_threads_busy.jmxAttributeName currentThreadsBusy
13:08.15Kasseccatalina_threads_count.jmxObjectName Catalina:name=ajp-8009,type=ThreadPool
13:08.16Kasseccatalina_threads_count.jmxAttributeName currentThreadCount
13:08.35Kasseccatalina_bytes_received.jmxObjectName Catalina:name=ajp-8009,type=GlobalRequestProcessor
13:08.35Kasseccatalina_bytes_received.jmxAttributeName bytesReceived
13:08.41Kasseccatalina_bytes_sent.jmxObjectName Catalina:name=ajp-8009,type=GlobalRequestProcessor
13:08.41Kasseccatalina_bytes_sent.jmxAttributeName bytesSent
13:08.43Kassecetc.
13:19.20kjkoster5489What are those requests to /p-80.html in my access logs?
13:32.02BULLEkjkoster5489: no idea, what does your p-80.html contain ?
13:32.25kjkoster5489Well, it does not exist, but someone is requesting it.
13:32.47kjkoster5489I found them in my 404 log.
13:37.41BULLEguess you have to ask the one who requests it what he/she expects to get hold of
13:38.04BULLEmight also be some known security issue in some framework, someone is trying to exploit, and just probes all sites they can find
13:40.09kjkoster5489I was wondering if it may be the latter.
13:40.33kjkoster5489I can't find anything in that direction through Google.
13:40.54BULLEneither can i
13:41.09BULLEi dont stay up to date when it comes to security issues though
13:41.16BULLEbut one would think google would come up wth something
13:46.46*** join/#tomcat acidjnk (i=acid@p5B3F3863.dip0.t-ipconnect.de)
14:11.06*** join/#tomcat frankbille (n=frankbil@apache/committer/frankbille)
14:14.00frankbille(Tomcat: 5.5.25, Java:;
14:14.14frankbille1.5.0_13
14:15.04frankbillewups, damn keyboard... OS: Linux) Question: Is it possible to specify in which order the virtual hosts start up?
14:16.42frankbilleI have tried: reordering in server.xml, renaming the host folder and webapp folder so they are named in natural sorting order of what I want
14:17.56frankbilleand I have of cause tried to search the lists/web
14:31.21frankbilleHmm, according to this thread it's not really possible: http://markmail.org/message/pb5thhnfbwrnhzw3
14:31.26frankbilleThank you for your time
15:50.06*** join/#tomcat vinse_ (n=vinse_@208.253.223.146)
16:03.18*** join/#tomcat jasonb (i=noneoyer@adsl-66-124-73-250.dsl.sntc01.pacbell.net)
16:06.44wild_oscarjasonb, glad I find u
16:06.58wild_oscarperhaps u can easily explain a doubt I had yesterday
16:07.44wild_oscarregarding the reloadable="true" option
16:08.03wild_oscartomcat has to reload the entire web app when it detects a class change, correct?
16:12.52jasonbIt reloads all class files.
16:13.16jasonbSo, all servlets in the webapp must be taken out of service, de-referenced, reloaded, and reinstantiated.
18:00.34*** join/#tomcat ibot (i=ibot@pdpc/supporter/active/TimRiker/bot/apt)
18:00.34*** topic/#tomcat is Stable versions: 6.0.14, 5.5.23 and 4.1.36. Newbies use the official binary from tomcat.apache.org, or an RPM package from http://www.webdroid.org:8080/archives/tomcat-package. Check your Tomcat logs before you ask for an answer. SLOW MOTION CHANNEL (we all have jobs & kids): Ask your question, including your TC, Java, & OS versions, then wait; check back often for answers.
18:05.14*** join/#tomcat Kassec (n=Kassec@gar78-1-82-238-169-95.fbx.proxad.net)
19:32.30*** join/#tomcat chickenFuego (n=chicken@Le723.l.pppool.de)
20:45.25*** join/#tomcat wltjr (n=wltjr@gentoo/developer/wltjr)
21:00.14*** join/#tomcat fzlogik (n=fzlogik@host-84-9-147-86.bulldogdsl.com)
21:39.31*** join/#tomcat Kukoc (i=Kukoc@host32-116-dynamic.6-79-r.retail.telecomitalia.it)
21:39.35*** part/#tomcat Kukoc (i=Kukoc@host32-116-dynamic.6-79-r.retail.telecomitalia.it)
21:40.14*** join/#tomcat vanksi (n=vanksi@stekt2.oulu.fi)
21:55.27*** part/#tomcat wild_oscar (n=miguel@a83-132-60-128.cpe.netcabo.pt)
22:41.52*** join/#tomcat ries (n=ries@200.110.78.134)

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.