Re: What if my database is unavailable at startup?
Barry, You have testOnBorrow="true" without a validation query. That means the line is useless. Or as the docs say:* NOTE - for a true value to have any effect, the validationQuery parameter must be set to a non-null string* Best, Alec On Mon, Dec 16, 2013 at 10:07 AM, Propes, Barry L wrote: > > > -Original Message- > From: Howard W. Smith, Jr. [mailto:smithh032...@gmail.com] > Sent: Friday, December 13, 2013 4:23 PM > To: Tomcat Users List > Subject: Re: What if my database is unavailable at startup? > > OP, > > On Fri, Dec 13, 2013 at 2:24 PM, Dames, Kristopher J < > kristopher.da...@mercy.net> wrote: > > > I use tomcat 6 and have noticed if a database is not available when > > tomcat starts, tomcat will not try to connect once the database becomes > available. > > Tomcat must be restarted to establish the database connection. What > > are best practices regarding this? Is there a way in tomcat to get it > > to automatically retry so I don't have to restart tomcat? I use DBCP > > but am willing to try some other pool. > > > Barry, > > On Fri, Dec 13, 2013 at 4:59 PM, Propes, Barry L >wrote: > > > I use DBCP and Oracle as well, and am also on Tomcat 6 - 6.0.26. Take > > a look at mine, as I have NO trouble with it, and see if you can > > configure it similarly with success. NOTE - remove those other two > > parameters that Jose mentions in a prior email. > > > >> auth="Container" > > description="mytomcatapp" > > name="jdbc/myoracle" > > type="javax.sql.DataSource" > > driverClassName="oracle.jdbc.driver.OracleDriver" > > username="username" > > password="password" > > url="jdbc:oracle:thin:@cgnrdb1p:1648:SERVNAME" > > maxIdle="30" > > maxWait="1" > > maxActive="10" > > testOnBorrow="true" > > timeBetweenEvictionRunsMillis="-1" > > minEvictableIdleTimeMillis="28800" > > poolPreparedStatements="true" > > removeAbandoned="true" > > removeAbandonedTimeout="300" > > logAbandoned="false"/> > > > > are you suggesting that your (or a correct(ed)) will solve the > problem stated in OP (above)? > > can/should we assume that your URL is referencing a database on a > different machine, same network/intranet/LAN? > > > url="jdbc:oracle:thin:@x.y.com:1521:x" > > it seems as though OP is referencing a database somewhere on the > 'internet'. > > -- > > Oh ok. Yes, mine is on the same network, through an intranet. Different > machine, but same network. If that helps. > > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging makes a grown man cry
Sorry if resurrecting the dead is frowned upon here but I thought I would just add my resolve to this. Honestly, after writing a lot of code otherwise, logging was probably the most frustrating. Tomcat 7.0.42, RHEL 6 1. SL4FJ with Logback works beautifully. 2. I have custom error pages in web.xml that redirect various exceptions to servlets. The servlets capture the exceptions and write them out to different logs using SLF/Logback. 3. The default logging.properties is completely commented out. Note: deleting it is different than it being empty. 4. Since spymemcached logging is baked in, I added SLF as its logger in my ContextInitialized listener: // set SLF4J as the logger for spymemcached Properties systemProperties = System.getProperties(); systemProperties.put("net.spy.log.LoggerImpl", "net.spy.memcached.compat.log.SLF4JLogger"); System.setProperties(systemProperties); ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("net.spy.memcached"); logger.setLevel(Level.ERROR); Cheers, Alec
PropertyNotFoundException does not work with custom error in web.xml
I have a custom error servlet set up in my webapps web.xml file like so: java.lang.RuntimeException /runtimeExceptionHandler In JSTL if a property is spelled incorrectly or doesn't exist, the PropertyNotFoundException will not trigger the error servlet, even though PNFEs extend RuntimeException. Anyone know why this is? Tomcat 7.037 on Win7. TIA Alec
New connections in a pool
In an earlier thread I asked about losing pooled connections after a certain amount of time.
Re: PropertyNotFoundException does not work with custom error in web.xml
Sorry for the late reply, it works, just a dumb mistake on my part. I wasn't handling GETs in my custom error servlet. Thanks again, Alec On Thu, Jan 9, 2014 at 5:11 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 1/9/14, 2:28 PM, Tomcat Random wrote: > > I have a custom error servlet set up in my webapps web.xml file > > like so: > > > > > > java.lang.RuntimeException > > /runtimeExceptionHandler > > > > In JSTL if a property is spelled incorrectly or doesn't exist, the > > PropertyNotFoundException will not trigger the error servlet, even > > though PNFEs extend RuntimeException. Anyone know why this is? > > > > Tomcat 7.037 on Win7. > > Does your error handler work in other situations? For example, if you > throw RuntimeException from a servlet? How about > PropertyNotFoundException from a servlet? What about throwing either > of them directly from a dummy JSP? > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1 > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSzx6EAAoJEBzwKT+lPKRYenkP/2CwWPCsYDGRDn7o5Kgn4AK4 > /kvFW8dzy0gUdVWj5t9VnrefqOyVnzGxKXfPTh0z1EFp8OZroe2Fh/r5ojH/nbRB > E/ZCNIILNfazxA6QCCo8B30vLkv4IEnzCF4DFswRjECB/4ZuOASL8hBiAzikGiKj > ZTRLRePEK/kG0822rbWuy1RmgwDiEAZcDFtcPYUbMY8MoBb913XN0gv7kYnbhNy/ > mq1VWVCa7hQtUnjBxcDJwFpcWUqc7zZpJmFW2PcsBo0489OnuhR9lUEGQbZDXeGe > SfRZg/Kat2fSs1Rd9vKGMqcP0Q2YgZ1n1HG3lyzbY7q29/6pS0agpdckgdteRydA > 5kyyjpI0jQUKiUOic2NdiZYbYE+8m8b1J9JojLBCIl9v7LQ7N6AIkFgktk6XY+Ij > BRvKbN3MDt2yHfaxILJ4pGrqHhnS7RUKB9zf+5YNMx3dNntU7AQv9Ky+pJTaWnub > LgDrLSnCgGQgHHUibVxKsoVg86R19Tx5ZBEZXzb2IZDTnjdDAW1Xb4qFhxLtaTw5 > TlqXyiWA4UiRpgc/3FfCM1SXaaSffRxBJtW14Ead5ugtdbrl6B01UEpUKDhbTjgM > pNQFAnR44fpIA28WpHS4OC29c95ZzwlcJsHryMie3kaENzZIVIYalI5atxTI3kUz > E9R/OFChkf8RVBwQV+0a > =h3AK > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Multiple instances of Tomcat 7.0 on one server
We currently are setting a site that receives fairly heavy traffic (5000 simultaneous users). We have two physical servers. As a general idea, is there performance to be gained by running multiple instances of Tomcat 7.0? For example, two instances on one physical server and two instances on the other physical server? Assume all are running the same webapp. TIA
Confusion about session replication
Setup: - Two physical servers each running Tomcat 7.0.42 - Brocade load balancer in front The load balancer is set to source IP persistence for 5 minutes. This time can be changed of course. The thing I don't understand is 5 minutes or 5 hours - at then end that time limit the user can be sent to the other server and lose data stored in the session. So why do sticky sessions matter when session replication turned on in Tomcat? Is a performance issue? TIA
Re: Confusion about session replication
Thanks Chris - Sorry for the unintended anonymity. My name's Alec. So set the LB stickiness to the same n number as in web.xml. "Assuming that the lb is updating the last-touch time for every request mentioning the session" Could you explain this a little further. How would the LB be monitoring requests mentioning the session. Would that be a request that had *JSessionID *in it? TIA, Alec On Wed, Jul 24, 2013 at 2:30 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > To whom it may concern, > > (Might we know your real name? The above introduction feels so > impersonal...) > > On 7/24/13 11:13 AM, Tomcat Random wrote: > > Setup: - Two physical servers each running Tomcat 7.0.42 - Brocade > > load balancer in front > > > > The load balancer is set to source IP persistence for 5 minutes. > > This time can be changed of course. > > > > The thing I don't understand is 5 minutes or 5 hours - at then end > > that time limit the user can be sent to the other server and lose > > data stored in the session. > > > > So why do sticky sessions matter when session replication turned on > > in Tomcat? Is a performance issue? > > Sticky sessions aren't really necessary when session replication is > on. On the other hand, session information takes non-zero time to > propagate between the members of the cluster, so using session > stickiness may reduce the risk of out-of-date sessions when a user > randomly switches servers in the middle of a series of high-rate requests. > > I would recommend setting the stickiness timeout to the same as the > session timeout, assuming that the lb is updating the last-touch time > for every request mentioning the session. If that's not happening, > then it probably doesn't really matter what you set your session > stickiness timeout to be. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG/MacGPG2 v2.0.17 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJR8B08AAoJEBzwKT+lPKRY7mwQAMN3eUGpNJ3ZgHQaGQbQJsel > z93LU7OvNVDK1/I5P0HWAezYJ7CCrjKAVBz2IjXqTyeODrS8l6ubc8HKCFexPZlG > PNBzr4TGx+OeKrlkVGWA7w8mo8LFPcWIwxKmVHPaVHBa30B4SXFXiGqanycn04F/ > VRGFBCC1R3+NLhmn7Cag3ZpfhsnCN4a3XAYy0ZvrW/rARTOpGp68kccJppgv+Uab > RYZzmGCYQZeLfI2j7BFaAntc38di9+O8X68N/nC4GqIzE+XvDD/ZkYFlvYtzBxNn > k4MaoRS05KV53qbZrMqSldjU+heIfufB1mF+f/xXlPkOX/fZPVsH6fxEyuS6WPl5 > 4qd/Cs5XXNEvMbz/S4JY8ZtnmSONZr8xffHfJf9rUzNiVqcXGcIOkbg00ZHViUuF > c/0ADkbrwe8nStChlRfj6h6xybiKo7404g90PA8Op3C4CwO22SOus4tCZdDwXw5H > N9Kv6DORgPZlH9XaBJzEf6M1n1EruOI1pQ/LC9Lbc3pSAod4QRKbP1zDmfr61UG8 > MF2fsXmvCCIie70rA2xlTk7PRpTwhPCbs7DRDrh/GavPeBomtl43fJSLfNczBMq8 > zTpWfgSgOzOi+VR0+jV2JXQTCQ17nj4Jikl3VR3rUv+11C9rxOjB6vsc3Ir/FHju > NKrqyHotyHH10s82Do4Z > =Cr56 > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Session replication advice
I have two physical servers running Tomcat 7.0.42, each running the same webapp. I'm interested in some advice with session replication. I'm not concerned with fail-over, or high-availability. I just want to be able to have sessions maintained when the user is routed to a different server by the load balancer. Is the documentation accurate in that just doing: *Simply add to your or your element to enable clustering.* I've been through the docs and still a little confused as to the best way to implement session replication. TIA Alec
Configuration question for 2500 simultaneous users.
The project I'm working on has 5000 simultaneous users average. I have two physical servers both running an instance of Tomcat 7.0. They're behind a physical load balancer with sticky, least connections balancing. Nothing in front of the Tomcats. Port 80 to is routed to them by iptables. Anyone out there willing to offer some tips (or point me to them) on configuration for this amount of traffic? Environment is: DELL PowerEdge R720 - 32 GB DELL RAM, GB Memory: 32 Single Socket Six Core Intel Xeon E5-2640 2.5GHz, #Processors: 1, #Cores per Proc: 6 RHEL 6 TIA, Alec
Re: Configuration question for 2500 simultaneous users.
Thanks Mark, I will give it a close read. As far as profiling, are you using any tools that are worth mentioning? Best, A On Tue, Jul 30, 2013 at 4:02 PM, Mark Eggers wrote: > On 7/30/2013 12:42 PM, Tomcat Random wrote: > >> The project I'm working on has 5000 simultaneous users average. I have two >> physical servers both running an instance of Tomcat 7.0. They're behind a >> physical load balancer with sticky, least connections balancing. Nothing >> in >> front of the Tomcats. Port 80 to is routed to them by iptables. >> >> Anyone out there willing to offer some tips (or point me to them) on >> configuration for this amount of traffic? >> >> Environment is: >> DELL PowerEdge R720 - 32 GB DELL RAM, GB Memory: 32 >> Single Socket Six Core Intel Xeon E5-2640 2.5GHz, #Processors: 1, #Cores >> per Proc: 6 >> RHEL 6 >> >> TIA, >> Alec >> >> > A great overview, and a solid outline of the process you should follow: > > http://people.apache.org/~**markt/presentations/2009-04-** > 01-TomcatTuning.pdf<http://people.apache.org/~markt/presentations/2009-04-01-TomcatTuning.pdf> > > That, plus profiling your application with real-world traffic to > understand bottlenecks and use cases . . . > > . . . just my two cents. > /mde/ > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tomcat.**apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Configuration question for 2500 simultaneous users.
Thanks Mark, I've been getting up to speed on JMeter. I've used selenium before. "The particulars depend on your particular application" - agreed. That part I can work out myself by looking at bottlenecks, generally timing areas of the application with more and more granularity, in places where the app behaves slowly. Best, Alec On Tue, Jul 30, 2013 at 6:17 PM, Mark Eggers wrote: > On 7/30/2013 1:17 PM, Tomcat Random wrote: > >> Thanks Mark, I will give it a close read. >> >> As far as profiling, are you using any tools that are worth mentioning? >> >> > Nothing outstanding, since currently all of our applications are pretty > lightweight. That may change if we redo the architecture. > > JMeter / Selenium in combination can generate a lot of traffic. Generate a > selenium test script, export to JUnit, couple with HTMLUnit, and hammer > away. > > There are several ways to watch what goes on with your application: > > JConsole > VisualVM > > The Tomcat Wiki page has more: > > http://wiki.apache.org/tomcat/**FAQ/Monitoring<http://wiki.apache.org/tomcat/FAQ/Monitoring> > > For lighter weight profiling (usually to figure out where the application > bottlenecks are), I run the project under NetBeans and instrument the > project. > > Access logs are usually a good first source for generating JMeter tests. > > In general, people can only give you guidelines concerning sizing, > profiling, and benchmarking. The particulars depend on your particular > application. > > > . . . . just my two cents. > /mde/ > > PS - Please don't top post. > > Best, >> A >> >> >> >> On Tue, Jul 30, 2013 at 4:02 PM, Mark Eggers >> wrote: >> >> On 7/30/2013 12:42 PM, Tomcat Random wrote: >>> >>> The project I'm working on has 5000 simultaneous users average. I have >>>> two >>>> physical servers both running an instance of Tomcat 7.0. They're behind >>>> a >>>> physical load balancer with sticky, least connections balancing. Nothing >>>> in >>>> front of the Tomcats. Port 80 to is routed to them by iptables. >>>> >>>> Anyone out there willing to offer some tips (or point me to them) on >>>> configuration for this amount of traffic? >>>> >>>> Environment is: >>>> DELL PowerEdge R720 - 32 GB DELL RAM, GB Memory: 32 >>>> Single Socket Six Core Intel Xeon E5-2640 2.5GHz, #Processors: 1, #Cores >>>> per Proc: 6 >>>> RHEL 6 >>>> >>>> TIA, >>>> Alec >>>> >>>> >>>> A great overview, and a solid outline of the process you should follow: >>> >>> http://people.apache.org/~markt/presentations/2009-04-**<http://people.apache.org/~**markt/presentations/2009-04-**> >>> 01-TomcatTuning.pdf<http://**people.apache.org/~markt/** >>> presentations/2009-04-01-**TomcatTuning.pdf<http://people.apache.org/~markt/presentations/2009-04-01-TomcatTuning.pdf> >>> > >>> >>> >>> That, plus profiling your application with real-world traffic to >>> understand bottlenecks and use cases . . . >>> >>> . . . just my two cents. >>> /mde/ >>> >> > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tomcat.**apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Configuration question for 2500 simultaneous users.
Hey Chris, I'm expecting 5000 simultaneous users, with a physical load balancer to two physical app servers. So ~2500 per machine, each running an instance of tomcat not fronted by httpd or any proxy server. (i.e., using Tomcat to serve a few static assets along with the webapp). "are you just interested in speculative performance tuning?" That's correct - with just one user (myself) testing it everything is wonderful. I've just got that uneasy feeling the servers will explode when we flip over from our old host/codebase and get all the traffic. Best, Alec On Wed, Jul 31, 2013 at 11:09 AM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 7/30/13 3:42 PM, Tomcat Random wrote: > > The project I'm working on has 5000 simultaneous users average. I > > have two physical servers both running an instance of Tomcat 7.0. > > They're behind a physical load balancer with sticky, least > > connections balancing. Nothing in front of the Tomcats. Port 80 to > > is routed to them by iptables. > > > > Anyone out there willing to offer some tips (or point me to them) > > on configuration for this amount of traffic? > > > > Environment is: DELL PowerEdge R720 - 32 GB DELL RAM, GB Memory: > > 32 Single Socket Six Core Intel Xeon E5-2640 2.5GHz, #Processors: > > 1, #Cores per Proc: 6 RHEL 6 > > Are you experiencing any problems, or are you just interested in > speculative performance tuning? > > Tomcat's default configuration is quite reasonable. How many > simultaneous /connections/ do you expect? > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.14 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJR+SisAAoJEBzwKT+lPKRYXfQP/AvnWo09Ucm7xSr4zIaQgVtX > PP0Uw7EV0valZEXlVsdRBJY6fFn2m3e43zpC6dsZidflUzS5ITZ0R7S5JShNZnLJ > LpBDf8KQG6OrHuNsZ7iLvuSXWHBOvLqdHvXvrRH4vcj5xleMtZzm4FA5GyG/bS4P > wvSltjkUkOtcaXg4kf50iXKNXtMrZPPuTBgdZxT6uHuM3x8Ux2sLPAufJ06Rf+Wx > N/uAyylthDlI367G3ZrBRuzP5nbrdKjZNKHpd3uHVq0TkO9QtGn3/baa7+6SeFfP > M3KycT9yjbOiiKFcpFCZ9OdJDQpSOXZhjGQZckqsyqN5lD1FL2fppDj9uWUdOgPT > A73Hsy2Bu+rzfw6QIf5okVLy1PzF7dRv8/moGwN5fsNDY5nX7ccWua245X1irCwv > z0Hw3jQWtVUTnbFu8oR9cEYuly+Hv5oFoc94vQ78/an44pAJgP3FNWU9lv5oE4YR > RCPrPElyb50KNNeCfu4SEBO/DVo1XJSMb6Xi6k70oehac3mmeNlqRQBOJ9/BfrA+ > pwU1JY3Q5V+yXTaGyzv1gLDViFoj0kIPtlch/WH4sfsQeZvS0oI/ol6U3rtb8PdO > eKIsnOzynud7KDkWf+LO+C+GCcrcqeBl2XFirt4pd227VV36jHZgx5Zf5Epf9v04 > o4etXLrcpbB6wgGkWR5K > =FKB4 > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Cannot start apache tomcat 7.0 if server path contains two consecutive spaces.
"Spaces in paths (and filenames) are evil, and should never have been allowed in the first place. A special place in hell is reserved for the genius who first allowed this stupid thing in an OS. Luled at this. The underscore is your friend. I find it odd that the OP can't just rename said directories, but who knows: there's always inheriting a lot of WTF's from an existing project that just leads to non-stop facepalming. On Wed, Jul 31, 2013 at 1:27 PM, André Warnier wrote: > TRAN Trung Thanh wrote: > >> Hi all, >> I am newbie here. >> Today, I tried to start apache tomcat 7.0.42 in Linux environment. Server >> path contains two consecutive spaces. When I run ./catalina.sh run, server >> cannot start and there is the following exception in console >> >> ./catalina.sh run >> Using CATALINA_BASE: /home/example/twoconsecutive spaces >> Using CATALINA_HOME: /home/example/twoconsecutive spaces >> Using CATALINA_TMPDIR: /home/example/twoconsecutive spaces/temp >> Using JRE_HOME:/home/example/java/jdk1.6 >> Using CLASSPATH: /home/example/twoconsecutive >> spaces/bin/bootstrap.jar:/**home/example/twoconsecutive >> spaces/bin/tomcat-juli.jar >> Exception in thread "main" java.lang.**NoClassDefFoundError: >> org/apache/catalina/startup/**Bootstrap >> Caused by: java.lang.**ClassNotFoundException: >> org.apache.catalina.startup.**Bootstrap >> at java.net.URLClassLoader$1.run(**URLClassLoader.java:202) >> at java.security.**AccessController.doPrivileged(**Native Method) >> at java.net.URLClassLoader.**findClass(URLClassLoader.java:**190) >> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**306) >> at sun.misc.Launcher$**AppClassLoader.loadClass(**Launcher.java:301) >> at java.lang.ClassLoader.**loadClass(ClassLoader.java:**247) >> Could not find the main class: org.apache.catalina.startup.**Bootstrap. >> Program will exit. >> >> Tomcat server can start if server path does not contain consecutive >> space. >> >> Do anyone face to the same issue with me in this case? Have you any >> suggestion to fix this issue? >> > > Yes : don't do that (using spaces in paths). > > > It is quite important for my deployment. > >> >> > That's a pity. > Spaces in paths (and filenames) are evil, and should never have been > allowed in the first place. A special place in hell is reserved for the > genius who first allowed this stupid thing in an OS. I wish I had 0.1 cent > for every programming hour lost because of this. > > Technically, you can certainly find the correct way to quote them in any > particular place and environment. But usually, this is merely moving the > problem to some other place further down the line, where it is even less > visible and harder to find the bugs. > I suppose the same could be said about any non-visible character, but > spaces (along with TAB) are specially evil because in most environments, > they are considered either as valid separators between words/tokens or as > "non-significant". > > My serious recommendation would be to think really hard about a way to nip > this in the bud, and avoid allowing them and using them in the first place. > Think that if you allow them somewhere, and even if you quote them > correctly there, you will have to continue quoting them (appropriately) > everywhere else that you are using the corresponding strings. It is almost > guaranteed that this will bite you somewhere. > > > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tomcat.**apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Clean up after building and installing ARP on RHEL 6
Spent a while getting APR installed and my logs are now showing no warning and indicate the native libraries are working. As per the docs: "The libraries will be found in $CATALINA_HOME/lib" - Yup, that's fine. But it seems like I have APR/native directories in several places now. Are the APR libraries in lib self-contained? Anyone know if other directories or files related to their build are safe to delete? Examples: /usr/bin/apr-1-config /usr/local/www/apache-tomcat-7.0.42/bin/tomcat-native-1.1.27-src/jni/native Would not be heartbroken if I had to wget the same files to rebuild. I'm sort of a neat freak with stray files and would rather rm them. Best, Alec
Tomcat 7.0 logging on different platforms
My development setup is Win7 while my production is RHEL6. Both of the environments have the same settings in conf/logging.properties but the files in logs/ are slightly different. The access logs are named the same way. but on RHEL there's no tomcat7-stdout or tomcat7-stderr log files. Just 'catalina.out.YEAR.MO.DY' and the cumulative "catalina.out" with no date. What accounts for the differences? Also, how would you stop logging to the 'catalina.out' file. It gets unusably gigantic within a few days. Thanks, Alec
Re: Tomcat 7.0 logging on different platforms
I've deleted any reference in logging.properties to the console. However the file rm'd catalina.out file still coming back on restarts. Any ideas? catalina,out is now also reporting "java.util.logging.ErrorManager: 4: Unable to create [logs]" Below is my altered logging.properties file: __ handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler .handlers = 1catalina.org.apache.juli.FileHandler # Handler specific properties. # Describes specific configuration info for Handlers. 1catalina.org.apache.juli.FileHandler.level = FINE 1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 1catalina.org.apache.juli.FileHandler.prefix = catalina. 2localhost.org.apache.juli.FileHandler.level = FINE 2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 2localhost.org.apache.juli.FileHandler.prefix = localhost. 3manager.org.apache.juli.FileHandler.level = FINE 3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs 3manager.org.apache.juli.FileHandler.prefix = manager. # Facility specific properties. # Provides extra control for each logger. org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler # For example, set the org.apache.catalina.util.LifecycleBase logger to log # each component that extends LifecycleBase changing state: #org.apache.catalina.util.LifecycleBase.level = FINE # To see debug messages in TldLocationsCache, uncomment the following line: #org.apache.jasper.compiler.TldLocationsCache.level = FINE # For memcached session manager de.javakaffee.web.msm.level = WARNING On Thu, Aug 22, 2013 at 11:52 AM, Konstantin Kolinko wrote: > 2013/8/22 Tomcat Random : > > My development setup is Win7 while my production is RHEL6. Both of the > > environments have the same settings in conf/logging.properties but the > > files in logs/ are slightly different. > > > > The access logs are named the same way. but on RHEL there's no > > tomcat7-stdout or tomcat7-stderr log files. Just > 'catalina.out.YEAR.MO.DY' > > and the cumulative "catalina.out" with no date. > > > > What accounts for the differences? > > > > catalina.sh redirects stderr to stdout with 2>&1 and logs them to the same > file > > Windows service wrapper (Apache Commons Daemon procrun) logs them to > separate files. > > > Also, how would you stop logging to the 'catalina.out' file. It gets > > unusably gigantic within a few days. > > > > Just do not write to the console. > > > http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Considerations_for_productive_usage > > > Best regards, > Konstantin Kolinko > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Logging for session-replication debugging
What exactly should go in logging.properties to get the most information about clustering/session replication? I see two different logging suggestions, one in the docs and one in the FAQ. Tried both but couldn't get anymore information that what's there already coming out in the logs: No warnings, lots of INFO that seems like things are OK. Tomcat_7_42. My environment is two physical servers, RHEL6, each with an instance of Tomcat. Thanks in advance Alec
Re: Logging for session-replication debugging
Thank you, works perfectly. On Mon, Aug 26, 2013 at 4:25 PM, Mark Eggers wrote: > On 8/26/2013 12:29 PM, Tomcat Random wrote: > >> What exactly should go in logging.properties to get the most information >> about clustering/session replication? >> >> I see two different logging suggestions, one in the docs and one in the >> FAQ. Tried both but couldn't get anymore information that what's there >> already coming out in the logs: No warnings, lots of INFO that seems like >> things are OK. >> >> Tomcat_7_42. My environment is two physical servers, RHEL6, each with an >> instance of Tomcat. >> >> Thanks in advance >> Alec >> >> > It's been a while since I've played with this, so your mileage may vary. > > # wrapped for easier reading > # added one additional handler > > handlers = 1catalina.org.apache.juli.**FileHandler, >2localhost.org.apache.juli.**FileHandler, >3manager.org.apache.juli.**FileHandler, >4host-manager.or.apache.juli.**FileHandler, > java.util.logging.**ConsoleHandler, >5cluster.org.apache.juli.**FileHandler > > # just the new cluster log handler - all others are stock > # logging.properties > # beware of the wrapping > > 5cluster.org.apache.juli.**FileHandler.level = FINER > 5cluster.org.apache.juli.**FileHandler.directory = ${catalina.base}/logs > 5cluster.org.apache.juli.**FileHandler.prefix = cluster. > > # just the clustering logs - all others are stock logging.properties > org.apache.catalina.tribes.**MESSAGES.level = FINE > org.apache.catalina.tribes.**MESSAGES.handlers = > 5cluster.org.apache.juli.**FileHandler > > org.apache.catalina.tribes.**level = FINE > org.apache.catalina.tribes.**handlers = > 5cluster.org.apache.juli.**FileHandler > > org.apache.catalina.ha.level = FINE > org.apache.catalina.ha.**handlers = 5cluster.org.apache.juli.**FileHander > > org.apache.catalina.ha.deploy.**level = INFO > org.apache.catalina.ha.deploy.**handlers = > 5cluster.org.apache.juli.**FileHandler > > Set logging at the desired level. > > I think I've posted this to the mailing list before . . . > > /mde/ > > --**--**- > To unsubscribe, e-mail: > users-unsubscribe@tomcat.**apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
session-replication fails on restart or kill
Tomcat 7.0.42 / RHEL 6 / Two physical servers, with one tomcat instance on each server. Physical loadbalancer with sticky sessions. No proxy servers. I've set up session-replication using the delta-manager. I can confirm it works just lovely when the LB switches over from one box to the other. Using a test get/set session value servlet, the manager app reports the primary session value on the box where it was set, and the identical backup value on the other box. So everything appears good there. The problem is if, as a crash test, I stop/restart or kill the tomcat service on the box with the primary session: the backup session on the other box gets removed. So, as you'd imagine, when the LB swaps to the non-dead server the session value is gone. Not so good there. Shouldn't the backup session value remain? Isn't that sort of the whole point. Any ideas? It would seem box 1 and box 2 can communicate enough to create backup session values and detect the death of the other node. Why would the backup session value be lost? Thanks, Alec
Re: session-replication fails on restart or kill
In a great moment of DUH, I realized I had the expireSessionsOnShutdown to true. All working nicely now. On Tue, Aug 27, 2013 at 12:27 PM, Tomcat Random wrote: > Tomcat 7.0.42 / RHEL 6 / Two physical servers, with one tomcat instance on > each server. Physical loadbalancer with sticky sessions. No proxy servers. > > I've set up session-replication using the delta-manager. I can confirm it > works just lovely when the LB switches over from one box to the other. > Using a test get/set session value servlet, the manager app reports the > primary session value on the box where it was set, and the identical backup > value on the other box. So everything appears good there. > > The problem is if, as a crash test, I stop/restart or kill the tomcat > service on the box with the primary session: the backup session on the > other box gets removed. So, as you'd imagine, when the LB swaps to the > non-dead server the session value is gone. Not so good there. > > Shouldn't the backup session value remain? Isn't that sort of the whole > point. Any ideas? It would seem box 1 and box 2 can communicate enough to > create backup session values and detect the death of the other node. Why > would the backup session value be lost? > > Thanks, > Alec >
Re: session-replication fails on restart or kill
NP, glad to contribute a little. The FAQ was helpful but it's a little confusing. I'd like to clean it up and add to the part that specifically addresses two boxes two nodes on Linux. Would that be alright? Thanks, Alec On Tue, Aug 27, 2013 at 5:52 PM, Mark Thomas wrote: > On 27/08/2013 22:41, Tomcat Random wrote: > > In a great moment of DUH, I realized I had the expireSessionsOnShutdown > to > > true. > > > > >expireSessionsOnShutdown="false" > >notifyListenersOnReplication="true"/> > > > > All working nicely now. > > Thanks for posting the solution. It makes the archives much more useful > for the next person that finds themselves facing the same issue. > > Mark > > > > > > > > > > On Tue, Aug 27, 2013 at 12:27 PM, Tomcat Random >wrote: > > > >> Tomcat 7.0.42 / RHEL 6 / Two physical servers, with one tomcat instance > on > >> each server. Physical loadbalancer with sticky sessions. No proxy > servers. > >> > >> I've set up session-replication using the delta-manager. I can confirm > it > >> works just lovely when the LB switches over from one box to the other. > >> Using a test get/set session value servlet, the manager app reports the > >> primary session value on the box where it was set, and the identical > backup > >> value on the other box. So everything appears good there. > >> > >> The problem is if, as a crash test, I stop/restart or kill the tomcat > >> service on the box with the primary session: the backup session on the > >> other box gets removed. So, as you'd imagine, when the LB swaps to the > >> non-dead server the session value is gone. Not so good there. > >> > >> Shouldn't the backup session value remain? Isn't that sort of the whole > >> point. Any ideas? It would seem box 1 and box 2 can communicate enough > to > >> create backup session values and detect the death of the other node. Why > >> would the backup session value be lost? > >> > >> Thanks, > >> Alec > >> > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Tomcat 7.0 logging on different platforms
It's a service on RHEL: eg "service tomcat start" - that does call catalina.sh so I can see where the catalina.out file is being generated. I'll probably just comment that out, although without any console logging in logging.properties it becomes quite light and captures System.err.print messages without any specified logging level. Possibly useful. The "Unable to create [logs]" problem was the "4host-manager.org.apache.juli.FileHandler" without any handler specific properties. -Alec On Wed, Aug 28, 2013 at 10:38 AM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > To whom it may concern, > > On 8/23/13 4:08 PM, Tomcat Random wrote: > > I've deleted any reference in logging.properties to the console. > > However the file rm'd catalina.out file still coming back on > > restarts. Any ideas? catalina,out is now also reporting > > "java.util.logging.ErrorManager: 4: Unable to create [logs]" > > How are you launching Tomcat? > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.14 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSHgthAAoJEBzwKT+lPKRYjVYQAJE4tDjLN/wnJ3CgRHyV0h/s > 74ngb9um1zsE98vdZupnoLN2uxtEtLvilXOkAmYV0ECAW3/jrkAkhPdcDzp+uoPy > IWsuPnQp6ADBgY1Sn/JUzOiuWxua+4kuZru9Lk6NikIPEf1lxQwEAehrRbcyW81K > 4/b9ldP4W80hHQuxgHHSVL8WWJpKDAioIT9jSWOZ6S8/MQYW2Gs/AFtmNMooPHmr > zNEmm0gE3Y/5lZUmsUjYv//xCdfksmdYmEgo1iH48vNSyJDwxn/S+pxCmbf2gROp > 4Lpab3nM4zLn+8FkYqukve22sOKwmOeWJ/28u0zo1DB0eEsnAjr+iUGa1Ff9X9pk > Uebc6qQz6QC2MuLf9UsFelj6oCnRAgW/EXKtqE+g1AogplCv7tPnDFQjTo+UMKsh > +UuGUJfIMlD04o7ZV+wFzVgeJdQ1FNPxniWoXnFolafUalSXKD9nSfKMwL1FCdtI > 9S/DmmpHIzIm3fT8C8GZu7xGypqGfr5siIFFQeUWJR/RdZojAcEjGEzbmBT1nGwv > OcaHq8DIcR62t0dMgdceE1ZOmxYBKwWtZYeMyV6oRkCZWzxiYdk45lOE4MalBi3F > odsTFvhvEmdnCgEkw7Gu6fjYOPvm4RTLb2nvUg5uYB5Rgu2pMAB+7RxfLcg3PlUY > BoUCswXVBKfaBpDqd5KE > =d6es > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
ARP Connector questions
Tomcat 7.0.42, RHEL6 I've installed the ARP connector and have my service.xml configured with the only enabled connector being: 1. I'm expecting about 2500 simultaneous visitors. Any thoughts on how much I might want to bump up the maxThreads and acceptCount? 2. Does the ARP connector work within the Executor thread pools? I'm a little unclear on this. Currently the Executor node is commented out. Do I want a shared executor for the ARP connector? Thanks in advance, Alec
Re: APR Connector questions
Chris, Thanks for correcting the misdirected reply. "Do you mean it's not working under load, or you haven't yet tried it under load?" I mean I haven't tested it under load yet. One of the main reasons for choosing APR is is that I was under the impression it's good at serving large static files. My site has some large swf files - one is ~8mb (it's a game site). The docs on APR say, "When APR is enabled, the HTTP connector will use sendfile for handling large static files (all such files will be sent asynchronously using high performance kernel level calls), and will use a socket poller for keepalive, increasing scalability of the server." Your recommendation is NIO is comparable to APR in non-ssl performance (as above for large static files) and more stable, and it would be better to switch to that? Thanks again, Alec On Thu, Sep 19, 2013 at 1:56 PM, Jeffrey Janner wrote: > > -Original Message- > > From: Christopher Schultz [mailto:ch...@christopherschultz.net] > > Sent: Thursday, September 19, 2013 12:38 PM > > To: Tomcat Users List > > Cc: Tomcat Random > > Subject: Re: APR Connector questions > > > > -BEGIN PGP SIGNED MESSAGE- > > Hash: SHA256 > > > > Alec, > > > > Please keep discussions on the mailing lists so others can benefit from > > them. > > > > On 9/19/13 12:01 PM, Tomcat Random wrote: > > > The answer for am I going to be using SSL is maybe. It's not > > > mandatory, but would be nice for an admin area of the site. I already > > > built the tcnative stuff and APR is working, but not under load. > > > > Do you mean it's not working under load, or you haven't yet tried it > > under load? > > > > > I'm using APR because it was my understanding there was a big > > > performance increase when using Tomcat without a proxy/web server in > > > front of it. I just have Tomcat with my IP tables redirecting > > > 80->8080. > > > > APR and NIO performance are comparably to each other, SSL excepted. If > > you are talking about using SSL only for "admin" access (which is > > usually fairly limited in scope/traffic), then I wouldn't worry about > > the performance difference. > > > > One could argue that any site that requires login should be 100% SSL- > > protected, but I know nothing about your requirements. > > > > +1 > > > > "2500 users might not require 2500- simultaneous connections." > > > True, and it occurs to me, sort of noobishly, where would you look > > for > > > reporting simultaneous connections? > > > > You can use JMX to get lots of information about the connectors. > > You'll have to probe periodically and build-up a trend graph to > > understand your actual traffic. > > > > http://wiki.apache.org/tomcat/FAQ/Monitoring > > > > > And once you know that number, back to my original question, how many > > > maxthreads/acceptCounts? > > > > The acceptCount is just the TCP backlog. Setting this higher than the > > default is only helpful if you have huge transaction volume bursts and > > your transactions are fairly short. If you can't handle 200 > > transactions waiting in the TCP accept queue pretty quickly, it's not > > going to help to raise that number to 1000. If you experience huge > > bursts of traffic that your app can handle with a short delay -- AND if > > you absolutely don't want to give any clients "connection refused" > > errors -- then raising the acceptCount is appropriate. I haven't seen a > > "normal" webapp that has ever required changing from the default, but > > my experience may not match the type of business you are in. > > > > As for maxThreads, that depends upon your load, the type of hardware > > you have, the length of your transactions, and the CPU load you expect > > will be required for your webapp. If your webapp is fairly CPU-bound > > (which I've found to be fairly rare) and you have a limited number of > > physical CPUs, raising the maxThreads limit buys you nothing: it may be > > worse than lowering it because you just end up running many threads at > > once and thrash the CPU. > > > > If you have a primarily I/O-bound app (most that I've seen... e.g. > > stuff that uses back-end databases for most requests) than raising the > > maxThreads can serve more requests... but then remember that your > > database must be able to handle the load as well. Having 1000 worker > > threads with a DB connection pool of
Re: APR Connector questions
Ok, thanks for the advice. If it means removing one more layer of complexity, I'm all for it. Best, Alec On Fri, Sep 20, 2013 at 11:57 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 9/20/13 2:03 PM, Tomcat Random wrote: > > Chris, Thanks for correcting the misdirected reply. > > > > "Do you mean it's not working under load, or you haven't yet tried > > it under load?" > > > > I mean I haven't tested it under load yet. > > > > One of the main reasons for choosing APR is is that I was under > > the impression it's good at serving large static files. My site has > > some large swf files - one is ~8mb (it's a game site). > > > > The docs on APR say, "When APR is enabled, the HTTP connector will > > use sendfile for handling large static files (all such files will > > be sent asynchronously using high performance kernel level calls), > > and will use a socket poller for keepalive, increasing scalability > > of the server." > > The NIO connector also supports sendfile, and avoids blocking I/O for > keepalives. > > > Your recommendation is NIO is comparable to APR in non-ssl > > performance (as above for large static files) and more stable, and > > it would be better to switch to that? > > I'm suggesting that NIO might be a comparable choice to APR with the > added benefit of removing some complexity (that of installing a native > library) to your deployment. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.14 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSPRk7AAoJEBzwKT+lPKRYv5oP/1JZhzlnNfhPI7LLPJKegf5T > Nk1Hd5DDPLoa58ihhnntQ0le0dOK6x+6LcktoIr1qvP9q2IiBupwF2HRnW4okW9O > Db3p4vr0/9IioRPCkHpEcG6J+JR0L93SEDucqFpLQCAaR6x9Yc/ziGqO241sPhJD > 5BmEBPBi+Kl+OD+UNhrMpyzNKf/zdmzjJu7oMl97DS6kNmx6gf2rvEwBS2Iec6xV > NgfzqQ/6faSIsFv5AseHIXmYkZcifyegUYemQt+ZtNs7z9C0rx7Gd1Hh6ls2mjlG > WD4Y2yILg8WouDZXJXEhGU5Pq65iVCoYPTWTF4tvJS0aU4AYVx5opiSZNeZy6vGl > UAsX7lpTDgQ/VXfEOHmslvZsHorkOnh6z9CcVDtjcZYf+mFouGy3CXJROTcUizJg > pzwghiT4jX9xcUWaf13CjuqBMo5SwsSqkkf4HY2vFDBDfn70bIG8k+FdjjTjKjv1 > hZwkGc4Ysc0h0b2vKCYgI78fwydDvdnoNEJ50IONP6coxo4fSdaFCaFCQ/gXKVLG > puMVkbE5WAkgxFBcM0zms5U9oqAQ2ZnwlGMB6tM1/GvnIQYgAiqqDVgEwm/wbWct > XYxPIHakMXtJZRPY5lECQzmbHMZX4HnJ/si53lKQ2JeT79JC+Pesox0fNobU2eD1 > K5Wu5Y96NL5F+Frl3wOE > =9/4N > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Logging Best Practices on RHEL
I'm running Tomcat 7.0.42 on RHEL. Currently all my exceptions are handled with e.printStackTrace() and go to catalina.out, which doesn't rotate. Could someone be so kind as to recommend a better way to handle logging, with specific steps. Daily error logs would be a good start, instead of one giant catalina.out file. Best, Alec
Re: Logging Best Practices on RHEL
Yes, Yuk indeed. So just to clarify, you recommend using log4j, and replacing all my printStackTrace with log4j specific code. Would that be correct? Cheers, Alec On Wed, Nov 27, 2013 at 12:18 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 11/27/13, 11:45 AM, Tomcat Random wrote: > > I'm running Tomcat 7.0.42 on RHEL. Currently all my exceptions are > > handled with e.printStackTrace() and go to catalina.out, which > > doesn't rotate. > > Yuk. > > > Could someone be so kind as to recommend a better way to handle > > logging, with specific steps. > > Yes and no. How to handle logging? Use a logging framework. log4j, > java.logging are popular and there are others. I find java.logging to be > ... frankly frustrating to configure. I would recommend log4j. > > As for API, both Apache commons-logging and slf4j are popular. Note that > you need a "real" logging framework underneath to actually do the > logging. I'm not sure if it's worthwhile adding that extra layer rather > than simply coding directly to the logging framework's API. I have used > log4j directly for years and I'm quite happy. > > The biggest problem is that you are going to have to modify a lot of > your code. Every modification is trivial and easy, but if you are > logging properly, then you probably have a big job ahead of you. Since > you aren't using a logging framework, you probably don't have trace, > debug, etc. logging so that makes things a bit easier... you just have > to grep for "printStackTrace" and replace that with something like > "logger.error("Bad stuff", exception);". > > > Daily error logs would be a good start, instead of one giant > > catalina.out file. > > Any logging framework will be able to roll your files for you. Just read > the docs for how to configure them to behave that way. > > There is a stop-gap measure if you are running on a reliable system: > you can modify catalina.sh (or however you launch Tomcat) to pipe > stdout to a program like chronolog instead of redirecting to a file. > Chronolog was made to take stdin and write to a rolling file. I'm sure > a setup like that is a big fragile, so keep your eyes on it. But it > can get you out of a bind while you re-work your application to log > properly. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSlilNAAoJEBzwKT+lPKRYi54P/2FpcDnAWieUq25COU+V294K > wCNqBBc3cXMyHKF7x7PljUa5muZD/P6MjfnROzuQh9FPbhgpaSIGnShFdmDL5FGj > BFzTItda8gV2iGWaW5J6ttO4S6IlaTsTLnQ0twDpu08dt5gkAWNDQKjP3fgZLySd > GMhuwUm55wCiWNwVeRUbsvBvSj90lgM8ix0SA0s192/p6JUIEqkka9yNVmK5IDiE > siwIM/k4X+g95wfBvT/Kxvh4j9/G+Nl/M/OQ7OIfNpDvJrTMKOya32n8N+OIGh3X > 51vre9VPL0k5SRRupmfKb4iLNpR+5JKvDYmUsGKwWsJztMaEDU0b4ff03iisOv0o > V0wH7++QnvRAa2rXQ2YVVtMR/sm/8PmG5olOr+nopcM8ZYF8j86WqjHW3lE1mddM > k++KW8q+YgTNGn5i7z3LEQ67P3jCB0enrflPa2uqH1A2XhEdmTQR2k72TB4brF5t > uyc5es8ZfMvKer69wlcAlgLYX8Z+HvPikE+KTV2zsaRPU+Aiy02jLp65peXn6NGh > TJyeihZbnjMrN7/mv1HlRcNzU1RY14Vi2+VXS0aHh35lfSE8qqcPSEakw3w/jRRO > VVNMus3VTuU/BehpauRtSsmha6bN7v0mZH1cH8NZLh3Qq0KfD67UreWGqDKpqCLQ > 6rcewerS2IVIU947dJv+ > =lcU5 > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging Best Practices on RHEL
Thanks Dave, I'll take a look at it. Chris, thanks as well. Out of curiosity, do either of you know if/how you'd consolidate logging for things like say clustering. I have clustering configured for two physical servers each running an instance of tomcat. I have logging configured as per the clustering docs, and it works, but I'm not clear on how it would be reported by log4j, instead of JULI. "I find java.logging to be... frankly frustrating to configure." Totally agree, I feel like the Tomcat logging.properties file is weirdly clunky. Cheers, Alec On Wed, Nov 27, 2013 at 3:34 PM, Dale Ogilvie wrote: > We chose slf4j with log4j underneath. > > 1. slf4j has nice optimal syntax: > > Log.debug("The logged in user is {} {}",firstName,lastName); > http://www.slf4j.org/faq.html#logging_performance > > 2. It has bridging apis to route other logging frameworks. If you are > using other libraries which use a different logging framework, you could > capture these logs via a bridge. > http://www.slf4j.org/legacy.html > > Dale > > -Original Message- > From: Tomcat Random [mailto:tomcat.ran...@gmail.com] > Sent: Thursday, 28 November 2013 5:45 a.m. > To: Tomcat Users List > Subject: Logging Best Practices on RHEL > > I'm running Tomcat 7.0.42 on RHEL. Currently all my exceptions are > handled with e.printStackTrace() and go to catalina.out, which doesn't > rotate. > > Could someone be so kind as to recommend a better way to handle logging, > with specific steps. Daily error logs would be a good start, instead of > one giant catalina.out file. > > Best, > Alec > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Pooled Connections Lost After 10 Minutes (600 seconds)
I have two instances of Tomcat 7.0.42, each on their own physical server (RHEL6). There's nothing in front of them, I'm using IPTABLES to route 80 to 8080. They're clustered using the native Tomcat clustering. I'm using the non blocking NIO connector. Everything behaves as expected, except after 600 seconds (10 minutes) all the pooled connections expire. As far as I can tell the default is to not remove/evict pooled connections below 'minIdle' but that's what's happening. The only thing I can find that relates to connection pools and 600 seconds is in JK, but I'm not using that. Any ideas? Both servers have the same configuration The connection pool is configured in context.xml: And in web.xml/ My Database jdbc/my_db javax.sql.DataSource Container TIA, Alec
Re: Pooled Connections Lost After 10 Minutes (600 seconds)
I should add this is with MySQL 5.5.34 On Wed, Nov 27, 2013 at 5:32 PM, Tomcat Random wrote: > I have two instances of Tomcat 7.0.42, each on their own physical server > (RHEL6). There's nothing in front of them, I'm using IPTABLES to route 80 > to 8080. They're clustered using the native Tomcat clustering. I'm using > the non blocking NIO connector. > > Everything behaves as expected, except after 600 seconds (10 minutes) all > the pooled connections expire. As far as I can tell the default is to not > remove/evict pooled connections below 'minIdle' but that's what's > happening. The only thing I can find that relates to connection pools and > 600 seconds is in JK, but I'm not using that. Any ideas? > > > Both servers have the same configuration The connection pool is configured > in context.xml: > >auth="Container" > type="javax.sql.DataSource" > username="tomcat_db_user" > password="x" > driverClassName="com.mysql.jdbc.Driver" > url="jdbc:mysql://192.168.100.51:3306/my_db" > maxActive="200" > maxIdle="100" > maxWait="2" > initialSize="10" > minIdle="10" > /> > > And in web.xml/ > > > > My Database > jdbc/my_db > javax.sql.DataSource > Container > > > TIA, > Alec > > >
Re: Pooled Connections Lost After 10 Minutes (600 seconds)
Neven, thank you. It was right there in my.cnf: 'wait_timeout=600' On Fri, Nov 29, 2013 at 6:08 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Neven, > > On 11/27/13, 6:35 PM, Neven Cvetkovic wrote: > >> > >> On Wed, Nov 27, 2013 at 5:32 PM, Tomcat Random > >> >>> wrote: > >> > >>> Everything behaves as expected, except after 600 seconds (10 > >>> minutes) all the pooled connections expire. As far as I can > >>> tell the default is to not remove/evict pooled connections > >>> below 'minIdle' but that's what's happening. The only thing I > >>> can find that relates to connection pools and 600 seconds is in > >>> JK, but I'm not using that. Any ideas? > >>> > >> > > > > Hey Alec, > > > > Can it be that connections are timed out on the mysql side? > > +1 > > Sounds like it might be a router connection-idle-timeout issue and > maybe not anything to do directly with MySQL. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSmR5pAAoJEBzwKT+lPKRY0oQP/2aEHo+L6l07WUGkL+qZ6FhR > kgxSlIqu75uCNxHdr0ApqEzDVma0IJeLTJYJomiEJ3ZZFFy0FasWPUGIiO1ssB/e > iTr1ttR5rJh8atw7WoAPvVFHvjOA86WZ6/pn5FW9HNGYe5VzsmaUPPfWmdVd+JP2 > 8jmaV0Cx1CfYVoEMKjEfPrQP5+KnNuYj+KgUwBOb7+B1kAbmyvz4Ri0g3l0t/WIl > pE2cD8ZPXT2nYPtNViReLwHOWEAKrM/lLl7bTn6/+foBl8f1AtY95Ck9oBc8f5/c > OavEGV0ESVsLmMJs2j6kGkfaVyaD91INHs+lMZ2DqtQZAEwMi05VBFxJztLF8pBB > 67XDG8EvlKM7vXtIC+qKmVcUbbEd+MAD75Hcydi+TBQipYtxA/Js/uoLmNMP3CSH > 0QuYpRa/ua2imvLZN6x7CP4AoIiAsKGQsV21kLJL77xC15CpjxLL1LcqsMmI2llE > 4P3SSPrwZtRbdGFNn4Ou9X1M0van3N+hGv4VqXfFxsn8Zj1IL56YJohSz8j9KGJ6 > rQhvxTplu4ifAoSvcrCc+78Gw7KgVOcHbWziHWQlGXTKFJUUeV71iwIABv10FZ6t > +xMQSPVS9xGzrlpnSdJExFUHNKq2XYpenI2wPvdHY3rdNTcrAOqw5A3HSOwyGbhd > 78xu0nfsJuFEw+2x0qQk > =VgsO > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging Best Practices on RHEL
Thanks Chris, Are you using log4j 1.x or 2.beta? On Fri, Nov 29, 2013 at 6:06 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 11/27/13, 5:00 PM, Tomcat Random wrote: > > Thanks Dave, I'll take a look at it. > > > > Chris, thanks as well. Out of curiosity, do either of you know > > if/how you'd consolidate logging for things like say clustering. I > > have clustering configured for two physical servers each running an > > instance of tomcat. I have logging configured as per the clustering > > docs, and it works, but I'm not clear on how it would be reported > > by log4j, instead of JULI. > > For my money, I'd use log4j's syslog appender and use syslog to > aggregate everything on a single server. I'd have no idea where to > begin to use JULI for that, but I'm sure that's more because I have a > greater familiarity with log4j. > > > "I find java.logging to be... frankly frustrating to configure." > > Totally agree, I feel like the Tomcat logging.properties file is > > weirdly clunky. > > Yes. That's because out of the box it uses java.util.logging, or > actually an adaptation of it. That choice was probably made to limit > the number of 3rd-party (though log4j is ASF) libraries required to > run Tomcat. Since java.util.logging comes with the JRE... may we wsll > use it. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSmR4GAAoJEBzwKT+lPKRY9JgQAJrQjbnlxLaOexDcDpxNUSZs > GSgnCKmbOjUSgwAiPE5LbqjHGu+HkdC4rKfM+sGy4F466wxKVcZAmCCETIrKwHLd > BaRsNB9pZ8gV/hQH3tf52fI8UEFc48K/obm97t3R+Apjmr58UC0uZc0OFM7ukXk0 > E0M/bLQRJl39uZvwvFUJcoYi5jn5XKsqdYHoI9AbVn5DvmQkvPK2BzFqSd37Sm3T > RGAFiZuUlTPPWA1nTKT+XHyb5YI8fmxo6Jt1dNi5qSaU9xB8ZgKbE+TabZ4fUVaF > 7eRo+mS6CDPe5BHsne9bShFaIhljyQdmu/QNNTfstUDUiFgAF3zAzAbEMmeYYtFs > +pHdMWeExt+MTVlppJtTEEiPYtJDbR+ZE/r6Zligm8+Rx43Mhx59iAEO8+UYguyE > +7IPtLFuSM+hzhjjUvwgSMdgNn2Fm3mg+NOVHL4rQC2MDewv256Hd/wZb7D/5Shp > KEx9epFB78jW+Qq+dQmiW0o8yD0duWU9uENnrweTkFq/alYWtQZy3DbJBYQ1x+wX > c+C6xlX69mu5Xpg0IIoLCcRHny+0B0cyWXgGMQfbAq0gfgF7oWGpSeZmopDD3OMU > JwSU1BmEADH8RGs0zR0TXpw+SmjXYpADp6a9AK1wY3pRt4KS6BMX3ttJpxKhsO9d > bgJvjWLNingPvlaaIlCS > =Y2aT > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Pooled Connections Lost After 10 Minutes (600 seconds)
I considered using a validation query but it seemed like extra overhead when the default behavior was not, um, behaving in the default way. -Alec On Tue, Dec 3, 2013 at 7:24 AM, Daniel Mikusa wrote: > On Dec 2, 2013 10:09 PM, "Neven Cvetkovic" > wrote: > > > > On Dec 2, 2013 12:47 PM, "Tomcat Random" > wrote: > > > > > > Neven, thank you. > > > > > > It was right there in my.cnf: 'wait_timeout=600' > > > > > > > You're welcome :) > > > > I am curious why tomcat didn't renew expired (terminated) idle > connections > > though. > > It wouldn't know that the connections have been disconnected, since they > were disconnected server side. If the user added a validation query then > it could detect and remove the closed connections. > > Dan >
Re: Logging Best Practices on RHEL
Chris, thanks. That's good to know since I just implemented 1.2.17. On Mon, Dec 2, 2013 at 5:27 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 12/2/13, 3:48 PM, Tomcat Random wrote: > > Thanks Chris, Are you using log4j 1.x or 2.beta? > > I've been using 1.x for quite a long time. I haven't looked much into > the new version. I'd be surprised if it's a mind-blowing upgrade. :) > > - -chris > > > On Fri, Nov 29, 2013 at 6:06 PM, Christopher Schultz < > > ch...@christopherschultz.net> wrote: > > > > Alec, > > > > On 11/27/13, 5:00 PM, Tomcat Random wrote: > >>>> Thanks Dave, I'll take a look at it. > >>>> > >>>> Chris, thanks as well. Out of curiosity, do either of you > >>>> know if/how you'd consolidate logging for things like say > >>>> clustering. I have clustering configured for two physical > >>>> servers each running an instance of tomcat. I have logging > >>>> configured as per the clustering docs, and it works, but I'm > >>>> not clear on how it would be reported by log4j, instead of > >>>> JULI. > > > > For my money, I'd use log4j's syslog appender and use syslog to > > aggregate everything on a single server. I'd have no idea where to > > begin to use JULI for that, but I'm sure that's more because I have > > a greater familiarity with log4j. > > > >>>> "I find java.logging to be... frankly frustrating to > >>>> configure." Totally agree, I feel like the Tomcat > >>>> logging.properties file is weirdly clunky. > > > > Yes. That's because out of the box it uses java.util.logging, or > > actually an adaptation of it. That choice was probably made to > > limit the number of 3rd-party (though log4j is ASF) libraries > > required to run Tomcat. Since java.util.logging comes with the > > JRE... may we wsll use it. > > > > -chris > >> > >> - > >> > >> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > >> For additional commands, e-mail: users-h...@tomcat.apache.org > >> > >> > > > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSnQleAAoJEBzwKT+lPKRYm5sP/1kmwvayu1pRI/F247WYv6B3 > bsLJo2jEFiWINxpvkhIAgqPHAwBIwGKoepWdnZFtQVzXxbxy5yCzP0P9eFOCBbUk > KDSrEdHK+eu+Py6BoSntvT7wtpV/7pzzGDDR1v0CzyHjuy0OV60NUv5F2zDsukp/ > ls/9pi0WO5ncns4BShj/eu51IDTyZUQP6k8wamTqRx4HaFWdMGdYbrNTq3jtuP+p > gpwTjO45bE1PGE8BthRzOE4v11cNpJhS6spNaK/Qy61EaTSXfGAtg0ZSQbcx1HK9 > r4lJZ0CQVL2oXWVat0cN9Ipy5q82Zw8PTfXUF66Vrx/1qdsSXdS4ceFwe2DaVLUn > xIOrb0zd8PKXyGIRvlmLuVNX/vioYFF43T5SNlj51rIFhQ7oeu/F+tvqRqztdC8g > snkLWa4vHGNwmbhy6FepP6CXmXCiWgtU0UzP1S6yFsWlVgR+dJJ/4rVtOhwh3/T0 > I7KdPYWwmoJYvULA7GDbtsR9zrN42wdSSFXdhrg5STImA5+O8lky6xO5UEWvvSuw > NWLzhb+cGDkrdvKtyPzGtH4EJayItUlYXMDjG6xwla6LHxi27FD3gV+uJxVlgoVU > yxRMcdG1f2Z087Gl/XNCkhy7TmO4RDIUqL/9wwjOSfD1SvVMa8B9SyY6+qz7f8ag > bOpbUovSflMUfKCfz8KR > =DCTU > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Logging makes a grown man cry
Environment is RHEL6, Tomcat 7.0.42. There is only one webapp. I'm trying to implement log4j as per the instructions here (skipping step 5): http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j Since I'm not using the Manager, I've removed the relevant logging lines from CATALINA_HOME/lib/log4j.properties, so it looks like this: _ log4j.rootLogger=INFO, CATALINA # Define all the appenders log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender log4j.appender.CATALINA.File=${catalina.base}/logs/catalina. log4j.appender.CATALINA.Append=true log4j.appender.CATALINA.Encoding=UTF-8 # Roll-over the log once per day log4j.appender.CATALINA.DatePattern='.'-MM-dd'.log' log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayout log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.LOCALHOST=org.apache.log4j.DailyRollingFileAppender log4j.appender.LOCALHOST.File=${catalina.base}/logs/localhost. log4j.appender.LOCALHOST.Append=true log4j.appender.LOCALHOST.Encoding=UTF-8 log4j.appender.LOCALHOST.DatePattern='.'-MM-dd'.log' log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Encoding=UTF-8 log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n # Configure which loggers log to which appenders log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST _ On restart, my (deleted-beforehand) logs directory looks like this: /logs/catalina. /logs/catalina.2013-12-03.log /logs/catalina.out /logs/cluster.2013-12-03.log /logs/localhost. /logs/localhost_access_log.2013-12-03.txt _ Ok, so this isn't what I want. First there are three "catalina*" files. Each has different aspects of my app and/or server. The "catalina." file has info about NIO, the deltamanager, as well as my application logging code (e.g.,logger.warn("hello world");). "catalina.2013-12-03.log" has a few lines about starting and stopping the server like: "A valid shutdown command was received via the shutdown port. Stopping the Server instance." "catalina.out" has spymemcached logging info (I haven't changed the spymemcached system property yet to log4j so that might be why). "cluster.2013-12-03.log" is behaving normally. "localhost." is empty. And the daily access log is good. So, all I want is to have: 1. one log file that rolls daily (a new file each day), with the date appended, that catches my own logging code in the app, based on a global logging level value that I can change (DEBUG, or INFO, or ERROR etc) as needed. 2. Another log file that rolls daily and consolidates any other output of the server and app (or two separate files) and also has a logging level value that can be changed globally. 3. Get rid of the empty localhost. file. MTIA, Alec
Re: META-INF/context.xml & connection pool
The short answer is jars that are particular to a webapp can go in WEB-INF/lib, however since database access is fairly common, your jdbc jars and db specific driver jars should go above the webapp directory into $TOMCAT_HOME/lib. However, AFAIK some jars need to be in $TOMCAT_HOME/lib due to loading order. The only problem you would encounter is it won't work, so you could test it and see. -Alec On Thu, Nov 28, 2013 at 12:04 PM, Jose María Zaragoza wrote: > Hello: > > I'm using Tomcat 6.0.23 > Yes, I know is an old release > > Anyway, I would like to use tomcat-jdbc connection pool JAR > > So, I 've stored a context.xml into META-INF folder in my WAR, as > > > > factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" > driverClassName="org.postgresql.Driver" > initialSize="0" maxActive="100" maxIdle="20" maxWait="1" mindIdle="0" > name="datasource/ddbb" password="" removeAbandoned="true" > url="jdbc:postgresql://localhost:5433/ddbb?LoginTimeout=3" > username="uu" validationQuery="SELECT 1" testOnBorrow="true" /> > > > > My question is > > should I store JAR ( tomcat-jdbc-x.x.x.jar & tomcat-juli-x.x.x.jar ) > into WEB-INF/lib folder in WAR > or into $TOMCAT_HOME/lb folder ? > > Could there be a problem by store them into the own WAR ( WEB-INF/lib ) ? > > > Thanks and regards > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Pooled Connections Lost After 10 Minutes (600 seconds)
Thanks, that's good to know, especially about the validationInterval setting. The idea of not validating every single time seems more reasonable. -Alec On Tue, Dec 3, 2013 at 12:32 PM, Daniel Mikusa wrote: > On Dec 3, 2013, at 12:14 PM, Tomcat Random > wrote: > > > I considered using a validation query but it seemed like extra overhead > > when the default behavior was not, um, behaving in the default way. > > The overhead is typically minimal. Running "SELECT 1" or some other very > simply query is not likely to bring your database to it's knees. It might > add a small amount of latency as the pool will need to execute the query > before it give the connection to your application, but that's likely to be > dwarfed by whatever your application does with the connection after it gets > it. > > If you are concerned you can do a couple things to make the process even > more lightweight. > > 1.) With MySQL and use "/* ping */ SELECT 1" as the validation query. > This is a special case with the MySQL JDBC driver that uses even less > resources. > > 2.) You can use the tomcat-jdbc connection pool which has a > validationInterval setting. This will ensure that the validation query is > only executed one time during the specified time interval. > > ...or you can go without a validation query, but it's not something I > would recommend and not something I see done very often. The minimal > overhead is usually worth knowing that you get a valid connection from the > pool. > > Dan > > > > > On Tue, Dec 3, 2013 at 7:24 AM, Daniel Mikusa > wrote: > > > >> On Dec 2, 2013 10:09 PM, "Neven Cvetkovic" > >> wrote: > >>> > >>> On Dec 2, 2013 12:47 PM, "Tomcat Random" > >> wrote: > >>>> > >>>> Neven, thank you. > >>>> > >>>> It was right there in my.cnf: 'wait_timeout=600' > >>>> > >>> > >>> You're welcome :) > >>> > >>> I am curious why tomcat didn't renew expired (terminated) idle > >> connections > >>> though. > >> > >> It wouldn't know that the connections have been disconnected, since they > >> were disconnected server side. If the user added a validation query > then > >> it could detect and remove the closed connections. > >> > >> Dan > >> > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging makes a grown man cry
That seems like a good solution. Are you able to avoid having a single giant catalina.out file in $CATALINA_HOME/logs? On Tue, Dec 3, 2013 at 11:01 PM, Dale Ogilvie wrote: > Currently we use tomcat configured as out-of-the-box for logging (no > log4j) and log4j.jar and config in the app war file. > > We found issues with trying to have log4j in catalina/lib. > > That said, it would be nice to use log4j for tomcat, however we found > that the two configurations collided in our slf4j setup. > > Dale > > -----Original Message- > From: Tomcat Random [mailto:tomcat.ran...@gmail.com] > Sent: Wednesday, 4 December 2013 7:12 a.m. > To: Tomcat Users List > Subject: Logging makes a grown man cry > > So, all I want is to have: > > 1. one log file that rolls daily (a new file each day), with the date > appended, that catches my own logging code in the app, based on a global > logging level value that I can change (DEBUG, or INFO, or ERROR etc) as > needed. > > 2. Another log file that rolls daily and consolidates any other output > of the server and app (or two separate files) and also has a logging > level value that can be changed globally. > > 3. Get rid of the empty localhost. file. > > MTIA, > Alec > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging makes a grown man cry
I'd argue that dealing with logging configuration is not newbie stuff. This is probably some of the most poorly implemented technology in the servlet container. On Tue, Dec 3, 2013 at 3:44 PM, Konstantin Kolinko wrote: > 2013/12/3 Tomcat Random : > > Environment is RHEL6, Tomcat 7.0.42. There is only one webapp. > > > > I'm trying to implement log4j as per the instructions here (skipping step > > 5): > > http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j > > > > Since I'm not using the Manager, I've removed the relevant logging lines > > from CATALINA_HOME/lib/log4j.properties, so it looks like this: > > > > _ > > log4j.rootLogger=INFO, CATALINA > > (...) > > > 1., 2. > > Either filter by category names, or bundle its own > classloader-specific Log4J configuration with your own web application > (a WEB-INF/classes/log4j.properties file). > > > Seriously, the Log4J documentation and mailing lists are elsewhere, > http://logging.apache.org/log4j/1.2/mail-lists.html > > I'd be best to ask newbie questions there, even though this mailing > list has a log of knowledgeable people that may occasionally help you. > > > > > 3. Get rid of the empty localhost. file. > > > > The configuration snippet that you provided does not have a "cluster" > appender. Thus it does not matches your list of log files. > > Best regards, > Konstantin Kolinko > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Pooled Connections Lost After 10 Minutes (600 seconds)
"I think without a validationQuery, your pool will effectively dry-up over time." I'm expecting some very high traffic, so it's unlikely if not impossible a connection will timeout on the mysql side with the default settings. All connections are safely returned to the pool (famous last words, I know), so I'm holding off to see if I do see the pool shrinking over time, and if I'm getting "already closed" exceptions. If that's the case the validation query and validationInterval are certainly not a great expense. It's good advice, but I'm just curious if they are absolutely necessary Cheers, Alec On Wed, Dec 4, 2013 at 1:01 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Dan, > > On 12/3/13, 12:32 PM, Daniel Mikusa wrote: > > On Dec 3, 2013, at 12:14 PM, Tomcat Random > > wrote: > > > >> I considered using a validation query but it seemed like extra > >> overhead when the default behavior was not, um, behaving in the > >> default way. > > > > The overhead is typically minimal. Running "SELECT 1" or some > > other very simply query is not likely to bring your database to > > it's knees. It might add a small amount of latency as the pool > > will need to execute the query before it give the connection to > > your application, but that's likely to be dwarfed by whatever your > > application does with the connection after it gets it. > > > > If you are concerned you can do a couple things to make the process > > even more lightweight. > > > > 1.) With MySQL and use "/* ping */ SELECT 1" as the validation > > query. This is a special case with the MySQL JDBC driver that uses > > even less resources. > > +1 > > We use this everywhere. I've never actually benchmarked it, but since > it does not execute a query on the server, it pretty much has to be > faster by any measure. > > > 2.) You can use the tomcat-jdbc connection pool which has a > > validationInterval setting. This will ensure that the validation > > query is only executed one time during the specified time interval. > > > I haven't moved to tomcat-pool yet, but this was my initial reaction > to Alec's question about usually not needing the validation query. > > > ...or you can go without a validation query, but it's not something > > I would recommend and not something I see done very often. The > > minimal overhead is usually worth knowing that you get a valid > > connection from the pool. > > +1 > > If you don't use a validation query, you need additional try/catch > blocks around all your "getConnection()" calls, and a loop to re-try > just in case the first connection was bad. > > I think without a validationQuery, your pool will effectively dry-up > over time. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSn236AAoJEBzwKT+lPKRY85sQAMTss/RPDRep+yUhOxCCdCOF > 8d2ZhzeDwZ/lM0d+XlH9ZJzbBdwQEpRyZf/uzQRQLK/WO/vReXN3RMptSrN+VoLE > TaqWcGva1NPvUOwrMKd1Hm8zKqtcamWTQIHa1MzQ/cN9RChmZbfNwc7CteuTd36C > zvXoj1nRhkixfE4jX2/REDtAh0QKQkCj/Dq1BpOlEzJaGwmL/fbwJreUvPiGNvaO > xQaCr92Z/Srv32oLCBCu3fs8/FN2KvLKB2YKFWB2iHrRvxiIC7tUWUp9OkZvJga2 > ARs7UraFNl/Z+vi8xV2S1cavJD+jeW4ddB5QDr+1yxWRPt0QEE0UzaolATVTUak9 > 9cRb+87xICd5z/XoFABSPqeicyS/1/cxg/JOHrFtcM8EmXZifB4aVLpnjIqHrRC/ > Y3LoCjaIBO78/0i75kC0zeS2opTXMlrvEy/0W/QA8XwGmy7yEvZhbER+TVeHsAcD > 6evobH5bbSbnxXgB4o826/ihxMq3JxfZWuaGvCmgB4D4aI0SbtdNP+/SHwirGZA1 > Lt/iRCFAGFtJTMygVQZzBn+gbO3mMx7vxesIFbmKRDcUWpQ7MVrs5Wq9mfLUFJp8 > YnQS66MM10Nf3O0qNavBN5af4Cq1E+GvcuydchpbDHwd7czkidzLQcGbyIiBpnTq > HR5uraaRm89AZ5zUKShW > =9ync > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Logging makes a grown man cry
Chris, "The examples don't meet your needs exactly? Well, I'm sure we're all terribly sorry about that." Heh...Sorry, I was responding to Konstantin's comment and mine crossed over just before your long and helpful reply. Thanks, as always, Alec On Wed, Dec 4, 2013 at 12:39 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 12/4/13, 11:31 AM, Tomcat Random wrote: > > I'd argue that dealing with logging configuration is not newbie > > stuff. This is probably some of the most poorly implemented > > technology in the servlet container. > > What about the implementation is poor? > > The examples don't meet your needs exactly? Well, I'm sure we're all > terribly sorry about that. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSn2jYAAoJEBzwKT+lPKRYsaIQAJfcFaOJU1r4+fFUywSBkVWC > i8zi+HHJjk+eUpWBXZ2EsNnkNMvFkOGUiUZCbtjCCXfUOPhLSxpizj9XSJT6HKlR > Asto5xPhyouCjnfU+/L5fRdqi2yJeRf7D1nTnLoeVbmBX5BzkG5M6Ni+PG1/r50P > M+ZsfHHajmnLmD6IIysgjzc68RsJDb/cPShpgBi7X0cMY9831tE+cx/Dj6KcyBBo > Wm070JNBEn6+y9L4bHr1WOM9m3Cr9QPdDBIG8X/1M7unAEe5lU+8kfBpKlIuMOZH > FhnrhkziuSOTKssm97Bo1wIEw71ddaEBejEj3sc6fimwMl7osT3RYU5xuR0Evq6/ > pICSgwSX9Cnv84JAeHb96KJCJ8ahGOrZaCAm0lQ4hhwQjD0097kXwx31BQBIRzAt > bgfPFGNGoeXuzNCwfvKUW1N77g+Y6pjW1rFUu8Z725j8XNttFCsxtDSPErRfG5ti > k9XKbS5zUVC4W/E7eQduUMQZ4XLV03+bpXl/Idou7anZjP0cqgbzil48ifTP3Ckt > me3d5ahUlYdJZ6ZW8JrW9+uomfN9egFItDaZm3Ro284nJjl8MVXulwKaPJs7KT1C > p4ox1UrnEo/03vs0qeWBxFwSsjfY3YW6+RCF2j16wCrHX+Im4MzptOztUrozWNCU > 9S5L6y3U2UQ+O/jUBfJn > =f194 > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Expire Sesssion
Crystal, At the risk of stating the obvious, you can also override the default session timeout programmatically using HttpSession's method: setMaxInactiveInterval(int interval) -Alec On Thu, Dec 5, 2013 at 2:27 PM, Crystal Maramba wrote: > > > -Original Message- > From: Christopher Schultz [mailto:ch...@christopherschultz.net] > Sent: Thursday, December 05, 2013 10:36 AM > To: Tomcat Users List > Subject: Re: Expire Sesssion > > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Crystal, > > On 12/5/13, 12:10 PM, Crystal Maramba wrote: > > > > > > -Original Message- From: Igor Cicimov > > [mailto:icici...@gmail.com] Sent: Wednesday, December 04, 2013 6:54 PM > > To: Tomcat Users List Subject: Re: Expire Sesssion > > > > On 05/12/2013 9:47 AM, "Crystal Maramba" > > wrote: > >> > >> Version: Apache Tomcat 7.0.42 Server: 2008r2 Standard > >> > >> How can I change the expired sessions in Tomcat Manager from 30 > >> minutes > > to 480 minutes? > >> > >> I think you can do it through the web.xml file located in > > \tomcat\conf\web.xml and then restart Tomcat. > >> > >> Is there a difference if I change it in the \tomcat\conf location > >> versus > > \tomcat\webapps\[web app name]\web-inf\web.xml location? > >> > > First one will apply to all apps. > > > >> If I change the web.xml file in the \tomcat\conf\web.xml location > >> will it > > override the web app location? > >> > > No. > >> > > Thanks for the response. Is there a way to do this through the Tomcat > > manager without modifying tomcat web.xml config file? > > No. That could be added, but it would not persist across re-deployments or > server restarts without some ... effort. > > - -chris > > Ok, thank you. Any idea on how you would do that? I don't see a save > button anywhere. > > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSoMejAAoJEBzwKT+lPKRYwXQP/2j1yljzh4Ce34M3LAyHh2Fy > zR7nPMB4QrZCXKm2O9kncpd7b5nX86Y1IbRGCfTiihqTeI31yndEYR366FvSIova > nuAevupVPPxhshYb9RiXQD3olI9sPFbef64ELZ933S+u/k9kC9/fc6er4h5DRjdx > 0MwxF3dJIAH5BG0HbcloENLT/2se3OG6j1ut28QisiLTaGmG5E/4b14F1GgMcQUy > DtlwmGcO3YWW0rjGBfBoTQwtuzMCpzoalgt6FiXPbaLXOkum1thrX7nUOGizpWq0 > Ez4+nQwGJDn5jhnQKvedzEblnUc5Hnzv+srp1bXbf3h5f8vB2z+NIiLLFBb17dld > j5M2CQoZwj0T13Re8Q9T6EwLIg87Mi6ROExlORXaZr59dLnFB87izYVAsgOIhs/W > oI+JpkDuNakZCf4Zpcu3qkZFRYG9Ulqy23t1KS40qWYDeDoCHqaK3sk2nWxadVd5 > gc1IWK5al8IIc/gYMYH8JOvE3mb65fFcIVcnGaf7LeWwGehf7FUe27nf1j5mTvOn > VfmmqnWPdj2FptCOx0rXE+CRBQFbcwycADkqWHRZajJ725zHy/P8g2+FeF4cf7Fq > CAZ2bjPujcJBHo7dl73y3fUcVSfoXkwiShZB+SgakZ3f8zHYLPkngI1+HKfq9m3K > j6mK3IzLN8hHNsVwR7ZT > =kpwU > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Expire Sesssion
Chris, True. But changing the web.xml file will still require a restart. It depends on if she wants to change this frequently or permanently. The interval could go in a properties file as well, if setMaxInactiveInterval(...) is used. Also requires a restart by default but there are file listeners. -Alec On Thu, Dec 5, 2013 at 3:55 PM, Christopher Schultz < ch...@christopherschultz.net> wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA256 > > Alec, > > On 12/5/13, 3:29 PM, Tomcat Random wrote: > > Crystal, > > > > At the risk of stating the obvious, you can also override the > > default session timeout programmatically using HttpSession's > > method: > > > > setMaxInactiveInterval(int interval) > > I'm guessing that since Crystal doesn't want to modify web.xml, she's > not going to want to modify the source and re-compile. > > - -chris > -BEGIN PGP SIGNATURE- > Version: GnuPG v1.4.15 (Darwin) > Comment: GPGTools - http://gpgtools.org > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQIcBAEBCAAGBQJSoOhVAAoJEBzwKT+lPKRY20MQAK+yDWwcAMBnIGPHWFUOXoVW > P0LgiWDUvpnDCr2o+LPJLtTBbB3bHD/slkdvCNXXE91iaSUhuEJgulbaxalgSW/f > nxDtoShBvkJywG2zm/3g+kePOQCyyQTON2ywzm/2emVzSLKFXF+J6kACLJgsYsVr > 3BAUdhXWxCsowJO84iG5b4agSdl0TgwQl3Y3WZiPkilWmtqI2i4Ua/oInjrbqlKr > xcDcT1u37YKHDb/9hQUJ7wJq+2ZuRS5hqZsMI40qoinfVzEX297bctFi8Vj5XYAN > 4HZPOHvIdoA7VZVDImRGXyrJBLLkEPwJ0XITI8ddQ5IczDeIN5ARHYGleDI1WmLb > qjG6JBT9u0C9oJZi5LOKesjB4WSj+frt8tli3CZu39z7AI1upmushVRPp8caRN9N > 6cZpGkJxNz8HZzmFYIvkNWDBAHSEIM/fjmH3hZ59OFLzhi6mOtckH0daBGIFcTA9 > a8XkYXFMYWGfXPmQyha8K//NOCSyGCxMo2Uo/ZkWVq1bDp1rs0Gnsf2cNuI5izL3 > hQlLlK0bbysoGamWjnsC5hwU3p43ZPYJkpc12Dzs7jlUkHav14QlQgA6DRE4o7ZY > /4rfTVWvGAR+qG6bF9ynBb856JMdTJmDz8vVPpzE7sy4GREcNrJ7m1tT3TyZ5Bxf > 3XkJ3AOFzelkUQAwL8FH > =UMid > -END PGP SIGNATURE- > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >
Re: Tomcat 6 lib jars
Dan, +1. I can't imagine what kind of headaches are waiting around with all the symbolic links for the JARs. -Alec On Thu, Dec 5, 2013 at 10:03 AM, Daniel Mikusa wrote: > On Dec 5, 2013, at 9:42 AM, "Patel, Rakesh (Java)" < > rakesh.pat...@bskyb.com> wrote: > > > Hi, > > > > I've come across lots of duplicate jars in the tomcat/lib directory on > the servers we have been given by our infrastructure people. > > > > The directory looks like this: > > > > -rw-r--r-- 1 root root 15153 Jul 20 2011 annotations-api-6.0.24.jar > > lrwxrwxrwx 1 root root 26 Oct 29 17:05 annotations-api.jar -> > annotations-api-6.0.24.jar > > -rw-r--r-- 1 root root 1205728 Jul 20 2011 catalina-6.0.24.jar > > -rw-r--r-- 1 root root 54149 Jul 20 2011 catalina-ant-6.0.24.jar > > lrwxrwxrwx 1 root root 23 Oct 29 17:05 catalina-ant.jar -> > catalina-ant-6.0.24.jar > > -rw-r--r-- 1 root root 130751 Jul 20 2011 catalina-ha-6.0.24.jar > > lrwxrwxrwx 1 root root 22 Oct 29 17:05 catalina-ha.jar -> > catalina-ha-6.0.24.jar > > lrwxrwxrwx 1 root root 19 Oct 29 17:05 catalina.jar -> > catalina-6.0.24.jar > > -rw-r--r-- 1 root root 235744 Jul 20 2011 catalina-tribes-6.0.24.jar > > lrwxrwxrwx 1 root root 26 Oct 29 17:05 catalina-tribes.jar -> > catalina-tribes-6.0.24.jar > > lrwxrwxrwx 1 root root 39 Oct 29 17:05 commons-collections.jar -> > /usr/share/java/commons-collections.jar > > lrwxrwxrwx 1 root root 32 Oct 29 17:05 commons-dbcp.jar -> > /usr/share/java/commons-dbcp.jar > > lrwxrwxrwx 1 root root 32 Oct 29 17:05 commons-pool.jar -> > /usr/share/java/commons-pool.jar > > -rw-r--r-- 1 root root 533217 Jul 20 2011 jasper-6.0.24.jar > > -rw-r--r-- 1 root root 108903 Jul 20 2011 jasper-el-6.0.24.jar > > lrwxrwxrwx 1 root root 20 Oct 29 17:05 jasper-el.jar -> > jasper-el-6.0.24.jar > > lrwxrwxrwx 1 root root 17 Oct 29 17:05 jasper.jar -> > jasper-6.0.24.jar > > lrwxrwxrwx 1 root root 23 Oct 29 17:05 jasper-jdt.jar -> > /usr/share/java/ecj.jar > > lrwxrwxrwx 1 root root 25 Oct 29 17:05 log4j.jar -> > /usr/share/java/log4j.jar > > lrwxrwxrwx 1 root root 33 Oct 29 17:05 mx4j-jmx.jar -> > /usr/share/java/mx4j/mx4j-jmx.jar > > lrwxrwxrwx 1 root root 36 Oct 29 17:05 mx4j-remote.jar -> > /usr/share/java/mx4j/mx4j-remote.jar > > -rw-r--r-- 1 root root 832960 Oct 29 17:07 > mysql-connector-java-5.1.22-bin.jar > > lrwxrwxrwx 1 root root 59 Oct 29 17:07 mysql-connector-java.jar -> > /usr/share/java/tomcat6/mysql-connector-java-5.1.22-bin.jar > > -rw-r--r-- 1 root root 26083 Oct 29 17:07 slf4j-api-1.7.2.jar > > lrwxrwxrwx 1 root root 43 Oct 29 17:07 slf4j-api.jar -> > /usr/share/java/tomcat6/slf4j-api-1.7.2.jar > > -rw-r--r-- 1 root root8819 Oct 29 17:07 slf4j-log4j12-1.7.2.jar > > lrwxrwxrwx 1 root root 47 Oct 29 17:07 slf4j-log4j12.jar -> > /usr/share/java/tomcat6/slf4j-log4j12-1.7.2.jar > > lrwxrwxrwx 1 root root 32 Oct 29 17:05 > tomcat6-el-2.1-api-6.0.24.jar -> ../tomcat6-el-2.1-api-6.0.24.jar > > lrwxrwxrwx 1 root root 33 Oct 29 17:05 > tomcat6-jsp-2.1-api-6.0.24.jar -> ../tomcat6-jsp-2.1-api-6.0.24.jar > > lrwxrwxrwx 1 root root 37 Oct 29 17:05 > tomcat6-servlet-2.5-api-6.0.24.jar -> ../tomcat6-servlet-2.5-api-6.0.24.jar > > -rw-r--r-- 1 root root 768357 Jul 20 2011 tomcat-coyote-6.0.24.jar > > lrwxrwxrwx 1 root root 24 Oct 29 17:05 tomcat-coyote.jar -> > tomcat-coyote-6.0.24.jar > > -rw-r--r-- 1 root root 69826 Jul 20 2011 tomcat-i18n-es-6.0.24.jar > > lrwxrwxrwx 1 root root 25 Oct 29 17:05 tomcat-i18n-es.jar -> > tomcat-i18n-es-6.0.24.jar > > -rw-r--r-- 1 root root 51772 Jul 20 2011 tomcat-i18n-fr-6.0.24.jar > > lrwxrwxrwx 1 root root 25 Oct 29 17:05 tomcat-i18n-fr.jar -> > tomcat-i18n-fr-6.0.24.jar > > -rw-r--r-- 1 root root 54441 Jul 20 2011 tomcat-i18n-ja-6.0.24.jar > > lrwxrwxrwx 1 root root 25 Oct 29 17:05 tomcat-i18n-ja.jar -> > tomcat-i18n-ja-6.0.24.jar > > lrwxrwxrwx 1 root root 38 Oct 29 17:05 tomcat-juli.jar -> > /usr/share/tomcat6/bin/tomcat-juli.jar > > > > You'll notice generic jar names sum linked to specific jars AND the > specific jar also in the directory. > > > > Is this harmless? Or should I ask for a 'cleaner' install from the > apache website? I believe this installation comes from the central CentOS6 > repository. > > Minimally, I would ask for an up-to-date version of Tomcat. The libraries > seem to indicate that 6.0.24 is installed and that's pretty old now. As > for the latest 6.0.x release. > > As far as the duplicate JAR files, one situation off the top of my head > where it could cause problems is if the versions are different. For > example, if the JAR file in the lib folder is version X and the symlink > points to version Y. This is problematic because you would have no idea > which version of the JAR is going to be loaded. You'd want one or the > other, either the file or the symlink. > > Personally, and I think many people on the list would agree, I'd s
Re: Expire Sesssion
Crystal, The properties file is just a standard java properties file. Really, it's only a better option if you have other settings and want to consolidate them there, along with your session expiration time. If you can edit the web.xml and restart, and it's permanent, then I'd recommend you just change the web.xml. If you want all your webapps to have an expiration of 480, then change it in $CATALINA_HOME/conf, otherwise do it in each webapps web.xml file as needed. HTH, Alec On Thu, Dec 5, 2013 at 6:25 PM, Crystal Maramba wrote: > > > -Original Message----- > From: Tomcat Random [mailto:tomcat.ran...@gmail.com] > Sent: Thursday, December 05, 2013 3:03 PM > To: Tomcat Users List > Subject: Re: Expire Sesssion > > Chris, > > True. But changing the web.xml file will still require a restart. It > depends on if she wants to change this frequently or permanently. The > interval could go in a properties file as well, if > setMaxInactiveInterval(...) is used. Also requires a restart by default > but there are file listeners. > > -Alec > > > On Thu, Dec 5, 2013 at 3:55 PM, Christopher Schultz < > ch...@christopherschultz.net> wrote: > > > -----BEGIN PGP SIGNED MESSAGE- > > Hash: SHA256 > > > > Alec, > > > > On 12/5/13, 3:29 PM, Tomcat Random wrote: > > > Crystal, > > > > > > At the risk of stating the obvious, you can also override the > > > default session timeout programmatically using HttpSession's > > > method: > > > > > > setMaxInactiveInterval(int interval) > > > > I'm guessing that since Crystal doesn't want to modify web.xml, she's > > not going to want to modify the source and re-compile. > > > > - -chris > > > Hi Alec, > > This is an internal site so restart is ok. I would prefer it to be > permanent. Can you send me an example of what you are referring to for > "properties file"? > > Hi Chris, > > Sorry I misunderstood your comment. Thanks for the clarification. I am > actually looking for other options besides modifying the web.xml config > file. Someone mentioned that we could do it through the Tomcat Manager but > I didn't see how that would be possible, so I was looking at getting other > options or clarification as to how that could be done. > > I don't mind making the modification to the web.xml file at the web app > level and at the tomcat home level. > > Crys > > -BEGIN PGP SIGNATURE- > > Version: GnuPG v1.4.15 (Darwin) > > Comment: GPGTools - http://gpgtools.org > > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > > > iQIcBAEBCAAGBQJSoOhVAAoJEBzwKT+lPKRY20MQAK+yDWwcAMBnIGPHWFUOXoVW > > P0LgiWDUvpnDCr2o+LPJLtTBbB3bHD/slkdvCNXXE91iaSUhuEJgulbaxalgSW/f > > nxDtoShBvkJywG2zm/3g+kePOQCyyQTON2ywzm/2emVzSLKFXF+J6kACLJgsYsVr > > 3BAUdhXWxCsowJO84iG5b4agSdl0TgwQl3Y3WZiPkilWmtqI2i4Ua/oInjrbqlKr > > xcDcT1u37YKHDb/9hQUJ7wJq+2ZuRS5hqZsMI40qoinfVzEX297bctFi8Vj5XYAN > > 4HZPOHvIdoA7VZVDImRGXyrJBLLkEPwJ0XITI8ddQ5IczDeIN5ARHYGleDI1WmLb > > qjG6JBT9u0C9oJZi5LOKesjB4WSj+frt8tli3CZu39z7AI1upmushVRPp8caRN9N > > 6cZpGkJxNz8HZzmFYIvkNWDBAHSEIM/fjmH3hZ59OFLzhi6mOtckH0daBGIFcTA9 > > a8XkYXFMYWGfXPmQyha8K//NOCSyGCxMo2Uo/ZkWVq1bDp1rs0Gnsf2cNuI5izL3 > > hQlLlK0bbysoGamWjnsC5hwU3p43ZPYJkpc12Dzs7jlUkHav14QlQgA6DRE4o7ZY > > /4rfTVWvGAR+qG6bF9ynBb856JMdTJmDz8vVPpzE7sy4GREcNrJ7m1tT3TyZ5Bxf > > 3XkJ3AOFzelkUQAwL8FH > > =UMid > > -END PGP SIGNATURE- > > > > - > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > - > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >