Problem with isapi_redirect for IIS 7.0 - Tomcat 6.0 connection

2009-10-14 Thread Terekhov Artyom (ADV)
Hello,

I have a problem with Windows 2008 server x64 IIS7 to Tomcat 6.0 (*32) ( Java 
(*32)) connection.

Previously we used IIS6 and everything was fine. But now I got errors:

0x80070001 - if I use properties files for isapi_redirect.dll (32 bit version)

or 0x80070002 - if I use registry entry.



Regards,

Artem Terekhov





Артем Терехов

Web-программист | АДВ



+7 (495) 937-5272

aterek...@adventa-main.rumailto:oleg.klinni...@advgroup.ru





АДВ - лидирующая группа маркетинговых коммуникаций в России, Украине, 
Казахстане, Белоруссии, Молдавии, Узбекистане и Азербайджане. В условиях быстро 
меняющихся рынков мы способствуем росту бизнеса наших клиентов за счет 
комплексного подхода к решению задач, целостного видения ситуации и лучших 
интеллектуальных ресурсов в отрасли.



Помогая крупнейшим национальным и международным брендам отвечать на вызовы ХХI 
века, Группа АДВ предлагает полный спектр услуг в сфере маркетинговых 
коммуникаций, а именно: создание и продвижение брендов, управление инвестициями 
клиентов в СМИ, кросскультурную экспертизу, маркетинговые услуги, PR, 
интерактивные и цифровые решения и другие специализированные сервисы, 
позволяющие нашим клиентам эффективно возвращать инвестиции и устойчиво 
повышать спрос.







Windows 2008 Server (x64) IIS7 to Tomcat 6.0 32-bit with Java 32-bit isapi_redirect 1.2.28 connector problem

2009-10-14 Thread Terekhov Artyom (ADV)


Hello,

I have a problem with Windows 2008 server x64 IIS7 to Tomcat 6.0 (*32) ( Java 
(*32)) connection.

Previously we used IIS6 and everything was fine. But now I got errors:

0x80070001 - if I use properties files for isapi_redirect.dll (32 bit version)

or 0x80070002 - if I use registry entry.



Regards,

Artem Terekhov







Fw: i am unable to connect to tomcat 6.0 serevr from a different computer on the network

2009-10-14 Thread Krishna Chaitanya
sir, i am using apache tomcat 6.0. my operating system is windows xp service 
pack 3. i have a problem. 
when i am trying to connect to the server from local system using 
http://localhost:8080/ it is getting connected. but if i am trying to connect 
to the server from different system on the network it is not getting connected. 
please help me with this.
thank you in advance


  Keep up with people you care about with Yahoo! India Mail. Learn how. 
http://in.overview.mail.yahoo.com/connectmore

Fw: i am unable to connect to tomcat 6.0 serevr from a different computer on the network

2009-10-14 Thread Krishna Chaitanya


--- On Wed, 14/10/09, Krishna Chaitanya kittu_...@yahoo.in wrote:

From: Krishna Chaitanya kittu_...@yahoo.in
Subject: Fw: i am unable to connect to tomcat 6.0 serevr from a different 
computer on the network
To: users@tomcat.apache.org
Date: Wednesday, 14 October, 2009, 8:00 AM

sir, i am using apache tomcat 6.0. my operating system is windows xp service 
pack 3. i have a problem. 
when i am trying to connect to the server from local system using 
http://localhost:8080/ it is getting connected. but if i am trying to connect 
to the server from different system on the network it is not getting connected. 
please help me with this.
thank you in advance


      Keep up with people you care about with Yahoo! India Mail. Learn how. 
http://in.overview.mail.yahoo.com/connectmore


  Keep up with people you care about with Yahoo! India Mail. Learn how. 
http://in.overview.mail.yahoo.com/connectmore

Re: Fw: i am unable to connect to tomcat 6.0 serevr from a different computer on the network

2009-10-14 Thread Partha Goswami
u need to use the ip of that server, where tomcat installed..

On Wed, Oct 14, 2009 at 1:33 PM, Krishna Chaitanya kittu_...@yahoo.inwrote:



 --- On Wed, 14/10/09, Krishna Chaitanya kittu_...@yahoo.in wrote:

 From: Krishna Chaitanya kittu_...@yahoo.in
 Subject: Fw: i am unable to connect to tomcat 6.0 serevr from a different
 computer on the network
 To: users@tomcat.apache.org
 Date: Wednesday, 14 October, 2009, 8:00 AM

 sir, i am using apache tomcat 6.0. my operating system is windows xp
 service pack 3. i have a problem.
 when i am trying to connect to the server from local system using
 http://localhost:8080/ it is getting connected. but if i am trying to
 connect to the server from different system on the network it is not getting
 connected. please help me with this.
 thank you in advance


   Keep up with people you care about with Yahoo! India Mail. Learn how.
 http://in.overview.mail.yahoo.com/connectmore


  Keep up with people you care about with Yahoo! India Mail. Learn how.
 http://in.overview.mail.yahoo.com/connectmore




-- 
Regards

Partha Goswami


Tomcat is not getting shutdown

2009-10-14 Thread Suneel Saguturu
Hi,

 

I am facing an issue with Tomcat-5.5.27, the issue is
Tomcat server is not getting shutdown.

 

When I execute the shutdown.sh its not throwing any
error/exception, but the process is still there and the another point is
port  everything is release only the process is not released.

 

Environment:

OS
:   Solaris-10

APR
:   1.3.3

Tomcat Version:
apache-tomcat-5.5.27

 

Any help is appreciate... Thanks in advance...

 

- Suneel.

 



IIS ISAPI_redirector

2009-10-14 Thread Bret Unbehagen
I have a Windows 2003 Server with the ISAPI_Redirector installed. I want to
stop it from passing the client IP to Tomcat. I have found
http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html, where is
states that I can set JK_REMOTE_USER. I have tried setting an environment
variables and placing the variable in the config files. I am guessing that
ISAPI Redirectors don't support this. Can someone confirm this for me? Also
can someone help me block the client IP from Tomcat?

Thank You.
Bret


Re: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread pulak



SpY0o2 wrote:
 
 hello, I've been trying to deploy an application to Tomcat 6.0.18. I would
 like to make it my default ROOT app (without renaming the app to ROOT), so
 that I can access my app by entering 
 
 http://localhost:8080/ instead of http://localhost:8080/myApps 
 
 Thanks.
 
 



The easiest possible thing is to put an element in server.xml file in /conf
directory.
So, put your application inside Host element in server.xml file by using a
Context element. this will be as follows...

.
.
.
Host ..
 Context path= docBase=/testApp  /Context

/Host

this will make your testApp as ROOT application and you can access by
http://localhost:8080.

hope this help...

--pulak



-- 
View this message in context: 
http://www.nabble.com/changing-default-ROOT-webapp-in-Tomcat-6.0.18-tp22133382p25889772.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Grails under Tomcat with security policy

2009-10-14 Thread Ken T.
I've asked this on the grails mailing list with no luck.  Can someone 
tell me the minimum permissions I need to give a grails application to 
run under Tomcat?  I don't want to disable all access checks when using 
reflection, and that seems to be what is recommended most of the time.

Any assistance would be greatly appreciated. 

Thank you,

-- 
Ken T. ktectr...@gmail.com


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Tomcat is not getting shutdown

2009-10-14 Thread Mark Thomas
Suneel Saguturu wrote:
 I am facing an issue with Tomcat-5.5.27, the issue is
 Tomcat server is not getting shutdown.
 
 When I execute the shutdown.sh its not throwing any
 error/exception, but the process is still there and the another point is
 port  everything is release only the process is not released.

Take a thread dump and look for non-daemon threads.

Mark


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: IIS ISAPI_redirector

2009-10-14 Thread Rainer Jung
On 14.10.2009 13:47, Bret Unbehagen wrote:
 I have a Windows 2003 Server with the ISAPI_Redirector installed. I want to
 stop it from passing the client IP to Tomcat. I have found
 http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html, where is
 states that I can set JK_REMOTE_USER. I have tried setting an environment
 variables and placing the variable in the config files. I am guessing that
 ISAPI Redirectors don't support this. Can someone confirm this for me? Also
 can someone help me block the client IP from Tomcat?

Unfortunately the feature only exists for Apache. The ISAPI Redirector
takes the data from the server variables REMOTE_ADDR and REMOTE_HOST.
You can check the IIS docs, whether IIS allows you to overwrite them in
some simple way, but I don't know.

Regards,

Rainer

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: IIS ISAPI_redirector

2009-10-14 Thread Peter Crowther
2009/10/14 Rainer Jung rainer.j...@kippdata.de

 On 14.10.2009 13:47, Bret Unbehagen wrote:
  I have a Windows 2003 Server with the ISAPI_Redirector installed. I want
 to
  stop it from passing the client IP to Tomcat. I have found
  http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html, where
 is
  states that I can set JK_REMOTE_USER. I have tried setting an environment
  variables and placing the variable in the config files. I am guessing
 that
  ISAPI Redirectors don't support this. Can someone confirm this for me?
 Also
  can someone help me block the client IP from Tomcat?

 Unfortunately the feature only exists for Apache. The ISAPI Redirector
 takes the data from the server variables REMOTE_ADDR and REMOTE_HOST.
 You can check the IIS docs, whether IIS allows you to overwrite them in
 some simple way, but I don't know.


Or you could go the long way round and compile your own version of the
redirector - this may not be the easiest way round the problem, however!

- Peter


Re: Connection between ListenerStart and clustering

2009-10-14 Thread Bocalinda
Hi Rainer,

I'm sorry for the long delay in getting back to you.
I got sidetracked by another issue and wasn't able to look into this
earlier.

However, the bad news is that the administrators didn't allow me to apply
the patch as it is a production server.
I can apply it to pre-production, but the error isn't reproducable there...

2nd however; It's been 12 days since we've seen the listenerStart error due
to the classDefNotFound (in production).
I need to check with the developers whether they accidentily made any
changes that might have solved this problem.
It might as well be that we have been lucky and that the error starts
appearing again tomorrow.

I will try to reproduce the problem in another server, in order to try out
the patch you supplied.

Thanks again.


2009/10/3 Bocalinda bocali...@gmail.com

 Wow, that's what is called a quick turn around! :)
 Thanks. I'll try as soon as possible and let you know.

 2009/10/3 Rainer Jung rainer.j...@kippdata.de

 On 03.10.2009 18:11, Bocalinda wrote:
  Hi Rainer.
 
  wild guess
  I remember problems with clustering which were of the following kind:
  session replication data was received on a node although the context
  wasn't yet fully initialized.
 
  Maybe we run into classloader troubles in that case?
 
  This could only happen if another node in the cluster is running all
 the
  time between stop and restart of the node, which logs the exception.
 
  This could certainly be the case as I have 4 nodos in cluster. I
  stop/restart one by one, in order to ensure the availability of the
 webapp.
 
 
  How easy can your reproduce the problem? In case I provide a patch,
  could you test, whether the problem goes away?
  /wild guess
 
 
  Taking into account that this is a production server, it won't be easy
 to
  play with it, but I can propose to take 2 nodes out of the cluster to do
  testing with.

 You can find a patched catalina-ha.jar and in case you are interested
 also the respective source code file at


 http://people.apache.org/~rjung/patches/tc6-cluster-context-startup-order.ziphttp://people.apache.org/%7Erjung/patches/tc6-cluster-context-startup-order.zip

 I did a one to one port from TC 5.5 to TC 6.0. So please test carefully
 and let us know the results, so we can include the patch into the
 standard code in case it proves it helps.

 Regards,

 Rainer

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org





Tomcat 5.5.26 hangs

2009-10-14 Thread conrad-tomcat . users . 2009
Hi,

our customer is running a cluster of tomcat servlet engines. On these,
our web application is running. The basic setup is

Loadbalancer --- Apache 1.3.x with mod_jk --- Tomcat

with 2-3 Apache servers and 30 Tomcat instances bundled into clusters
of 3-5 instances each. Apache + Tomcat servers are running on recent
SUN multi-core machines under Solaris. The basic setup hasn't changed
much over the past few years, except occasional updates to soft- and
hardware, and the number of Tomcat instances has been increasing steadily.

Currently, they're using Tomcat-5.5.26 on SUN's jdk 1.5.0_10 (64 bit)
and mod_jk 1.2.28. Over the years, we have seen the same situation since
before Tomcat-5.5.12.

Most of the time, things work nicely. Occasionally, though, the whole
system comes to a complete halt. A post-mortem thread dump shows all (!)
worker threads on all instances waiting for input from the Apache servers,
e. g.:

TP-Processor2432 daemon prio=10 tid=0x00b2f258 nid=0x9f1 runnable [0x7cfbf000.
.0x7cfbfa70]
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
- locked 0x95947c70 (a java.io.BufferedInputStream)
at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:626)
at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:564)
at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:691)
at 
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)

Due to the large number of machines involved and the high number of client
requests, it is impossible to see how such a situation evolves. We have
ruled out lengthy garbage collection pauses (CMS collector is enabled).
There is no obviously relevant information in the logfiles.

Usually, the situation can be resolved by restarting Apache and/or
(some) Tomcat servers, which makes DOS attacks unlikely, IMO.

Has anyone seen this situation before? Any ideas what could be the
problem, and how to resolve it? Any idea how to gain more information?

Thanks,
Peter
-- 
Peter Conrad
Tivano Software GmbH
Bahnhofstr. 18
63263 Neu-Isenburg
Tel: 06102 / 8099070
Fax: 06102 / 8099071
HRB 11680, AG Offenbach/Main
Geschäftsführer: Martin Apel

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



How to install Tomcat 5.5.28 32-bit version on Windows 64-bit version?

2009-10-14 Thread Vadim Volkov
The Tomcat 5.5.28 Installer (.exe) for Windows detect and install the
64-bit version of Tomcat if 64-bit version of Windows is installed.
How to install Tomcat 5.5.28 32-bit version on Windows 64-bit version?
(Windows Server 2003 R2 Standard x64 Edition).

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Can Tomcat be configured to fail to start if a webapp fails to start?

2009-10-14 Thread Chris Wiggins
Hello,

 

I'd like to configure Tomcat 5.5 to fail to start if any of its webapps
fail to start. Is that possible? I can't find any configuration element
in the documentation that suggestions that this can be done.

 

Tomcat is just a small part of our system, and our start up sequence
automatically aborts if any component fails to start. However, Tomcat
generally always succeeds, even if one or more of the webapps it is
running fails. You then only discover something is wrong when you hit a
particular webpage.

 

Thanks,

 

Chris.



Tomcat Startup Error on IBM AIX 5.3 after Cluster enable in server.xml

2009-10-14 Thread Imad Hachem
Dear all,

 

I am getting the below error during Tomcat-5.5.12 Startup on IBM AIX
5.3 after enabling the Cluster configuration in server.xml :

 

Oct 14, 2009 2:31:58 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
start

INFO: Cluster is about to start

Oct 14, 2009 2:31:58 PM
org.apache.catalina.cluster.tcp.ReplicationTransmitter start

INFO: Start ClusterSender at cluster
Catalina:type=Cluster,host=localhost with name
Catalina:type=ClusterSender,host=localhost

Oct 14, 2009 2:31:59 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
start

SEVERE: Unable to start cluster.

java.net.SocketException: The socket name is not available on this
system.

at java.net.PlainDatagramSocketImpl.join(Native Method)

at
java.net.PlainDatagramSocketImpl.join(PlainDatagramSocketImpl.java:280)

at
java.net.MulticastSocket.joinGroup(MulticastSocket.java:299)

at
org.apache.catalina.cluster.mcast.McastServiceImpl.start(McastServiceImp
l.java:174)

at
org.apache.catalina.cluster.mcast.McastService.start(McastService.java:3
13)

at
org.apache.catalina.cluster.mcast.McastService.start(McastService.java:2
60)

at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.start(SimpleTcpCluster.
java:765)

at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1002)

at
org.apache.catalina.core.StandardHost.start(StandardHost.java:718)

at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)

at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)

at
org.apache.catalina.core.StandardService.start(StandardService.java:450)

at
org.apache.catalina.core.StandardServer.start(StandardServer.java:680)

at
org.apache.catalina.startup.Catalina.start(Catalina.java:536)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.jav
a:79)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessor
Impl.java:43)

at java.lang.reflect.Method.invoke(Method.java:618)

at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:275)

at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Oct 14, 2009 2:31:59 PM org.apache.catalina.startup.Catalina start

SEVERE: Catalina.start: 

LifecycleException:  java.net.SocketException: The socket name is not
available on this system.

at
org.apache.catalina.cluster.tcp.SimpleTcpCluster.start(SimpleTcpCluster.
java:781)

at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1002)

at
org.apache.catalina.core.StandardHost.start(StandardHost.java:718) 

 

 

 

 

Any help please.

 

 

 

Imad Hachem | Asst.Product Development Manager

e-Banking Department

Path Solutions

Tel: +961 1 697444 ext. 222

Fax: +961 1 696744

www.path-solutions.com http://www.path-solutions.com 




Disclaimer
[The information contained in this e-mail message and any attached files
are confidential information and intended solely for the use of the
individual or entity to whom they are addressed. This transmission may
contain information that is privileged, confidential or exempt from
disclosure under applicable law. If you have received this e-mail in
error, please notify the sender immediately and delete all copies. If
you are not the intended recipient, any disclosure, copying,
distribution, or use of the information contained herein is STRICTLY
PROHIBITED. Path Solutions accepts no responsibility for any errors,
omissions, computer viruses and other defects.]

 

 

 



Re: Tomcat 6.0.20 always works in GMT timezone even after forcing it to use Asia/Calcutta by multiple methods.

2009-10-14 Thread raghu gs
Tomcat is not running under a security manager.
So that policy entry may need to be exists, i understood now.

I have tried stopping our web applications via tomcat-manager and restarted
important web applications alone.
But still timezone didn't reset to system timezone.

Wouldn't stopping offending web applications enough for the timezone to use
system configuration?

Is it possible to restrict just timezone over-riding permission from web
application instead of first listing what are all permissions that should be
granted for a web application?



On Mon, Oct 12, 2009 at 8:32 PM, George Sexton geor...@mhsoftware.comwrote:



  -Original Message-
  From: raghu gs [mailto:iamra...@gmail.com]
  Sent: Monday, October 12, 2009 5:18 AM
  To: Tomcat Users List
  Subject: Re: Tomcat 6.0.20 always works in GMT timezone even after
  forcing it to use Asia/Calcutta by multiple methods.
 
  java.util.PropertyPermission user.timezone, write; line not there
  in
  catalina.policy file.
  Should this line not need to be present for granting the pernission?


 The reference to catalina.policy only applies if you are running under a
 security manager. Are you running under a security manager?

  What is the code for restricting the timezone overide permission in
  catalina.policy file?
  Moreover it was misundstanding between our developers,
  Nobody said that kernel tomcat mismatch might be the cause of the
  problem.
  TZData is also up-to-date.
 
  Regards
 

 George Sexton
 MH Software, Inc.
 http://www.mhsoftware.com/
 Voice: 303 438 9585


 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org




Re: Tomcat 6.0.20 always works in GMT timezone even after forcing it to use Asia/Calcutta by multiple methods.

2009-10-14 Thread Timothy J Schumacher
I'm not sure if it will help with your particular version of java/linux 
but I had a similar problem with my java/linux and found that in my case 
the file /etc/sysconfig/clock was one of the places the JVM looked for a 
timezone.  Setting environment variables and options had no effect, the 
thing that worked for me was changing the clock file.  Check 
/etc/sysconfig/clock and see what it says, if there is a timezone set in 
there try removing it.  It took me quite a while to figure this out, 
going to the extreme of writing a play java program and running it with 
strace and then I saw that it opened the clock file... 


Good luck,
-Tim

raghu gs wrote:

Tomcat is not running under a security manager.
So that policy entry may need to be exists, i understood now.

I have tried stopping our web applications via tomcat-manager and restarted
important web applications alone.
But still timezone didn't reset to system timezone.

Wouldn't stopping offending web applications enough for the timezone to use
system configuration?

Is it possible to restrict just timezone over-riding permission from web
application instead of first listing what are all permissions that should be
granted for a web application?



On Mon, Oct 12, 2009 at 8:32 PM, George Sexton geor...@mhsoftware.comwrote:

  


-Original Message-
From: raghu gs [mailto:iamra...@gmail.com]
Sent: Monday, October 12, 2009 5:18 AM
To: Tomcat Users List
Subject: Re: Tomcat 6.0.20 always works in GMT timezone even after
forcing it to use Asia/Calcutta by multiple methods.

java.util.PropertyPermission user.timezone, write; line not there
in
catalina.policy file.
Should this line not need to be present for granting the pernission?
  

The reference to catalina.policy only applies if you are running under a
security manager. Are you running under a security manager?



What is the code for restricting the timezone overide permission in
catalina.policy file?
Moreover it was misundstanding between our developers,
Nobody said that kernel tomcat mismatch might be the cause of the
problem.
TZData is also up-to-date.

Regards

  

George Sexton
MH Software, Inc.
http://www.mhsoftware.com/
Voice: 303 438 9585


-
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: Tomcat 5.5.26 hangs

2009-10-14 Thread Mark Thomas
conrad-tomcat.users.2...@tivano.de wrote:
 Hi,
 
 our customer is running a cluster of tomcat servlet engines. On these,
 our web application is running. The basic setup is
 
 Loadbalancer --- Apache 1.3.x with mod_jk --- Tomcat
 
 with 2-3 Apache servers and 30 Tomcat instances bundled into clusters
 of 3-5 instances each. Apache + Tomcat servers are running on recent
 SUN multi-core machines under Solaris. The basic setup hasn't changed
 much over the past few years, except occasional updates to soft- and
 hardware, and the number of Tomcat instances has been increasing steadily.
 
 Currently, they're using Tomcat-5.5.26 on SUN's jdk 1.5.0_10 (64 bit)
 and mod_jk 1.2.28. Over the years, we have seen the same situation since
 before Tomcat-5.5.12.
 
 Most of the time, things work nicely. Occasionally, though, the whole
 system comes to a complete halt. A post-mortem thread dump shows all (!)
 worker threads on all instances waiting for input from the Apache servers,
 e. g.:
 
 TP-Processor2432 daemon prio=10 tid=0x00b2f258 nid=0x9f1 runnable 
 [0x7cfbf000.
 .0x7cfbfa70]
 at java.net.SocketInputStream.socketRead0(Native Method)
 at java.net.SocketInputStream.read(SocketInputStream.java:129)
 at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
 at java.io.BufferedInputStream.read1(BufferedInputStream.java:256)
 at java.io.BufferedInputStream.read(BufferedInputStream.java:313)
 - locked 0x95947c70 (a java.io.BufferedInputStream)
 at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:626)
 at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:564)
 at 
 org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:691)
 at 
 org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
 at 
 org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
 at java.lang.Thread.run(Thread.java:595)
 
 Due to the large number of machines involved and the high number of client
 requests, it is impossible to see how such a situation evolves. We have
 ruled out lengthy garbage collection pauses (CMS collector is enabled).
 There is no obviously relevant information in the logfiles.
 
 Usually, the situation can be resolved by restarting Apache and/or
 (some) Tomcat servers, which makes DOS attacks unlikely, IMO.
 
 Has anyone seen this situation before? Any ideas what could be the
 problem, and how to resolve it?

Have you tried
JkOptions +DisableReuse


 Any idea how to gain more information?

Jk debug logs
wireshark
compare httpd and Tomcat access logs

Mark


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Manlio Malaidini
Hi all,

I've come across a problem that I haven't found a clear solution yet
(despite some extensive time spent on google  books). If you persist
sessions for example with FileStore, everything is fine  dandy except
for when you start putting custom objects in the session: when I do
so, I get a ClassNotFoundException when tomcat tries to deserialize
the session.

I think that this happens because the Shared class loader doesn't know
about the classes in your webapp and in fact I've managed to make it
work by deploying my classes under $CATALINA_BASE/shared/lib.

This is not an option in one of my webapps though. Is there any way to
solve this under Tomcat 5.5 or Tomcat 6 by configuration? What I mean
is: is there any way to force the usage of a specific webapp
classloader when dealing with persisted sessions?

Thanks in advance,
MM

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Tomcat 6.0.20 always works in GMT timezone even after forcing it to use Asia/Calcutta by multiple methods.

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Raghu,

On 10/14/2009 11:44 AM, raghu gs wrote:
 Tomcat is not running under a security manager.
 So that policy entry may need to be exists, i understood now.

Yes.

 I have tried stopping our web applications via tomcat-manager and restarted
 important web applications alone.
 But still timezone didn't reset to system timezone.

It never will: Tomcat does not change the time zone. If an application
does, it changes until another piece of code changes it.

If you want to find out which webapp is doing this you'll need to:

1. Shut down Tomcat
2. Move all webapps out of any auto-deployment directories (like
   CATALINA_BASE/webapps, for instance)
3. Move all deployment files out of CATALINA_BASE/conf/[service]/[host]
   (to avoid any webapps being deployed at all)
4. Verify that your JVM is now running with the correct TimeZone
   (you may want to deploy a simple index.jsp in webapps/ROOT to verify
   this)
5. One at a time, deploy the webapps you want to run on Tomcat:
 5a. Repeat step 4. If step 4 shows the wrong TimeZone, you've found
 your problematic webapp.

There is another option: run Tomcat under a SecurityManager with the
rights to set user.timezone revoked, and then see which webapp throws an
appropriate exception.

This is basic debugging, man.

 Wouldn't stopping offending web applications enough for the timezone to use
 system configuration?

No.

 Is it possible to restrict just timezone over-riding permission from web
 application instead of first listing what are all permissions that should be
 granted for a web application?

No.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWAQsACgkQ9CaO5/Lv0PDsWwCdHfEkGInUTJq3D/HLf2E75mcH
zKwAnjLqCoyd/tVrbon/jJrpLWRpMN7i
=6q3z
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Manlio,

On 10/14/2009 12:30 PM, Manlio Malaidini wrote:
 I've come across a problem that I haven't found a clear solution yet
 (despite some extensive time spent on google  books). If you persist
 sessions for example with FileStore, everything is fine  dandy except
 for when you start putting custom objects in the session: when I do
 so, I get a ClassNotFoundException when tomcat tries to deserialize
 the session.

Is this happening in production,or only in development?

I ask because each Class has a serialVersionId which essentially
versions the Class. If you recompile the Class after making changes to
any method signature, member, or even the order of these items, the
version id changes and de-serialization fails.

This often happens when you are working on the FooBean class, which has
ab object stored in the session. You redeploy your webapp after
deploying your new code, and Tomcat fails to re-load the session data
because there is a Class mismatch between the data being loaded from the
session and the Class available to the JVM.

Could this be your problem?

 I think that this happens because the Shared class loader doesn't know
 about the classes in your webapp and in fact I've managed to make it
 work by deploying my classes under $CATALINA_BASE/shared/lib.

I have persistent sessions working just fine in Tomcat 5.5.26 with
custom objects defined only in WEB-INF/classes.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWAgwACgkQ9CaO5/Lv0PBeugCfWi9lPn+n8SHgALK/e8rfIHMp
DQkAn2pY1+0goRvYB4M1WucS/VI8Kv4W
=3FJZ
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: Tomcat Startup Error on IBM AIX 5.3 after Cluster enable in server.xml

2009-10-14 Thread Caldarale, Charles R
 From: Imad Hachem [mailto:ihac...@lb.path-solutions.com]
 Subject: Tomcat Startup Error on IBM AIX 5.3 after Cluster enable in
 server.xml
 
 I am getting the below error during Tomcat-5.5.12 Startup on IBM AIX
 5.3 after enabling the Cluster configuration in server.xml :

You might want to try with a version of Tomcat that's a bit newer than your 
four-year-old one.

Is multicasting enabled on your platform?  (I have no idea how that's done on 
AIX.)

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Tomcat 5.5.26 hangs

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Peter,

On 10/14/2009 10:48 AM, conrad-tomcat.users.2...@tivano.de wrote:
 Currently, they're using Tomcat-5.5.26 on SUN's jdk 1.5.0_10 (64 bit)
 and mod_jk 1.2.28. Over the years, we have seen the same situation since
 before Tomcat-5.5.12.
 
 Most of the time, things work nicely. Occasionally, though, the whole
 system comes to a complete halt. A post-mortem thread dump shows all (!)
 worker threads on all instances waiting for input from the Apache servers,
 e. g.:
 
 TP-Processor2432 daemon prio=10 tid=0x00b2f258 nid=0x9f1 runnable 
 [0x7cfbf000.
 .0x7cfbfa70]
 at java.net.SocketInputStream.socketRead0(Native Method)

Although those threads say runnable, they're really blocked at the OS
level waiting to receive data from the mod_jk connector. These threads
are actually idle, waiting for requests from httpd to come through the pipe.

You can probably confirm this by checking with 'top' to see that Tomcat
isn't using any CPU time, because it's just waiting.

 Usually, the situation can be resolved by restarting Apache and/or
 (some) Tomcat servers, which makes DOS attacks unlikely, IMO.

If restarting Apache httpd solves the problem, this may be an httpd problem.

Is it feasible to remove httpd from the equation? Tomcat 5.5 can easily
compete with httpd for static file delivery if that's all your using it for.

If you could post your httpd configuration for your worker/prefork stuff
AND your mod_jk configuration, it might be helpful.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWAy4ACgkQ9CaO5/Lv0PA/RwCgq/EWFWUKJYWpU8Zz6d/u9K51
ZeMAnjvC9WAqvH6SyziVKllPCaFmcHF0
=wTyU
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Manlio Malaidini
On Wed, Oct 14, 2009 at 12:53 PM, Christopher Schultz
ch...@christopherschultz.net wrote:
 Is this happening in production,or only in development?

Development. A couple of words about my environment:
*) Mac OS/X 10.6.1
*) JDK 1.6.0_15
*) Tomcat 5.5.27

 I ask because each Class has a serialVersionId which essentially
 versions the Class. If you recompile the Class after making changes to
 any method signature, member, or even the order of these items, the
 version id changes and de-serialization fails.

 This often happens when you are working on the FooBean class, which has
 ab object stored in the session. You redeploy your webapp after
 deploying your new code, and Tomcat fails to re-load the session data
 because there is a Class mismatch between the data being loaded from the
 session and the Class available to the JVM.

 Could this be your problem?

I don't think so, because I don't redeploy anything before receiving
this exception:

SEVERE: Session: 6D026DD0479F48B331D28EE8325095BB;
java.lang.ClassNotFoundException: com.whatever.spikes.session.CustomClass
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:319)
at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:604)
at 
org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:78)
at 
java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at 
java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at 
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1407)
at 
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:931)
at org.apache.catalina.session.FileStore.load(FileStore.java:296)
at 
org.apache.catalina.session.StoreBase.processExpires(StoreBase.java:194)
at 
org.apache.catalina.session.PersistentManagerBase.processExpires(PersistentManagerBase.java:553)
at 
org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:664)
at 
org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1285)
at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)
at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1579)
at 
org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1559)
at java.lang.Thread.run(Thread.java:637)

 I have persistent sessions working just fine in Tomcat 5.5.26 with
 custom objects defined only in WEB-INF/classes.

Are you saying that you're using FileStore or PersistentStore with a
configuration like the following ones and it just works?

Context path=/Spikes reloadable=true
docBase=/Users/mman/Workspaces/Spikes
workDir=/Users/mman/Workspaces/Spikes/work 
Manager
className=org.apache.catalina.session.PersistentManager
maxIdleBackup=0 
Store
className=org.apache.catalina.session.FileStore
directory=/Users/mman/tmp/tomcat-sessions/
  /Manager
/Context

If so, then I'm wondering what am I doing wrong...

Thanks
MM

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: Can Tomcat be configured to fail to start if a webapp fails to start?

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Chris,

On 10/14/2009 11:11 AM, Chris Wiggins wrote:
 I'd like to configure Tomcat 5.5 to fail to start if any of its webapps
 fail to start. Is that possible? I can't find any configuration element
 in the documentation that suggestions that this can be done.

I don't believe Tomcat itself has any feature to do this, but you could
probably modify Tomcatg fairly trivially to do this.

To find out what Tomcat is doing on start-up (where, I believe, a single
thread is responsible for deploying /all/ webapps, one-at-a-time, in
arbitrary order), just add a ServletContextListener to your webapp and
implement this method:

public void contextInitialized(ServletContextEvent e)
{
   new Throwable( CONTEXT STARTING =).printStackTrace();
}

This will emit a stack trace to stdout, which usually ends up in
logs/catalina.out. You'll see the full stack trace, from the Bootstrap
class all the way through your own code. You should be able to use that
to find an appropriate place in the Tomcat code to shutdown the JVM if
one of the webapps fails to load.

 Tomcat is just a small part of our system, and our start up sequence
 automatically aborts if any component fails to start. However, Tomcat
 generally always succeeds, even if one or more of the webapps it is
 running fails. You then only discover something is wrong when you hit a
 particular webpage.

Even if you implement the above strategy, you might still not get what
you want: how are you starting Tomcat? bin/catalina.sh puts Tomcat into
the background when it starts, so you won't be able to get any status
information from the process itself.

What is your plan for checking to see if Tomcat exited at all, with or
without an error code?

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWEpMACgkQ9CaO5/Lv0PDwKQCeOIkl+CU/QxQcMPhwj3r+iuYy
e78AoKYnwbRQ1qfT6njX9AczbcGbrQDI
=d0nd
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Manlio,

On 10/14/2009 1:59 PM, Manlio Malaidini wrote:
 On Wed, Oct 14, 2009 at 12:53 PM, Christopher Schultz
 ch...@christopherschultz.net wrote:
 Is this happening in production,or only in development?
 
 Development.

 Could [serialVersionId] be your problem?
 
 I don't think so, because I don't redeploy anything before receiving
 this exception:
 
 SEVERE: Session: 6D026DD0479F48B331D28EE8325095BB;
 java.lang.ClassNotFoundException: com.whatever.spikes.session.CustomClass

[snip]

   at org.apache.catalina.session.FileStore.load(FileStore.java:296)
   at 
 org.apache.catalina.session.StoreBase.processExpires(StoreBase.java:194)
   at 
 org.apache.catalina.session.PersistentManagerBase.processExpires(PersistentManagerBase.java:553)
   at 
 org.apache.catalina.session.ManagerBase.backgroundProcess(ManagerBase.java:664)
   at 
 org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1285)
   at 
 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1570)

[snip]

 I have persistent sessions working just fine in Tomcat 5.5.26 with
 custom objects defined only in WEB-INF/classes.
 
 Are you saying that you're using FileStore or PersistentStore with a
 configuration like the following ones and it just works?

Oh, it looks like you are using explicit session persistence for
/in-use/ sessions. I apologize for confusing the issue: I am using
Tomcat's simple session-persistence-during-restart capabilities, which
may or may not use the same code.


 Context path=/Spikes reloadable=true
 docBase=/Users/mman/Workspaces/Spikes
 workDir=/Users/mman/Workspaces/Spikes/work 
 Manager
 className=org.apache.catalina.session.PersistentManager
 maxIdleBackup=0 
 Store
 className=org.apache.catalina.session.FileStore
 directory=/Users/mman/tmp/tomcat-sessions/
   /Manager
 /Context

This configuration looks fine to me, though I don't have any experience
with active-session persistence.

Does this just happen randomly, without any code updates or anything
like that?

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWFNYACgkQ9CaO5/Lv0PBRggCfZ5VFjTtq20YJ/sZT6Ra1QSdV
e2QAniUa/qHFuNA+kLju6WvQso+AUrTe
=gpKj
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Pulak,

On 10/14/2009 8:03 AM, pulak wrote:
 
 
 
 SpY0o2 wrote:

 hello, I've been trying to deploy an application to Tomcat 6.0.18. I would
 like to make it my default ROOT app (without renaming the app to ROOT), so
 that I can access my app by entering 

 http://localhost:8080/ instead of http://localhost:8080/myApps 

 Thanks.


 
 The easiest possible thing is to put an element in server.xml file in /conf
 directory.

It would be better to move the webapp's META-INF/context.xml file into
conf/[service]/[hostname]/ROOT.xml. That way, you don't have to modify
server.xml for any reason.

Just remember to put your WAR file /outside/ of any of Tomcat's
auto-deploy webapps directories (such as 'webapps' by default) or your
webapp will be deployed twice.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWFXkACgkQ9CaO5/Lv0PD7mgCfel/jyhKUBnv/gXK1nK94HKVg
SMEAoIbK6LWIXfHwf4rz70ROVdAUWi/a
=AgLA
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



DBCP woes (running out of cursors).

2009-10-14 Thread Bill Davidson

Redhat 5.2 Server
Java: Sun JDK 1.6.0_16 (64-bit)
Tomcat 6.0.20 (and whichever version of DBCP that includes)
Oracle 10g  (10.2.0.3)
JDBC: ojdbc14.jar

I've been trying to convert an old J2EE application to use DBCP connection
pools from an old custom connection pool class (not a DataSource interface).

The old pool worked acceptably, and DBCP seemed to work fine in
development, but then I got it into a test environment and had a bunch
of people beating on it and I started running out of cursors.  Looking
through the old code, it turns out that the old pool manager, when
freeing a Connection, had kept track of when it created that Connection
and if it was more than 120 seconds old, it closed it and made a new one.
As a result, a given Connection wouldn't hit the cursor limit because it
wouldn't get reused for more than 2 minutes.

So, I think: We must have code that's not closing ResultSet/Statement
objects so I go off looking for them.  With a little research, I come up
with queries like this:

SELECT a.sid,
  b.status,
  b.osuser,
  b.machine,
  to_char(b.logon_time, 'dd-mon- hh24:mi:ss') logon_time,
  a.user_name,
  a.sql_id,
  a.sql_text
 FROM v$session b,
  v$open_cursor a
WHERE a.sid = b.sid
  AND a.user_name = 'APPUSERNAME'
ORDER BY upper(a.sql_text),
b.status;

SELECT count(a.sql_text) count,
  a.sql_text
 FROM v$session b,
  v$open_cursor a
WHERE a.sid = b.sid
  AND a.user_name = 'APPUSERNAME'
  AND b.status = 'INACTIVE'
GROUP BY a.sql_text
ORDER BY count desc,
upper(a.sql_text);

I run these against production (which is still using the old pools) and
I find all sorts of queries lying around on inactive sessions, which
I'm guessing are Connections that were closed.  I then start tracking
the SQL down and every single one has an iron clad close() call in
a finally clause.  There is absolutely no way the close() is not being
called on the Statement objects.  Many of them even explicitly close()
the ResultSet objects even though that should be handled by closing
the Statement objects.  These close() calls are happening immediately
after the data is gathered from the ResultSet's.

I then went looking in active sessions in the test environment and it's
the same thing.  I can't find any lingering cursors for SQL that doesn't
have a Statement.close() call that's guaranteed to run.  I've got lots
of open cursors.  I can't explain why.

The config I'm using for DBCP (other than connection info):
 maxActive=245
 maxIdle=16
 validationQuery=SELECT 1 FROM dual
 poolPreparedStatements=true
 accessToUnderlyingConnectionAllowed=true

Since I've eliminated the possibility that close() is not being called
on Statement/ResultSet's, I'm wondering a number of things:

1.Could this be a bug in the Oracle JDBC driver?

2. Should I change parameters for DBCP?

- Should I get rid of poolPreparedStatements?  Note: That noticeably 
hurts performance.

- Should I use timeBetweenEvictionRunsMillis - What's an eviction run?
- Should I reduce maxIdle?

3.  Is there a newer version of DBCP than the one that comes with
   Tomcat that might mitigate this problem and is it a good idea to
   drop that into Tomcat?

Any useful advice would be appreciated.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Manlio Malaidini
On Wed, Oct 14, 2009 at 2:13 PM, Christopher Schultz
ch...@christopherschultz.net wrote:
 Oh, it looks like you are using explicit session persistence for
 /in-use/ sessions.

Indeed.

 I apologize for confusing the issue: I am using
 Tomcat's simple session-persistence-during-restart capabilities, which
 may or may not use the same code.

Oh, don't worry, no need to apologize. Yes, I believe that it's
different Tomcat's code.

 This configuration looks fine to me, though I don't have any experience
 with active-session persistence.

 Does this just happen randomly, without any code updates or anything
 like that?

It happens every time: I just interact with the application, wait up
to 1 minute and bang, got the exception.

MM

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: IIS ISAPI_redirector

2009-10-14 Thread Rainer Jung
On 14.10.2009 15:31, Peter Crowther wrote:
 2009/10/14 Rainer Jung rainer.j...@kippdata.de
 
 On 14.10.2009 13:47, Bret Unbehagen wrote:
 I have a Windows 2003 Server with the ISAPI_Redirector installed. I want
 to
 stop it from passing the client IP to Tomcat. I have found
 http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html, where
 is
 states that I can set JK_REMOTE_USER. I have tried setting an environment
 variables and placing the variable in the config files. I am guessing
 that
 ISAPI Redirectors don't support this. Can someone confirm this for me?
 Also
 can someone help me block the client IP from Tomcat?

 Unfortunately the feature only exists for Apache. The ISAPI Redirector
 takes the data from the server variables REMOTE_ADDR and REMOTE_HOST.
 You can check the IIS docs, whether IIS allows you to overwrite them in
 some simple way, but I don't know.

 
 Or you could go the long way round and compile your own version of the
 redirector - this may not be the easiest way round the problem, however!

Excellent point. One way of scratching your itch ;)

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Tony Anecito
Hi,

I have been watching this thread since I am interested in how to do this. I 
have a small web site using just html  images  css so I do not use a WAR for 
deployment just replace/add/delete the files. So would modifying the server.xml 
be the recommended method?

Thanks,
-Tony

--- On Wed, 10/14/09, Christopher Schultz ch...@christopherschultz.net wrote:

 From: Christopher Schultz ch...@christopherschultz.net
 Subject: Re: changing default ROOT webapp in Tomcat 6.0.18
 To: Tomcat Users List users@tomcat.apache.org
 Date: Wednesday, October 14, 2009, 12:16 PM
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Pulak,
 
 On 10/14/2009 8:03 AM, pulak wrote:
  
  
  
  SpY0o2 wrote:
 
  hello, I've been trying to deploy an application
 to Tomcat 6.0.18. I would
  like to make it my default ROOT app (without
 renaming the app to ROOT), so
  that I can access my app by entering 
 
  http://localhost:8080/ instead of http://localhost:8080/myApps 
 
  Thanks.
 
 
  
  The easiest possible thing is to put an element in
 server.xml file in /conf
  directory.
 
 It would be better to move the webapp's
 META-INF/context.xml file into
 conf/[service]/[hostname]/ROOT.xml. That way, you don't
 have to modify
 server.xml for any reason.
 
 Just remember to put your WAR file /outside/ of any of
 Tomcat's
 auto-deploy webapps directories (such as 'webapps' by
 default) or your
 webapp will be deployed twice.
 
 - -chris
 -BEGIN PGP SIGNATURE-
 Version: GnuPG v1.4.9 (MingW32)
 Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
 
 iEYEARECAAYFAkrWFXkACgkQ9CaO5/Lv0PD7mgCfel/jyhKUBnv/gXK1nK94HKVg
 SMEAoIbK6LWIXfHwf4rz70ROVdAUWi/a
 =AgLA
 -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: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Caldarale, Charles R
 From: Tony Anecito [mailto:adanec...@yahoo.com]
 Subject: Re: changing default ROOT webapp in Tomcat 6.0.18

 So would modifying the server.xml be the recommended method?

Modifying server.xml is NEVER the recommended method.  The best way is to 
simply name the directory ROOT, and you're done.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: IIS ISAPI_redirector

2009-10-14 Thread Bret Unbehagen
I that thought about that, however my knowledge of C is a bit rusty. However
I did I could use a IIS proxy like http://code.google.com/p/iisproxy/.

Thanks for the help.
Bret

On Wed, Oct 14, 2009 at 2:30 PM, Rainer Jung rainer.j...@kippdata.dewrote:

 On 14.10.2009 15:31, Peter Crowther wrote:
  2009/10/14 Rainer Jung rainer.j...@kippdata.de
 
  On 14.10.2009 13:47, Bret Unbehagen wrote:
  I have a Windows 2003 Server with the ISAPI_Redirector installed. I
 want
  to
  stop it from passing the client IP to Tomcat. I have found
  http://tomcat.apache.org/connectors-doc/generic_howto/proxy.html,
 where
  is
  states that I can set JK_REMOTE_USER. I have tried setting an
 environment
  variables and placing the variable in the config files. I am guessing
  that
  ISAPI Redirectors don't support this. Can someone confirm this for me?
  Also
  can someone help me block the client IP from Tomcat?
 
  Unfortunately the feature only exists for Apache. The ISAPI Redirector
  takes the data from the server variables REMOTE_ADDR and REMOTE_HOST.
  You can check the IIS docs, whether IIS allows you to overwrite them in
  some simple way, but I don't know.
 
 
  Or you could go the long way round and compile your own version of the
  redirector - this may not be the easiest way round the problem, however!

 Excellent point. One way of scratching your itch ;)

 -
 To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
 For additional commands, e-mail: users-h...@tomcat.apache.org




RE: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Tony Anecito
So if I create a directory named ROOT on say a network drive (or even a logical 
drive on the same server as Tomcat) Tomcat will find it without any 
modification to any config files?

-Tony

--- On Wed, 10/14/09, Caldarale, Charles R chuck.caldar...@unisys.com wrote:

 From: Caldarale, Charles R chuck.caldar...@unisys.com
 Subject: RE: changing default ROOT webapp in Tomcat 6.0.18
 To: Tomcat Users List users@tomcat.apache.org
 Date: Wednesday, October 14, 2009, 12:45 PM
  From: Tony Anecito [mailto:adanec...@yahoo.com]
  Subject: Re: changing default ROOT webapp in Tomcat
 6.0.18
 
  So would modifying the server.xml be the recommended
 method?
 
 Modifying server.xml is NEVER the recommended method. 
 The best way is to simply name the directory ROOT, and
 you're done.
 
  - Chuck
 
 
 THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR
 OTHERWISE PROPRIETARY MATERIAL and is thus for use only by
 the intended recipient. If you received this in error,
 please contact the sender and delete the e-mail and its
 attachments from all computers.
 
 
 -
 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: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Caldarale, Charles R
 From: Tony Anecito [mailto:adanec...@yahoo.com]
 Subject: RE: changing default ROOT webapp in Tomcat 6.0.18
 
 So if I create a directory named ROOT on say a network drive (or even a
 logical drive on the same server as Tomcat) Tomcat will find it without
 any modification to any config files?

Can't put it in just any arbitrary location; it must be under the Host 
appBase directory.  If you want your webapp in a completely arbitrary place, 
you should use the conf/Catalina/[host]/ROOT.xml approach, with that file 
containing a Context element with a docBase attribute pointing to the 
arbitrary location.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY 
MATERIAL and is thus for use only by the intended recipient. If you received 
this in error, please contact the sender and delete the e-mail and its 
attachments from all computers.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DBCP woes (running out of cursors).

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Bill,

On 10/14/2009 2:17 PM, Bill Davidson wrote:
 Redhat 5.2 Server

Wow.

 I've been trying to convert an old J2EE application to use DBCP connection
 pools from an old custom connection pool class (not a DataSource
 interface).

I've moved a couple of things around, here. Sorry if it's disorienting.

  maxActive=245
  maxIdle=16
  validationQuery=SELECT 1 FROM dual
  poolPreparedStatements=true
  accessToUnderlyingConnectionAllowed=true

This config looks fine, though the maxIdle might be a little low. IIRC,
setting-up Oracle connections is a time-consuming operation. If you
really need 245 connections, perhaps you might want to increase the idle
count to improve the performance of your webapp when demand suddenly
hits a mostly-idle server.

 The old pool worked acceptably, and DBCP seemed to work fine in
 development, but then I got it into a test environment and had a bunch
 of people beating on it and I started running out of cursors.  Looking
 through the old code, it turns out that the old pool manager, when
 freeing a Connection, had kept track of when it created that Connection
 and if it was more than 120 seconds old, it closed it and made a new one.

Similar capability is found in DBCP in the form of the removeAbandoned
and logAbandoned configuration parameters. See the configuration for
DBCP on this page:
http://commons.apache.org/dbcp/configuration.html

/Important note:/ the removeAbandoned configuration parameter will
merely remove the discarded connection from the pool. It will /not/
close the connection after that timeout, so it won't solve your problem:
it will only help you find the problems in your webapp.

 As a result, a given Connection wouldn't hit the cursor limit because it
 wouldn't get reused for more than 2 minutes.
 
 So, I think: We must have code that's not closing ResultSet/Statement
 objects so I go off looking for them.

I wrote this a while back, which may be worth reading:
http://blog.christopherschultz.net/?p=68

 With a little research, I come up with queries like this:
 
 SELECT a.sid,
   b.status,
   b.osuser,
   b.machine,
   to_char(b.logon_time, 'dd-mon- hh24:mi:ss') logon_time,
   a.user_name,
   a.sql_id,
   a.sql_text
  FROM v$session b,
   v$open_cursor a
 WHERE a.sid = b.sid
   AND a.user_name = 'APPUSERNAME'
 ORDER BY upper(a.sql_text),
 b.status;
 
 SELECT count(a.sql_text) count,
   a.sql_text
  FROM v$session b,
   v$open_cursor a
 WHERE a.sid = b.sid
   AND a.user_name = 'APPUSERNAME'
   AND b.status = 'INACTIVE'
 GROUP BY a.sql_text
 ORDER BY count desc,
 upper(a.sql_text);
 
 I run these against production (which is still using the old pools) and
 I find all sorts of queries lying around on inactive sessions, which
 I'm guessing are Connections that were closed.

I don't know a thing about Oracle-specific queries, but what does:

   v$open_cursor a

mean? Does this explicitly open a new cursor, or use an existing one
called a?

 I then start tracking
 the SQL down and every single one has an iron clad close() call in
 a finally clause.  There is absolutely no way the close() is not being
 called on the Statement objects.  Many of them even explicitly close()
 the ResultSet objects even though that should be handled by closing
 the Statement objects.

Technically speaking, the JDBC specification requires that calling
Connection.close() also close any Statement (and therefore ResultSet)
objects that were opened as well. The lines become blurred a bit when
you're talking about pooled connections, because Connection.close()
doesn't really get called... it's a grey area in the spec if you ask me,
but I'd prefer that a pooled connection act like a non-pooled connection
in this case, but there's no recycle or reset method in the
java.sql.Connection class, and calling Connection.close() on the actual
connection is not appropriate (since it's pooled) so there may be no way
to actually implement this mimicry.

 These close() calls are happening immediately
 after the data is gathered from the ResultSet's.

Can you post an example of your finally blocks? If each xyz.close()
isn't in a try/catch block of its own, it could potentially fail to
return the Connection to the pool. In this case, logAbandoned will help
you a lot. I recommend enabling that setting even in production,
especially because that's where it's easiest to exercise your webapp's
DB access code.

 I then went looking in active sessions in the test environment and it's
 the same thing.  I can't find any lingering cursors for SQL that doesn't
 have a Statement.close() call that's guaranteed to run.  I've got lots
 of open cursors.  I can't explain why.

Hmm.

 Since I've eliminated the possibility that close() is not being called
 on Statement/ResultSet's, I'm wondering a number of things:
 
 1. Could this be a bug in the Oracle 

Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Manlio,

On 10/14/2009 2:30 PM, Manlio Malaidini wrote:
 On Wed, Oct 14, 2009 at 2:13 PM, Christopher Schultz
 ch...@christopherschultz.net wrote:
 Oh, it looks like you are using explicit session persistence for
 /in-use/ sessions.
 
 Indeed.
 
 I apologize for confusing the issue: I am using
 Tomcat's simple session-persistence-during-restart capabilities, which
 may or may not use the same code.
 
 Oh, don't worry, no need to apologize. Yes, I believe that it's
 different Tomcat's code.
 
 This configuration looks fine to me, though I don't have any experience
 with active-session persistence.

 Does this just happen randomly, without any code updates or anything
 like that?
 
 It happens every time: I just interact with the application, wait up
 to 1 minute and bang, got the exception.

Hmm... would you be willing to hack Tomcat's code a bit? If you modify
the method that is trying to load the objects from the FileStore, you
can probably ask it what the thread's context ClassLoader is... it
should be the same as your webapp's ClassLoader, and it should be being
used to load those classes.

You might want to file a bugzilla entry for this, or look to see if one
exists like this and perhaps has a solution.

I can't imagine that Tomcat has a bug and you're the only one to find
out about it, but someone's got to be the first one to report a problem
that exists, right?

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWH+QACgkQ9CaO5/Lv0PDaxACfQfoHlgFKJEEXoXqy4Pt9OMNX
NeMAn3n8RrU/EFqX0oc8wvxSjeRpJRWh
=MbUw
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: How to install Tomcat 5.5.28 32-bit version on Windows 64-bit version?

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Vadim,

On 10/14/2009 11:04 AM, Vadim Volkov wrote:
 The Tomcat 5.5.28 Installer (.exe) for Windows detect and install the
 64-bit version of Tomcat if 64-bit version of Windows is installed.

Tomcat itself is neither 32-bit nor 64-bit. The only components that are
32- or 64-bit are the JVM and the service loader, and they must be
matched to each other.

Are you using 64-bit JVM? If so, then you must use the 64-bit service
loader.

Are you using 32-bit JVM? If so, then you must use the 32-bit service
loader.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWIKsACgkQ9CaO5/Lv0PCZAACeO4KNh2Y3Fx4oRKStY8IbsXL1
RdYAoLu71EOOwV2S0/bLvkMdwKj3OyZc
=jfgL
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: changing default ROOT webapp in Tomcat 6.0.18

2009-10-14 Thread Tony Anecito
Perfect. I was just specifying another location because some users/companies 
may have a standard for site files location that does not match out of the box 
settings for Tomcat.

Best Regards,
-Tony

--- On Wed, 10/14/09, Caldarale, Charles R chuck.caldar...@unisys.com wrote:

 From: Caldarale, Charles R chuck.caldar...@unisys.com
 Subject: RE: changing default ROOT webapp in Tomcat 6.0.18
 To: Tomcat Users List users@tomcat.apache.org
 Date: Wednesday, October 14, 2009, 12:57 PM
  From: Tony Anecito [mailto:adanec...@yahoo.com]
  Subject: RE: changing default ROOT webapp in Tomcat
 6.0.18
  
  So if I create a directory named ROOT on say a network
 drive (or even a
  logical drive on the same server as Tomcat) Tomcat
 will find it without
  any modification to any config files?
 
 Can't put it in just any arbitrary location; it must be
 under the Host appBase directory.  If you want
 your webapp in a completely arbitrary place, you should use
 the conf/Catalina/[host]/ROOT.xml approach, with that file
 containing a Context element with a docBase
 attribute pointing to the arbitrary location.
 
  - Chuck
 
 
 THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR
 OTHERWISE PROPRIETARY MATERIAL and is thus for use only by
 the intended recipient. If you received this in error,
 please contact the sender and delete the e-mail and its
 attachments from all computers.
 
 
 -
 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: DBCP woes (running out of cursors).

2009-10-14 Thread Bill Davidson

Christopher Schultz wrote:
On 10/14/2009 2:17 PM, Bill Davidson wrote:
Redhat 5.2 Server
Wow.

Maybe I should have said RHEL 5.2.  5.3 would be the current
version, so it's actually not that old.  RedHat's starting over with
the numbers does get confusing.

This config looks fine, though the maxIdle might be a little low. IIRC,
setting-up Oracle connections is a time-consuming operation. If you
really need 245 connections, perhaps you might want to increase the idle
count to improve the performance of your webapp when demand suddenly
hits a mostly-idle server.

Usually, we don't need that many, but sometimes, we get hit really hard
with a lot of traffic and do need that many.  BTW, this is load balanced
across 4 servers that can each do 245 connections.

Similar capability is found in DBCP in the form of the removeAbandoned
and logAbandoned configuration parameters. See the configuration for
DBCP on this page:
http://commons.apache.org/dbcp/configuration.html

/Important note:/ the removeAbandoned configuration parameter will
merely remove the discarded connection from the pool. It will /not/
close the connection after that timeout, so it won't solve your problem:
it will only help you find the problems in your webapp.

I thought that was for Connection leaks.  If we had Connection leaks,
then the old pools wouldn't work properly either, because the old pools
only kill connections when the servlets free the Connection (the same
as close() on a DBCP connection).  The Connection's are being sent
back to the pool, but apparently with open cursors lingering.

I don't know a thing about Oracle-specific queries, but what does:

  v$open_cursor a

mean? Does this explicitly open a new cursor, or use an existing one
called a?

v$cursor is a view in the Oracle data dictionary that shows currently
open cursors in the current Oracle instance.  The sql_text column shows
the first 40-50 characters or so of SQL being executed for that cursor.
It shows them for both active and inactive sessions.  I'm only guessing
that the inactive sessions are from Connection's that are closed without
having all of their ResultSet's closed.  That might be incorrect.
Finding concrete information is difficult.

Technically speaking, the JDBC specification requires that calling
Connection.close() also close any Statement (and therefore ResultSet)
objects that were opened as well. The lines become blurred a bit when
you're talking about pooled connections, because Connection.close()
doesn't really get called... it's a grey area in the spec if you ask me,
but I'd prefer that a pooled connection act like a non-pooled connection
in this case, but there's no recycle or reset method in the
java.sql.Connection class, and calling Connection.close() on the actual
connection is not appropriate (since it's pooled) so there may be no way
to actually implement this mimicry.

Maybe, but as I said, I've tracked down the SQL for all of the open
cursors that don't seem to go away and they all have guaranteed close
calls on the Statement's, and many also have them on the ResultSet's.
A lot of the SQL is not that funky either.  A lot of it is as simple
as grabbing a single record SELECT * FROM some_table WHERE id = ?
or a few records like SELECT * FROM some_table WHERE some_col = ?.

Can you post an example of your finally blocks? If each xyz.close()
isn't in a try/catch block of its own, it could potentially fail to
return the Connection to the pool. In this case, logAbandoned will help
you a lot. I recommend enabling that setting even in production,
especially because that's where it's easiest to exercise your webapp's
DB access code.

Basic pattern:

   public Vector someFinder( Connection conn, long param )
   {
   PreparedStatement statement = null;
   ResultSet rs = null;
   Vector result = new Vector();

   try{
   statement = conn.prepareStatement(SomeSQLString);
   statement.setLong(1, param);
   rs = statement.executeQuery();
   while ( rs.next() ){
   // findResult does the ORM in our app.
   result.add(findResult(rs));
   }
   }catch ( Exception e ){
   // logging, plus possible wrap-and-re-throw
   }finally{
   // sometimes the ResultSet is explicitly closed,
   // other times not.  It shouldn't matter.
   if ( rs != null ){
   try{
   rs.close();
   }catch ( SQLException ex ){
   // log it.
   }
   }
   // Statement's are always explicitly closed.
   if ( statement != null ){
   try{
   statement.close();
   }catch ( SQLException ex ){
   // log it.
   }
   }
   }
   return result;
   }

- Should I use timeBetweenEvictionRunsMillis - What's an eviction run?

It's what happens every so often to flush-out all the connections that
have been (for 

Re: ClassNotFoundException when deserializing persisted sessions

2009-10-14 Thread Manlio Malaidini
On Wed, Oct 14, 2009 at 3:00 PM, Christopher Schultz
ch...@christopherschultz.net wrote:
 Hmm... would you be willing to hack Tomcat's code a bit?

I would, but I'd rather not: we don't control every environment where
we deploy our software, hence it may be impossible to deploy a patched
version of Tomcat.

 If you modify
 the method that is trying to load the objects from the FileStore, you
 can probably ask it what the thread's context ClassLoader is... it
 should be the same as your webapp's ClassLoader, and it should be being
 used to load those classes.

 You might want to file a bugzilla entry for this, or look to see if one
 exists like this and perhaps has a solution.

I'll check bugzilla and eventually file a bug, thanks.


 I can't imagine that Tomcat has a bug and you're the only one to find
 out about it, but someone's got to be the first one to report a problem
 that exists, right?

True. :)

OTOH, a colleague has an idea about using a lazy deserializer that
should be immune to this problem.

Thanks,
MM

-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



Re: DBCP woes (running out of cursors).

2009-10-14 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Bill,

On 10/14/2009 5:05 PM, Bill Davidson wrote:
 Usually, we don't need that many [connections], but sometimes, we get hit 
 really hard
 with a lot of traffic and do need that many.  BTW, this is load balanced
 across 4 servers that can each do 245 connections.

Is it possible that your server just doesn't want to allocate 245 * 4
cursors, and that you are just hitting that barrier? I don't believe the
JDBC driver cares at all how many cursors are allocated, so it's
unlikely to be a client-side exception being thrown (or, if you prefer,
it's a server-side error being represented by a client-side exception).

 I thought [logAbandoned and removeAbandoned] was for Connection leaks.

They are. I just thought it would be a good idea to enable these, just
in case there was a case where leaks were occurring.

 If we had Connection leaks, then the old pools wouldn't work properly
 either, because the old pools only kill connections when the servlets
 free the Connection (the same as close() on a DBCP connection).
 The Connection's are being sent back to the pool, but apparently with
 open cursors lingering.

I though you said that after a connection was checked-out for 120
seconds, it was forcibly closed by the connection pool.

I don't know a thing about Oracle-specific queries, but what does:

  v$open_cursor a

mean? Does this explicitly open a new cursor, or use an existing one
called a?
 
 v$cursor is a view in the Oracle data dictionary that shows currently
 open cursors in the current Oracle instance.  The sql_text column shows
 the first 40-50 characters or so of SQL being executed for that cursor.
 It shows them for both active and inactive sessions.  I'm only guessing
 that the inactive sessions are from Connection's that are closed without
 having all of their ResultSet's closed.  That might be incorrect.
 Finding concrete information is difficult.

Oh, so this query is intended to find out what is happening on the
server side, so you can see what cursors are open and what their queries
are. I thought you meant that a query such as this was being executed
from your webapp.

 Maybe, but as I said, I've tracked down the SQL for all of the open
 cursors that don't seem to go away and they all have guaranteed close
 calls on the Statement's, and many also have them on the ResultSet's.
 A lot of the SQL is not that funky either.  A lot of it is as simple
 as grabbing a single record SELECT * FROM some_table WHERE id = ?
 or a few records like SELECT * FROM some_table WHERE some_col = ?.

Do some of those methods have multiple queries being executed? If so,
it's possible that one statement remains open while the second one is
closed. For example:

PreparedStatement ps = null;
PreparedStatement ps2 = null;

try {
  ps  = conn.prepareStatement(...);
  ps2 = conn.prepareStatement(...);

  ...
}
finally
{
  ps.close();
}

}finally{
if ( rs != null ){
try{
rs.close();
}catch ( SQLException ex ){
// log it.
}
}

This is perfect. I noticed that I don't see a conn.close in there (which
is probably appropriate, given that the Connection object is a parameter
to the method). I assume you have similar finally blocks in calling
methods, right?

- Should I use timeBetweenEvictionRunsMillis - What's an eviction run?

It's what happens every so often to flush-out all the connections that
have been (for instance) idle too long, etc.
 
 That might help.  The stuff I'm finding more recently is implying
 to me that connections are never closed if I don't enable eviction
 runs.

The eviction run will only to remove connections from the pool: it won't
fix any resource allocation problems. Your webapp and server ought to be
able to tolerate all connections being open and active at once (so, a
full 245 connections in each webapp instance, and 980 connections on the
server).

The only thing the eviction will really help with is reducing the memory
being used on both the client and server. I suppose that calling a
true close() on the connection might clean-up any sloppiness going on
in the client OR the server, and thus might solve your problem, but I
believe it will be merely hiding the symptom, not actually solving the
underlying problem.

Do you have access to an Oracle DBA? They may be able to help uncover
the implications of some of the queries being run... it's possible that
cursors are being allocated that you didn't expect, or that aren't being
closed for /other/ reasons.

Good luck,
- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrWeVsACgkQ9CaO5/Lv0PClbgCgnYUGJ/Uzh/UvTDeT8NpdzD/p
94sAoKjGV9j3GA01nbZZaBGIdFaC6nlA
=9VFy
-END PGP SIGNATURE-

-
To unsubscribe, e-mail: 

RE: DBCP woes (running out of cursors).

2009-10-14 Thread Martin Gainty

Connection
 StatementHandle(this is where the READONLY/UPDATABLE/FORWARD/REVERSE cursor is 
defined)
  ResultSet
  close ResultSet
 CloseStatementHandle
CloseConnection

closing ResultSet closes the ResultSet only but has no effect  on Statement 
Handle
closing StatementHandle closes ResultSet and StatementHandle
closing Connection closes all \

are you running as a Transaction?
Begin_Transaction
 Select into Buffer
 UPDATE/DELETE/Insert with dynamic variables
 COMMIT will flush to disk and close all handles
 Rollback will restore Transaction state to before Begin_Transaction state
END

if you display the queries here and we can help you show how to properly 
structure the statements you're using 
Martin Gainty 
__ 
Jogi és Bizalmassági kinyilatkoztatás/Verzicht und 
Vertraulichkeitanmerkung/Note de déni et de confidentialité
 Ez az
üzenet bizalmas.  Ha nem ön az akinek szánva volt, akkor kérjük, hogy
jelentse azt nekünk vissza. Semmiféle továbbítása vagy másolatának
készítése nem megengedett.  Ez az üzenet csak ismeret cserét szolgál és
semmiféle jogi alkalmazhatósága sincs.  Mivel az electronikus üzenetek
könnyen megváltoztathatóak, ezért minket semmi felelöség nem terhelhet
ezen üzenet tartalma miatt.

Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger 
sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung 
oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem 
Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. 
Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung 
fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le 
destinataire prévu, nous te demandons avec bonté que pour satisfaire informez 
l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est 
interdite. Ce message sert à l'information seulement et n'aura pas n'importe 
quel effet légalement obligatoire. Étant donné que les email peuvent facilement 
être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité 
pour le contenu fourni.




 Date: Wed, 14 Oct 2009 21:22:35 -0400
 From: ch...@christopherschultz.net
 To: users@tomcat.apache.org
 CC: u...@commons.apache.org
 Subject: Re: DBCP woes (running out of cursors).
 
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1
 
 Bill,
 
 On 10/14/2009 5:05 PM, Bill Davidson wrote:
  Usually, we don't need that many [connections], but sometimes, we get hit 
  really hard
  with a lot of traffic and do need that many.  BTW, this is load balanced
  across 4 servers that can each do 245 connections.
 
 Is it possible that your server just doesn't want to allocate 245 * 4
 cursors, and that you are just hitting that barrier? I don't believe the
 JDBC driver cares at all how many cursors are allocated, so it's
 unlikely to be a client-side exception being thrown (or, if you prefer,
 it's a server-side error being represented by a client-side exception).
 
  I thought [logAbandoned and removeAbandoned] was for Connection leaks.
 
 They are. I just thought it would be a good idea to enable these, just
 in case there was a case where leaks were occurring.
 
  If we had Connection leaks, then the old pools wouldn't work properly
  either, because the old pools only kill connections when the servlets
  free the Connection (the same as close() on a DBCP connection).
  The Connection's are being sent back to the pool, but apparently with
  open cursors lingering.
 
 I though you said that after a connection was checked-out for 120
 seconds, it was forcibly closed by the connection pool.
 
 I don't know a thing about Oracle-specific queries, but what does:
 
   v$open_cursor a
 
 mean? Does this explicitly open a new cursor, or use an existing one
 called a?
  
  v$cursor is a view in the Oracle data dictionary that shows currently
  open cursors in the current Oracle instance.  The sql_text column shows
  the first 40-50 characters or so of SQL being executed for that cursor.
  It shows them for both active and inactive sessions.  I'm only guessing
  that the inactive sessions are from Connection's that are closed without
  having all of their ResultSet's closed.  That might be incorrect.
  Finding concrete information is difficult.
 
 Oh, so this query is intended to find out what is happening on the
 server side, so you can see what cursors are open and what their queries
 are. I thought you meant that a query such as this was being executed
 from your webapp.
 
  Maybe, but as I said, I've tracked down the SQL for all of the open
  cursors that don't seem to go away and they all have guaranteed close
  calls on the Statement's, and many also have them on the ResultSet's.
  A lot of the SQL is not that funky either.  A lot of it is as simple
  as grabbing a single record SELECT * FROM some_table WHERE id = ?
  or a few records like SELECT * FROM 

JkMount for status working not getting triggered

2009-10-14 Thread Neil Aggarwal
Hello:

I am trying to enable the status page for mod_jk.

I set my workers.properties file to:

worker.list=tomcat,jkstatus
worker.tomcat.type=ajp13
worker.tomcat.host=localhost
worker.tomcat.port=8009
worker.tomcat.lbfactor=1
worker.tomcat.connection_pool_timeout=600
worker.tomcat.socket_keepalive=True
worker.tomcat.socket_timeout=60
worker.jkstatus.type=status
worker.jkstatus.read_only=True

I then added this to my httpd.conf file in the global directives:

# Mount the jk status application
Location /jkstatus
  JkMount jkstatus
  Order allow,deny
  Allow from all
/Location

When I go to http://[myserver]/jkstatus
I get an error that the page cannot be displayed.

Also, in the httpd error_log, I see this:
File does not exist: /var/www/html/jkstatus

So, it looks like the JkMount is not getting triggered and
Apache is looking for a file in the html directory.

Any idea why this is happening?

Thanks,
Neil


--
Neil Aggarwal, (281)846-8957, www.JAMMConsulting.com
Will your e-commerce site go offline if you have
a DB server failure, fiber cut, flood, fire, or other disaster?
If so, ask about our geographically redundant database system.


-
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org



RE: Tomcat is not getting shutdown

2009-10-14 Thread Suneel Saguturu
Hi Mark,

Thanks for replying, I don't know how to take the thread dump 
how to look for non-daemon threads?

- Suneel.

-Original Message-
From: Mark Thomas [mailto:ma...@apache.org] 
Sent: Wednesday, October 14, 2009 6:29 PM
To: Tomcat Users List
Subject: Re: Tomcat is not getting shutdown

Suneel Saguturu wrote:
 I am facing an issue with Tomcat-5.5.27, the issue is
 Tomcat server is not getting shutdown.
 
 When I execute the shutdown.sh its not throwing any
 error/exception, but the process is still there and the another point
is
 port  everything is release only the process is not released.

Take a thread dump and look for non-daemon threads.

Mark


-
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: Tomcat 6.0.20 always works in GMT timezone even after forcing it to use Asia/Calcutta by multiple methods.

2009-10-14 Thread raghu gs
Hi Tim

Your suggestion seems interesting to some extent.
One clue i got now is UTC is enabled in /etc/sysconfig/clock file.
Being UTC is enabled is naturally equals to setting GMT as timezone.
Please correct me if i am wrong.

My question is, when i put a normal java code to display the time and
timezone of the system, it just displays the timezone in IST without any
problem.
clock command's output returns the time in IST timezone it self.
Then how come Tomcat alone can respect the UTC enablement in
/etc/sysconfig/clock?

Regards


On Wed, Oct 14, 2009 at 9:37 PM, Timothy J Schumacher 
tim.schumac...@colorado.edu wrote:

 I'm not sure if it will help with your particular version of java/linux but
 I had a similar problem with my java/linux and found that in my case the
 file /etc/sysconfig/clock was one of the places the JVM looked for a
 timezone.  Setting environment variables and options had no effect, the
 thing that worked for me was changing the clock file.  Check
 /etc/sysconfig/clock and see what it says, if there is a timezone set in
 there try removing it.  It took me quite a while to figure this out, going
 to the extreme of writing a play java program and running it with strace and
 then I saw that it opened the clock file...
 Good luck,
 -Tim


 raghu gs wrote:

 Tomcat is not running under a security manager.
 So that policy entry may need to be exists, i understood now.

 I have tried stopping our web applications via tomcat-manager and
 restarted
 important web applications alone.
 But still timezone didn't reset to system timezone.

 Wouldn't stopping offending web applications enough for the timezone to
 use
 system configuration?

 Is it possible to restrict just timezone over-riding permission from web
 application instead of first listing what are all permissions that should
 be
 granted for a web application?



 On Mon, Oct 12, 2009 at 8:32 PM, George Sexton geor...@mhsoftware.com
 wrote:





 -Original Message-
 From: raghu gs [mailto:iamra...@gmail.com]
 Sent: Monday, October 12, 2009 5:18 AM
 To: Tomcat Users List
 Subject: Re: Tomcat 6.0.20 always works in GMT timezone even after
 forcing it to use Asia/Calcutta by multiple methods.

 java.util.PropertyPermission user.timezone, write; line not there
 in
 catalina.policy file.
 Should this line not need to be present for granting the pernission?


 The reference to catalina.policy only applies if you are running under a
 security manager. Are you running under a security manager?



 What is the code for restricting the timezone overide permission in
 catalina.policy file?
 Moreover it was misundstanding between our developers,
 Nobody said that kernel tomcat mismatch might be the cause of the
 problem.
 TZData is also up-to-date.

 Regards



 George Sexton
 MH Software, Inc.
 http://www.mhsoftware.com/
 Voice: 303 438 9585


 -
 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