Re: Apache/mod_jk serves random files from tomcat

2008-11-12 Thread Jakob Ericsson



--
Jakob Ericsson
+46 704 533 627

11 nov 2008 kl. 22.37 skrev Christopher Schultz [EMAIL PROTECTED] 
:



-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Jakob,

Jakob Ericsson wrote:

We are also experiencing this problem.
Our setup is running Windows 2003 Server with Apache 2.0.59 (no  
prefork),

mod_jk 1.2.22 and Apache Tomcat/6.0.13.

Will upgrading to latest mod_proxy_ajp in Apache httpd 2.2.X solve  
this

problem?


If you're willing to donate some time to this, please stick with  
mod_jk
and work with Rainer/Mladen to fix whatever might be wrong.  
Upgrading to
the latest mod_jk is a definite requirement before you continue  
testing.


We are in the process of updating our system to the latest mod_jk. I  
will give an update if this solves our problem.
The underlying problem is hopefully the missed multi thread flag in  
mod_jk compile.

Does anyone know which issue this is in bugzilla?



Switching to mod_proxy_ajp will switch your configuration around and
you'll be using a different package. In that case, your problem may go
away (yay!) but the underlying problem might not get fixed (boo!).





- -chris

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

iEYEARECAAYFAkkZ+yIACgkQ9CaO5/Lv0PCUOQCdHZZH9Fzgjg+brfipzDiSv9KN
qdwAnid9AjHkKA0h+VZRZdxNGAB8xSuy
=T/6T
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Using JAXB with tomcat

2008-11-12 Thread Torsten.Romer
I am not sure if this works and it is probably not a nice solution, but maybe 
you can do something like

BoOcorrenciaPolicial bo = (BoOcorrenciaPolicial)
unmarshaller.unmarshal(new File(XML_DIR + id + .xml));

Class clazz = bo.getClass();
Field field = clazz.getDeclaredField(hist);
field.setAccessible(true);

String hist = bo.getHist();

Like that you would at least not have to change the fields from protected to 
public.

Torsten

-Original Message-
From: Rafael Cunha de Almeida [mailto:[EMAIL PROTECTED] 
Sent: 12. november 2008 08:40
To: users@tomcat.apache.org
Subject: Using JAXB with tomcat


I have been trying to use JAXB with tomcat, but I have been have some
problems. I began trying to use the following class loader:

this.getClass().getClassLoader()

That didn't work. I don't actually understand much about those class
loader things. So I browsed the Internet for a solution and I found out
the following line:

Thread.currentThread().getContextClassLoader()

Then I plugged it into my JAXB initialization (br/sids/brh/jaxb is in
WEB-INF/class):

JAXBContext jc = JAXBContext.newInstance(br.sids.brh.jaxb,
Thread.currentThread().getContextClassLoader());
unmarshaller = jc.createUnmarshaller();

After some tomcat permissions tweaking I finally get that line working.
I was happy for a while, that is until I tried to actually get some
information from the XML. I used the following, very simple, just to
test it:

BoOcorrenciaPolicial bo = (BoOcorrenciaPolicial)
unmarshaller.unmarshal(new File(XML_DIR + id + .xml));
String hist = bo.getHIST();

Things didn't go as smoothly as I'd hope. This is the error I got:

java.lang.IllegalAccessError: Class 
com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$FieldReflection can not 
access a member of class br.sids.brh.jaxb.BoOcorrenciaPolicial with modifiers 
protected 
com.sun.xml.internal.bind.v2.runtime.reflect.Accessor$FieldReflection.set(Accessor.java:204)

I noticed that protected modifiers seemed to be bothering tomcat. So
I thought I'd edit br/sids/brh/jaxb/BoOcorrenciaPolicial.java and
change all the occurences to public. That seems to have done it. Even
%= hist % worked as expected. I was pleased, but I didn't like the
solution.

That file is automatically generated, it seems rather bad to me to edit
a automatically generated file like that. I'd have to notice any future
user that he has to do that (or call some script I could make) and
overall it doesn't seems really elegant to simple change protected to
public, whoever made the program probably had a reason to keep those
methods protected. Does anyone have a better solution? Maybe some
further tomcat configuration, the user of a different loader, perhaps.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Tomcat 6 startup error

2008-11-12 Thread rajesh202023

Hi All,

I am getting the following error when I try to start Tomcat 6. I am new to
Tomcat.

Nov 12, 2008 12:31:12 PM org.apache.catalina.startup.Bootstrap
initClassLoaders
SEVERE: Class loader creation threw exception
java.io.IOException: Invalid argument
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Unknown Source)
at java.io.File.getCanonicalPath(Unknown Source)
at
org.apache.catalina.startup.ClassLoaderFactory.createClassLoader(ClassLoaderFactory.java:200)
at
org.apache.catalina.startup.Bootstrap.createClassLoader(Bootstrap.java:173)
at
org.apache.catalina.startup.Bootstrap.initClassLoaders(Bootstrap.java:91)
at org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:206)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:390)

What could be the issue? Please let me know ASAP.

--Raj
-- 
View this message in context: 
http://www.nabble.com/Tomcat-6-startup-error-tp20455940p20455940.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Forward filter mapping including path info

2008-11-12 Thread Florian Hopf
Hi Mark,

Mark Thomas schrieb:
 Florian Hopf wrote:

 Is a mapping containing a path info not supported for forwards?
 
 Looks like https://issues.apache.org/bugzilla/show_bug.cgi?id=45441
 
 This is fixed in 6.0.x trunk if you want to try that or wait for 6.0.19.
 

Thank's a lot, that's it. We will see if we can update when 6.0.19 is out.

Also thanks to Christopher for trying to help.

Regards
Florian

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Session replication for JPetStore application in tomcat 6

2008-11-12 Thread Anupam Beri

Hello All ,
   I am a newbie to the Tomcat and Tomcat clustering
environment .I was just going through some posts on this forum for reference
.
I wish to deploy the classic JPetStore application which comes with the
Spring framework in the clustered environment involving 2 machines for
session replication

For this, I installed Apache 2.2 , Tomcat 6.0.18 and mod_jk on each of these
machines . I configured mod_jk load balancer for sticky session and deployed
JPetStore on either of them .
But once I start tomcat and apache on either machine and try to do some
transactions , I cannot see any sessions being exchanged between the two
members of the cluster.

The JPetStore application also uses a database (hsqldb) and its necessary to
start one on either machine (it is not a shared one).

I was reading some documentation regarding if the session attributes are to
be implemented from serializable interface...but I see they already have
been in the source code .

I will be greateful if anyone could help me out and give a  good insight on
where I am going wrong ?
I have attached the server.xml , workers.properties and catalina.out for the
two nodes in the attached file.
Any help is deeply appreciated !

Best Regards !!
Anupam

http://www.nabble.com/file/p20456399/clustering_files.rar
clustering_files.rar 
-- 
View this message in context: 
http://www.nabble.com/Session-replication-for-JPetStore-application-in-tomcat-6-tp20456399p20456399.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads

2008-11-12 Thread André Warnier

Filip Hanik .. and many others - Dev Lists wrote:
[...]
Thanks for all the answers, very enlightening.
In summary thus :
- Tomcat (or rather I suppose the Connector) will create new threads as 
needed to service simultaneous requests, up to the number given in the 
Connector's maxThreads attributes.
- Once such a thread is created, it remains alive after servicing the 
request for which it was created, and can thus service future requests
- The memory usage one sees with top under some versions of Linux for 
each one of these threads is not really cumulative, because most of it 
is actually shared between the threads.  The total really used is only 
slightly more than what is indicated individually for each thread.
In other words, after the first thread is created, each additional 
thread only adds a relatively small overhead.



Now let me elaborate one step further, and let me know if this is correct :

If in a Tomcat I have one HTTP Connector and one AJP Connector (used 
with mod_jk), they are two distinct Connectors. (I don't really expect 
dissent here, but who knows ?)


Each one will create new threads as needed to service requests on *that* 
Connector, independently of the other Connector.


So if I access the same application (webapp) multiple times 
indifferently through one Connector or the other, this will result in 
two groups of threads, one group per Connector, each group behaving 
independently like indicated above in the summary. Right ?


If right, then it means one would do better choosing if one can, and 
always access this application through either one of the Connectors, but 
not both, right ?


Or, considering both groups are in the end executing the same webapp 
application, would the memory used by the two groups of threads end up 
being largely shared also anyway ?



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat Native library for Windows

2008-11-12 Thread zmeeagain

I never set JAVA_HOME globally, I configure it explicitly for each different
Tomcat. In this particular instance I have set:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_07 

in setclasspath.bat, i.e. the 64bit jdk. CATALINA_HOME is set in startup.bat
(set CATALINA_HOME=%CURRENT_DIR%) and is the path I'm running Tomcat from.
It is always reported as correctly set in cmd prompt anyway. PATH I don't
see how that could make a difference. I never use tomcat6.exe, tomcat6w.exe
or the service to start up Tomcat, I always use startup.bat, which
eventually starts Bootstrap class calling java (with the correct jdk) in
catalina.bat:

start Tomcat C:\Program Files\Java\jdk1.6.0_07\bin\java  -Xdebug ...
org.apache.catalina.startup.Bootstrap  start

Unless this somehow invokes tomcat6.exe, which I hope it doesn't. How can I
tell if it's 64 bit or not?
I have also tried with other browsers and here's what I've discovered:
[IE]
The webpage cannot be displayed 
   
   Most likely cause:
Some content or files on this webpage require a program that you don't have
installed. 
 
   What you can try: 
 Search online for a program you can use to view this web content.  
 
 Retype the address.  
 
 Go back to the previous page. 
[Firefox]
Connection Interrupted

The document contains no data.

The network link was interrupted while negotiating a connection. Please try
again. 

[Chrome]
This web page is not available.

The web page at null might be temporarily down or it may have moved
permanently to a new web address.

  More information on this error
Below is the original error message

Error 2 (net::ERR_FAILED): Unknown error.

[Opera]
It works!

[cURL]
curl localhost:8080
It works!

No proxy has been configured in any of the browsers used or Internet
Options. Whenever I try to connect with putty raw it says almost immediately
Connection closed by remote host. 



Serge Fonville wrote:
 
 I looked at your server.xml and compared it to mine. I see no difference
 that would cause this.I use tomcat 6.0.18 with JDK 5
 Have you set all variables correctly JAVA_HOME,CATALINA_HOME,PATH
 Did you use the x64 tomca6.exe and tomcat6w.exe
 Have you tried other browsers (ie,opera,chrome,mozilla)
 you could also telnet to your tomcat server for http:
 GET / HTTP/1.1
 host: localhost
 
 (two enters)
 
 On Fri, Nov 7, 2008 at 1:16 PM, zmeeagain [EMAIL PROTECTED] wrote:
 

 My server.xml:  http://www.nabble.com/file/p20379495/server.xml
 server.xml


 Serge Fonville wrote:
 
  Could you post your server xml (excluding comments) since I have the
 same
  situation working fine.
 
  On Fri, Nov 7, 2008 at 11:51 AM, zmeeagain [EMAIL PROTECTED] wrote:
 
 
  What I failed to report is that, now that the AprLifecycleListener is
  initialised and the library is loaded, I can't access Tomcat
 anymore!!!
  Hitting localhost:8080 gives me (Firefox):
 
  Connection Interrupted
 
  The document contains no data.
 
  The network link was interrupted while negotiating a connection.
 Please
  try
  again.
 
  As soon as I remove tcnative-1.dll and restart Tomcat, everything is
 back
  to
  normal again. Is there something more I need to do? BTW, no errors
 appear
  in
  catalina log file.
 
 
  zmeeagain wrote:
  
   It's an Intel Core2 Duo E4500 at 2.2 GHz, running Vista Business 64
  bit.
   Anyhow, your comment made think that ia64 is not my architecture.
 And
   indeed, version 1.1.14 of tcnative-1.dll is available for amd and
 x64
   architectures (instead of amd and ia64 as in some previous
 versions).
  That
   last one did the trick or me:
  
   INFO: Loaded APR based Apache Tomcat Native library 1.1.14.
   6 Nov 2008 11:09:10 am org.apache.catalina.core.AprLifecycleListener
  init
   INFO: APR capabilities: IPv6 [false], sendfile [true], accept
 filters
   [false], random [true].
  
 
  --
  View this message in context:
 
 http://www.nabble.com/Tomcat-Native-library-for-Windows-tp19279526p20378334.html
  Sent from the Tomcat - User mailing list archive at Nabble.com.
 
 
  -
  To start a new topic, e-mail: users@tomcat.apache.org
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 
 

 --
 View this message in context:
 http://www.nabble.com/Tomcat-Native-library-for-Windows-tp19279526p20379495.html
 Sent from the Tomcat - User mailing list archive at Nabble.com.


 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]


 
 

-- 
View this message in context: 
http://www.nabble.com/Tomcat-Native-library-for-Windows-tp19279526p20458413.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL 

Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread Markus Reis
  Our Tomcat 5.5 sends 30 cookie
  (cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  domain=null; path=/)
 
 Are they all identical?

No. They are ALL different (and they also differ from response to response)

 
  and 900 Set-Cookie
  (header=Set-Cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  Path=/; Secure) headers in the http response header back to the
  external clients (during the initial http request/response).
 
 Same here: identical?

No. Each of the 30 DIFFERENT session id's from above are repeated thirty times.

 
  The 900 Set-Cookie headers contain each cookie JSESSIONID thirty
  times.
 
 That is crazy! How are you observing this behavior? LiveHTTPHeaders/http
 protocol sniffer? Wireshark/packet sniffer?

Yes it is crazy - I observed this using 
org.apache.catalina.valves.RequestDumperValve in my server.xml

 
  If I submit the same request from my machine I get a only/as expected
  one cookie and one Set-Cookie header back in the initial response.
 
 Er... what do you mean from my machine? What are you using when you
 get 900 Set-Cookie headers?

My machine is my PC at work. The requests where a repsonse with 900 SetCookie 
headers is returned, are sent from PC's of our partners, which operate in one 
single network (and thus all have the same IP, which is the IP of the partner 
network's proxy server). If I use some other PC connected to the internet I 
have the same expected behaviour as from my PC at work. So those responses are 
only/exclusively produced for requests coming from PC's of our partners.

markus
-- 
GMX Download-Spiele: Preizsturz! Alle Puzzle-Spiele Deluxe über 60% billiger.
http://games.entertainment.gmx.net/de/entertainment/games/download/puzzle/index.html

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads, II

2008-11-12 Thread André Warnier

David kerber wrote:

Pid wrote:

...

Having said that, parsing XML can be a memory intensive operation as
well, so your old box could be experiencing problems there - check the
garbage collection log.

p
  
I try to avoid XML for this exact reason.  We found that our application 
could handle between 6 and 10 times more concurrent requests on the same 
hardware when we went away from XML data transmission, and switched to a 
simple text-based HTTP POST request.


D


Thank you all very much.
But, as mentioned before, I have no choice about the XML.  That's how 
the application works, and we don't have the code.
We have already tried - because that is one thing we can do - to split 
the XML data into smaller chunks, but that does not seem to have any 
significant impact.


We do really like the application though. So before I decide to junk it, 
we will make further tests on a better server.
But my question now was, apart from the things I cannot change, what 
could I try changing on the current test server, to see if it makes any 
difference ? Should I give more/less meory to Tomcat or Java, and if yes 
how ?  Can I tell Tomcat/Java to start this application, but use only 
some maximum percentage of the memory/cpu time while doing so ?


I also do not know where to look for the garbage collection log. Hints 
anyone ? And what should I look for in there ?
Is there any way, from the outside of the application, that I can check 
what exactly the application is busy doing, when it is starting up ?



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

André,

André Warnier wrote:
 - The memory usage one sees with top under some versions of Linux for
 each one of these threads is not really cumulative, because most of it
 is actually shared between the threads.  The total really used is only
 slightly more than what is indicated individually for each thread.
 In other words, after the first thread is created, each additional
 thread only adds a relatively small overhead.

Actually, it gets better than that if you have multiple 1.5+ JVMs
running on the same machine (*NIX /or/ Windows), since recent JVMs use
shared memory to share common class data (like JITed object code from
java.* packages). So, the OS helps share data between JVMs if you have
several of them running.

 Now let me elaborate one step further, and let me know if this is correct :
 
 If in a Tomcat I have one HTTP Connector and one AJP Connector (used
 with mod_jk), they are two distinct Connectors. (I don't really expect
 dissent here, but who knows ?)
 
 Each one will create new threads as needed to service requests on *that*
 Connector, independently of the other Connector.

Yup.

 So if I access the same application (webapp) multiple times
 indifferently through one Connector or the other, this will result in
 two groups of threads, one group per Connector, each group behaving
 independently like indicated above in the summary. Right ?

Yes.

 If right, then it means one would do better choosing if one can, and
 always access this application through either one of the Connectors, but
 not both, right ?

Mmm maybe. I would argue that memory and thread count aren't the
proper reasons for picking just one connector and sticking with it, but
I round recommend that configuration anyway: why bother with AJP when
HTTP is working for you? Or, if you are using AJP for some stuff, why
add the (likely) headache of exposing HTTP as well?

 Or, considering both groups are in the end executing the same webapp
 application, would the memory used by the two groups of threads end up
 being largely shared also anyway ?

Yes, the memory is shared. It doesn't matter where the Thread objects
came from, they all have the same heap. Even if they are serving
/different/ applications, it doesn't matter (because threads are not
app-specific). About the only thing they don't share (as Chuck
mentioned) is their stack and some small amount of private memory
(probably around 1MB or less).

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

iEYEARECAAYFAkka5F4ACgkQ9CaO5/Lv0PCLoACgtr38cgXLuu+Iblt/ncgxyOrj
j+wAnij16HJOEzZcGVa+8aGMpeNNlR8T
=PIGx
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat Performance

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Leon,

Leon Rosenberg wrote:
 On Wed, Nov 12, 2008 at 2:26 PM, David kerber [EMAIL PROTECTED] wrote:
 Peng Tuck Kwok wrote:
 Probably the reason why he's seeing one instance of tomcat moving quicker
 than 2 instances is the fact that there is some form of contention for
 resources on that single machine assuming that the 2 instances are
 configured identically in every aspect (other than ports).

 You mis-read it.  He's seeing twice the performance from two instances than
 he is one single one, which shouldn't be if the one is properly configured,
 
 Or if the application has synchronization/blocking issues.

Yup: like a small db connection pool in a db-heavy application.

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

iEYEARECAAYFAkka5O8ACgkQ9CaO5/Lv0PDkswCglLVGkzzNNDbGKZg5QCQbVPF2
5/cAnRe3DqIcxphv+D5PqGbtdgl3PQUb
=PccR
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat Performance

2008-11-12 Thread Peng Tuck Kwok
David, was replying to Charles's earlier email on that.
I thought I read it right first in the email and assumed Charles was correct
in that.
Hazards of reading mail on the go :P


On Wed, Nov 12, 2008 at 9:26 PM, David kerber [EMAIL PROTECTED] wrote:

 Peng Tuck Kwok wrote:

 Probably the reason why he's seeing one instance of tomcat moving quicker
 than 2 instances is the fact that there is some form of contention for
 resources on that single machine assuming that the 2 instances are
 configured identically in every aspect (other than ports).


 You mis-read it.  He's seeing twice the performance from two instances than
 he is one single one, which shouldn't be if the one is properly configured,
 (with the exception noted below).

 D


  The idea is not to give you a 0-60 mph capability with 2 tomcats on a
 single
 box (partition) but to give you better throughput. As I understand it,
 when
 you start getting more load, you'd be able to handle the requests in a
 linear fashion (again assuming you've sized the 2 or more instances
 correctly).

 *I would rarely recommend that a client run parallel app servers on the


 same machine for the same application for any purposes other than being
 able to switch between versions of the same application (say, for
 zero-downtime upgrade strategy).


 *I wouldn't recommend anyone do that just to switch versions for a zero
 downtime upgrade strategy as well. Some sort of DR would be better for
 this
 ? Down production and switch to DR then when upgrades are complete just
 reverse what has been done.

 *Since the OP didn't say that's what his


 requirements were, there doesn't seem to be a compelling reason to use
 this strategy.


 *You're right, until we really know what his requirements/KPI's on that
 are
 then most of this is largely academic.

 Nishi, the link to the redbook is here
 http://www.redbooks.ibm.com/abstracts/sg246392.html?Open .
 It's websphere specific, but there's still lot of things you can pick up
 on
 and probably apply.

 On Wed, Nov 12, 2008 at 5:15 AM, Christopher Schultz 
 [EMAIL PROTECTED] wrote:



 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Pengtuck,

 [EMAIL PROTECTED] wrote:


 So let me get this straight. You are reluctant to accept a
 configuration which gives you improved throughput ? :P


 No, the OP is unwilling to use a configuration that doesn't make any
 sense: one single Tomcat should outperform two Tomcats on the same
 physical server (unless you are talking about a 32-bit JVM that needs a
 lot of memory).



 Anyway, this is not an unusual approach, from what I understand this
 simply makes full use of the resources available on that machine. Not
 uncommon in real world to see app servers like websphere being
 configured in that manner.


 I would rarely recommend that a client run parallel app servers on the
 same machine for the same application for any purposes other than being
 able to switch between versions of the same application (say, for
 zero-downtime upgrade strategy). Since the OP didn't say that's what his
 requirements were, there doesn't seem to be a compelling reason to use
 this strategy.

 - -chris





 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Paul van Beukering
Hi all,

We are trying to get APR to work. Sofar without success.
tThe APR libraries are build, are readable for the world, but tomcat seems
unable to find them.

INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path: /usr/jdk1.6.0_10/jre/lib/i386/
server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/home/belpop/tomcat//lib:/usr/local/apr/lib/:/usr/local/apr/:/usr/java/packages/lib/i386:/lib:/usr/lib

The LD_LIBRARY_PATH is set correctly,

LD_LIBRARY_PATH=$CATALINA_HOME/lib:/usr/local/apr/lib:/usr/local/apr
export LD_LIBRARY_PATH

What am I doing wrong?
If you do not have a direct answer, Like Torsten suggested -
Is it possible to get Tomcat to log some more details about loading these
libs? Could be interesting to see some UnsatisfiedLinkError or so.

Thanks in advance
Paul van Beukering

apr: apr-1.3.3
tomcat version: 6.0.18
tomcat-native-1.1.14-src


Re: Tomcat threads

2008-11-12 Thread André Warnier

Christopher Schultz wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

André,

André Warnier wrote:

- The memory usage one sees with top under some versions of Linux for
each one of these threads is not really cumulative, because most of it
is actually shared between the threads.  The total really used is only
slightly more than what is indicated individually for each thread.
In other words, after the first thread is created, each additional
thread only adds a relatively small overhead.


Actually, it gets better than that if you have multiple 1.5+ JVMs
running on the same machine (*NIX /or/ Windows), since recent JVMs use
shared memory to share common class data (like JITed object code from
java.* packages). So, the OS helps share data between JVMs if you have
several of them running.


So, let me check if I get this correctly.

Suppose for some reason I would have two independent Tomcat instances 
running on the same host, using the same JVM 1.5+, sharing a common 
CATALINA_HOME, running basically the same applications, but having each 
an individual CATALINA_BASE,  then :
- they would actually share (in memory) the compiled classes that are 
part of the standard Java library (java.* etc..)
- they would also share (in memory) the classes that are loaded from 
some area under the CATALINA_HOME (I suppose most of the Tomcat-specific 
classes)
- they would not share the classes that are loaded from under their 
individual CATALINA_BASE


And is the fat that 2 classes are the same and can be shared dependent 
of where they are loaded from in terms of path, or does Java/Tomcat have 
a way to figure out that they are the same otherwise ?


Elaborate.

.. a bit, please.



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads

2008-11-12 Thread Caldarale, Charles R
 From: Christopher Schultz [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads

 recent JVMs use shared memory to share common class data
 (like JITed object code from java.* packages)

Careful - JITed code is *not* shared - only some of the PermGen is, and that 
only on a -client JVM.  When running -server mode, nothing is shared across 
JVMs (that may change in Java SE 7 - haven't checked yet).  The PermGen 
contains loaded classes, but not JIT-generated code.

  Each one will create new threads as needed to service
  requests on *that* Connector, independently of the other
  Connector.

Correct.  If you want a shared pool of threads, use an Executor, which Filip 
stated not to be a performance problem any more.

 Mmm maybe. I would argue that memory and thread count aren't the
 proper reasons for picking just one connector and sticking with it

Agreed; an idle thread consumes very little resources.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads

2008-11-12 Thread Caldarale, Charles R
 From: André Warnier [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads

 - they would actually share (in memory) the compiled classes that are
 part of the standard Java library (java.* etc..)

No - see my previous post.  You can use JConsole to see which memory pools are 
shared (none on -server JVMs).

 - they would also share (in memory) the classes that are loaded from
 some area under the CATALINA_HOME (I suppose most of the Tomcat-specific
 classes)

I haven't checked, but I suspect only classes loaded by the bootstrap class 
loader (e.g., from jre/lib) are shared, not any application classes.  So, no.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Mladen Turk

Paul van Beukering wrote:

Hi all,

We are trying to get APR to work. Sofar without success.
tThe APR libraries are build, are readable for the world, but tomcat seems
unable to find them.

INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path: /usr/jdk1.6.0_10/jre/lib/i386/
server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/home/belpop/tomcat//lib:/usr/local/apr/lib/:/usr/local/apr/:/usr/java/packages/lib/i386:/lib:/usr/lib

The LD_LIBRARY_PATH is set correctly,

LD_LIBRARY_PATH=$CATALINA_HOME/lib:/usr/local/apr/lib:/usr/local/apr
export LD_LIBRARY_PATH

What am I doing wrong?


Where is libtcnative-1.so installed?
It has to be in the LD_LIBRARY_PATH as well

You can setup the LD_LIBRARY_PATH in console and
just hit 'ldd libtcnative-1.so'

No missing links should be reported.


Regards
--
^(TM)

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Milan Cvejic

Hello,

You should copy libtcnative-1.so to java JDK installation folder in my 
case: jre/lib/amd64/


Those libraries are needed by java...

Greetings

Paul van Beukering wrote:

Hi all,

We are trying to get APR to work. Sofar without success.
tThe APR libraries are build, are readable for the world, but tomcat seems
unable to find them.

INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path: /usr/jdk1.6.0_10/jre/lib/i386/
server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/home/belpop/tomcat//lib:/usr/local/apr/lib/:/usr/local/apr/:/usr/java/packages/lib/i386:/lib:/usr/lib

The LD_LIBRARY_PATH is set correctly,

LD_LIBRARY_PATH=$CATALINA_HOME/lib:/usr/local/apr/lib:/usr/local/apr
export LD_LIBRARY_PATH

What am I doing wrong?
If you do not have a direct answer, Like Torsten suggested -
Is it possible to get Tomcat to log some more details about loading these
libs? Could be interesting to see some UnsatisfiedLinkError or so.

Thanks in advance
Paul van Beukering

apr: apr-1.3.3
tomcat version: 6.0.18
tomcat-native-1.1.14-src

  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads, II

2008-11-12 Thread Caldarale, Charles R
 From: André Warnier [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads, II

 We have already tried - because that is one thing we can do - to split
 the XML data into smaller chunks, but that does not seem to have any
 significant impact.

Nor would I expect it to.  The total amount of memory consumed is going to be 
about the same, regardless of whether or not you split it up.

From the numbers you posted before, it doesn't look like memory is the issue - 
you're maxing out the CPU.  Parsing XML is very CPU intensive, and you simply 
don't have enough cycles to get it done in a reasonable amount of time.  If 
you can run on a multi-CPU system and figure out how to process pieces of the 
XML file in parallel, that would help.

 Should I give more/less meory to Tomcat or Java, and if yes how ?

Use JConsole to see what's going on while the webapp is initializing.

 Can I tell Tomcat/Java to start this application, but use only
 some maximum percentage of the memory/cpu time while doing so ?

No.  You can only limit memory by the -Xmx setting.

 I also do not know where to look for the garbage collection log.

Likely because you didn't ask for one.  Turn on -verbose:gc, and set 
-Xloggc:file to specify the GC logging location.  However, I'd use JConsole 
first - it's easier.

 Is there any way, from the outside of the application, that I
 can check what exactly the application is busy doing, when it
 is starting up ?

Again, use JConsole, or turn on JVM profiling (I'd recommend the former).

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: log POST data

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus,

Markus Reis wrote:
 I fear you are right :-)
 
 Due to the fact that you cannot read twice from the same
 ServletInputStream (unfortunately you are again right here :-)) I did
 the following in the mean time:

Is this just a draft? Or do you have it running anywhere?

 The above code reads the ServletInputStream into a byte buffer and
 hands on a ByteArrayInputStream from this buffer to my application
 (which in turn reads from the ByteArrayInputStream and does not attempt
 to read the initial ServletInputStream twice/again).

This is the proper strategy, but in order to put it into your Valve (or,
hack the ExtendedAccessLogValve), you'll need to wrap the Request object
in your own, new object that returns this ByteArrayInputStream to the
caller when request.getInputStream is called. You also have to serve the
same underlying object when getReader is called. Maybe something like this:

public BufferedReader getReader()
  throws IOException
{
   String encoding = getCharacterEncoding();
   if(null == encoding)
 encoding = org.apache.coyote.Constants.DEFAULT_CHARACTER_ENCODING;

   return new BufferedReader(new InputStreamReader(getInputStream(),
   encoding));
}

You'll need to implement a subclass of
java/org/apache/catalina/connector/Request.java (or maybe the other
Request.java in the TC source... easy to figure this out) and wrap the
existing Request with your new request object before you hand-off
control to the valve chain.

Unfortunately, Tomcat doesn't provide ready-made Request objects for
wrapping (like HttpServletRequestRrapper), but I've created some and
attached them to a bugzilla report
(https://issues.apache.org/bugzilla/show_bug.cgi?id=45014). Feel free to
use them yourself.

Also note that your InputStream actually needs to be a
ServletInputStream, so you'll have to work around that some way ;)

- -chris

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

iEYEARECAAYFAkka6WkACgkQ9CaO5/Lv0PChTgCeLFLZ59uzZ7m7bCMaKbFq1vw2
blwAn2O8whFxXUNPriA9MNsn681/4WPh
=33D4
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads, II

2008-11-12 Thread Caldarale, Charles R
 From: André Warnier [mailto:[EMAIL PROTECTED]
 Subject: Tomcat threads, II

 -classpath :/usr/lib/jvm/java-1.5.0-sun/jre//lib/jcert.jar:
 /usr/lib/jvm/java-1.5.0-sun/jre//lib/jnet.jar:
 /usr/lib/jvm/java-1.5.0-sun/jre//lib/jsse.jar:
 /usr/share/tomcat5.5/bin/bootstrap.jar:
 /usr/share/tomcat5.5/bin/commons-logging-api.jar

The classpath above is very wrong: no jars from jre/lib should *ever* be on the 
classpath.  Those jars are already on the JVM's bootclasspath and will at best 
be ignored anywhere else.  Their presence will at a minimum slow down Tomcat 
initialization.

Also, the commons-logging-api.jar should not be on the classpath; Tomcat finds 
that all by itself, based on entries in the bootstrap.jar manifest.  If you 
need commons-logging for a webapp, it should be in the webapp's WEB-INF/lib 
directory, not on classpath.

Finally, the leading colon on the classpath shouldn't be there, but it appears 
to do little harm.

 -Djava.security.manager

Enabling the security manager slows things down; do you really need it?

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



How to set JAVA_OPTS variable in tomcat6.0.16

2008-11-12 Thread bhavik shah
 Hi,
I want to set

Xms1024m

Xmx1024m

and MaxPermSize paramater to 128

How do I do that in tomcat6.0.16



thanks


Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Paul van Beukering
Hello Milan and Mladen,

See here the libraries that are created:

-rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
libtcnative-1.so.0.1.14
-rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
-rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
below. Still the same message is shown in the log.

INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
/usr/jdk1.6.0_10/jre/lib/i386/server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/usr/local/apr:/usr/java/packages/lib/i386:/lib:/usr/lib

So, in LD_LIBRARY_PATH there should be the libtcnative-1.a files?

What do you mean with:
 as well as all dependencies
 apr, eventual openssl, etc

cheers,
Paul

On Wed, Nov 12, 2008 at 4:05 PM, Mladen Turk [EMAIL PROTECTED] wrote:

 Milan Cvejic wrote:

 Hello,

 You should copy libtcnative-1.so to java JDK installation folder in my
 case: jre/lib/amd64/

 Those libraries are needed by java...


 There's no need for that.
 It is enough that it is (as well as all dependencies
 apr, eventual openssl, etc) in the LD_LIBRARY_PATH

 Regards
 --
 ^(TM)


 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




RE: Tomcat Performance

2008-11-12 Thread Caldarale, Charles R
 From: Peng Tuck Kwok [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat Performance

 David, was replying to Charles's earlier email on that.
 I thought I read it right first in the email and assumed
 Charles was correct in that.

Assuming you're referring to me, I have not commented on this thread prior to 
this message.  (There's insufficient real information to comment about.)

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Mladen Turk

Paul van Beukering wrote:

Hello Milan and Mladen,

See here the libraries that are created:

-rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
libtcnative-1.so.0.1.14
-rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
-rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
below. Still the same message is shown in the log.



OK, if they are in the LD_LIBRARY_PATH
what is the output from
ldd libtcnative-1.so


Regards
--
^(TM)

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Session replication for JPetStore application in tomcat 6

2008-11-12 Thread Filip Hanik - Dev Lists
looks like its working, what is it that you don't think is working or 
would like help with?


6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
getAllClusterSessions
ATTENTION: Manager [localhost#/jpetstore], requesting session state from 
org.apache.catalina.tribes.membership.MemberImpl[tcp://{-84, 17, 4, 
14}:4000,{-84, 17, 4, 14},4000, alive=276200,id={44 8 -106 78 -12 88 70 
-91 -126 47 21 -83 -67 102 67 -94 }, payload={}, command={}, domain={}, 
]. This operation will timeout if no session state has been received 
within 60 seconds.
6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
waitForSendAllSessions
INFO: Manager [localhost#/jpetstore]; session state send at 06/11/08 
17:08 received in 112 ms.


Filip

Anupam Beri wrote:

Hello All ,
   I am a newbie to the Tomcat and Tomcat clustering
environment .I was just going through some posts on this forum for reference
.
I wish to deploy the classic JPetStore application which comes with the
Spring framework in the clustered environment involving 2 machines for
session replication

For this, I installed Apache 2.2 , Tomcat 6.0.18 and mod_jk on each of these
machines . I configured mod_jk load balancer for sticky session and deployed
JPetStore on either of them .
But once I start tomcat and apache on either machine and try to do some
transactions , I cannot see any sessions being exchanged between the two
members of the cluster.

The JPetStore application also uses a database (hsqldb) and its necessary to
start one on either machine (it is not a shared one).

I was reading some documentation regarding if the session attributes are to
be implemented from serializable interface...but I see they already have
been in the source code .

I will be greateful if anyone could help me out and give a  good insight on
where I am going wrong ?
I have attached the server.xml , workers.properties and catalina.out for the
two nodes in the attached file.
Any help is deeply appreciated !

Best Regards !!
Anupam

http://www.nabble.com/file/p20456399/clustering_files.rar
clustering_files.rar 
  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Mladen Turk

Milan Cvejic wrote:

Hello,

You should copy libtcnative-1.so to java JDK installation folder in my 
case: jre/lib/amd64/


Those libraries are needed by java...



There's no need for that.
It is enough that it is (as well as all dependencies
apr, eventual openssl, etc) in the LD_LIBRARY_PATH

Regards
--
^(TM)

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread André Warnier

Markus Reis wrote:

Our Tomcat 5.5 sends 30 cookie
(cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
domain=null; path=/)

Are they all identical?


No. They are ALL different (and they also differ from response to response)


and 900 Set-Cookie
(header=Set-Cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
Path=/; Secure) headers in the http response header back to the
external clients (during the initial http request/response).

Same here: identical?


No. Each of the 30 DIFFERENT session id's from above are repeated thirty times.


The 900 Set-Cookie headers contain each cookie JSESSIONID thirty
times.

That is crazy! How are you observing this behavior? LiveHTTPHeaders/http
protocol sniffer? Wireshark/packet sniffer?


Yes it is crazy - I observed this using 
org.apache.catalina.valves.RequestDumperValve in my server.xml


If I submit the same request from my machine I get a only/as expected
one cookie and one Set-Cookie header back in the initial response.

Er... what do you mean from my machine? What are you using when you
get 900 Set-Cookie headers?


My machine is my PC at work. The requests where a repsonse with 900 SetCookie 
headers is returned, are sent from PC's of our partners, which operate in one single 
network (and thus all have the same IP, which is the IP of the partner network's proxy 
server). If I use some other PC connected to the internet I have the same expected 
behaviour as from my PC at work. So those responses are only/exclusively produced for 
requests coming from PC's of our partners.

markus
Old African proverb : he who wants to eat an elephant, should do it a 
little bit at a time.


I am not basing the following on any deep knowledge of Tomcat, just 
trying to use the logical cues from what you said so far and the way 
HTTP servers and browsers normally react.


1) How do you *precisely* know that Tomcat is actually sending 900 
Set-Cookie Headers ? does the RequestDumperValve also dump the response 
? or is that what you see in the client browser ?
In other words, are you really sure that it is Tomcat who is sending all 
these Set-Cookie headers, or could it be the customer's proxy 
adding/multiplying them ? (Not that I would know how it could do that, 
but that's another matter)


2) The client browser gets 900 Set-Cookie headers, of which the basic 
set of different ones is 30, each multiplied 30 times.

So the client browser ends up with 30 cookies set ?
Or just one, in the end ?

3) Does this number 30 relate in some way to how many separate stations 
at your customer access your Tomcat server ?
For example, assuming that there would be a way to reset everything, 
and then turn on a single customer station, and access your Tomcat 
server once, how many Set-cookies would that one browser get in return ?

And then, what if a second station now sends a request ?


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Configuring tomcat to log authentication events

2008-11-12 Thread Rainer Jung
Brian Gillan schrieb:
 We're using Rational Team Concert with Tomcat and authenticating with 
 LDAP. 
 I want to log authentication events for users accessing RTC so we can see 
 who's authenticating, and if unsuccessfully, who they're trying to 
 authenticate as. Is this just a matter of configuration? I did some poking 
 
 around the Tomcat documentation but nothing jumped out. 

If you are using Tomcat 6 and JULI logging (default), add

org.apache.catalina.realm.level = FINEST
org.apache.catalina.authenticator.level = FINEST

to your $CATALINA_BASE/conf/logging.properties.

Be aware of the wrong No role found message though:

http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/realm/RealmBase.java?r1=645149r2=698982sortby=datediff_format=h

This will be fixed in 6.0.19.

We are in the process of adding features to the JNDI Realm.

Regards,

Rainer

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread André Warnier

Markus Reis wrote:
[...]
Further I found out that this happens only with an initial POST request 
- if I do the same via GET only one Set-Cookie header is returned (I 
wrote before that I was not able to reproduce those 900 Set-Cookie 
headers on my PC, but that was due to the fact that I sent the request 
as a GET - If I send the same data via a POST request I also get ~900 
Set-Cookie headers, with the only difference that all of them always 
contain the exactly same JSESSIONID).


I only get those 900 Set-Cookie headers after/at the initial request; 
Subsequent requests only have one cookie in http request and response header 
and look pretty normal.


Well, that is a lot of progress. You have already eliminated all the 
client stations, the client network and the client proxy server.  That's 
at least 50% of the elephant.


Is there still something between your PC and the Tomcat server, or is 
your PC talking directly to the Tomcat server (no front-end server, no 
proxy, nothing like that ) ?


And, how do you do this exactly, to switch between a GET request and a 
POST request ?


And, can you try this in Firefox e.g., with the LiveHttpHeaders add-on, 
to see exactly at the PC level which headers are being sent, and which 
are being received, in each case ?



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Tomcat threads, II

2008-11-12 Thread André Warnier

Hi again.

Now that I have (with your help) established some basic facts, I have a
practical case for analysis.

Before I get into details (because this is quite long), I'd like to 
explain the reason why I'm asking this.
We have been testing a Tomcat application from a vendor.  It works very 
nicely when it is started on a test system, and does what we expect.
But the load it imposes on our test Tomcat at startup, makes me a bit 
insecure about deploying it to a production server, before I really 
understand what is happening.
Not being a Java or Tomcat expert, I'm just trying to collect some 
pointers, to see if I can do something about what I am observing, or if 
that's it and we just have to live with it.
The main thing is, I don't even know where to start, so I would 
appreciate some help, even if very basic.

There is quite a bit of data below.

We have an old clunker PC (Pentium II, 512 Mb Ram, average ATA disks),
which we use to test some applications (not only Java/Tomcat).
Its a Linux system, and runs this Tomcat :
Using CATALINA_BASE:   /usr/share/tomcat5.5
Using CATALINA_HOME:   /usr/share/tomcat5.5
Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp
Using JRE_HOME:   /usr/lib/jvm/java-1.5.0-sun
Server version: Apache Tomcat/5.5
Server built:   Jan 20 2008 12:32:00
Server number:  5.5.20.0
OS Name:Linux
OS Version: 2.6.18-6-686
Architecture:   i386
JVM Version:1.5.0_14-b03
JVM Vendor: Sun Microsystems Inc.

The full command used to start Tomcat is :
/usr/lib/jvm/java-1.5.0-sun/bin/java
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties
-Djava.awt.headless=true -Xmx256M -server
-Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -classpath
:/usr/lib/jvm/java-1.5.0-sun/jre//lib/jcert.jar:/usr/lib/jvm/java-1.5.0-sun/jre//lib/jnet.jar:/usr/lib/jvm/java-1.5.0-sun/jre//lib/jsse.jar:/usr/share/tomcat5.5/bin/bootstrap.jar:/usr/share/tomcat5.5/bin/commons-logging-api.jar 


-Djava.security.manager
-Djava.security.policy==/var/lib/tomcat5.5/conf/catalina.policy
-Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5
-Djava.io.tmpdir=/var/lib/tomcat5.5/temp
org.apache.catalina.startup.Bootstrap start

Under Tomcat there, there is an application which we get from outside
and of which we do not have the source. This application is loaded at
Tomcat startup.

When Tomcat has been running for a while, but the system and Tomcat are
basically idle, a top with the option n (sort by memory usage),
shows this (first few lines only) :

top - 10:15:54 up 162 days, 16:25,  2 users,  load average: 0.19, 0.09, 0.03
Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie
Cpu(s):  2.0%us,  0.3%sy,  0.0%ni, 97.7%id,  0.0%wa,  0.0%hi,  0.0%si,
0.0%st
Mem:516920k total,   509716k used, 7204k free,71992k buffers
Swap:  1297564k total,   131340k used,  1166224k free,95148k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 6226 tomcat55  25   0  506m 191m  10m S  0.0 37.9 140:26.15 java
 5937 root  22   0  267m  26m 8056 S  0.0  5.2  25:26.88 java
24608 root  23   0  260m  15m 9332 S  0.0  3.1   0:02.08 java
24638 root  15   0 29564  15m 5984 S  0.0  3.0   0:02.16 apache2
24627 efs   15   0 16964  12m 1968 S  0.0  2.6   0:06.68 MiraLoader.pl
24662 www-data  15   0 29564  10m 1632 S  0.0  2.2   0:02.91 apache2
24668 www-data  16   0 29564  10m 1624 S  0.0  2.2   0:02.50 apache2
24663 www-data  15   0 29564  10m 1620 S  0.0  2.2   0:02.78 apache2
etc..
(the other 2 java processes are separate java daemons, nothing to do
with Tomcat).

At this point Tomcat and this external application are very responsive, 
at least in single-user mode. We have not really done yet a multi-user test.


Now, if I stop and restart Tomcat, for something like 6 minutes after 
that, the same top display shows this kind of thing :
(There are 4 consecutive snapshots here, taken at more or less regular 
intervals during the 6 minutes)


I)
top - 12:44:56 up 162 days, 18:54,  3 users,  load average: 0.99, 0.27, 0.08
Tasks:  85 total,   3 running,  82 sleeping,   0 stopped,   0 zombie
Cpu(s): 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si, 
0.0%st

Mem:516920k total,   351160k used,   165760k free,54548k buffers
Swap:  1297564k total,7k used,  1227564k free,   128152k cached

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 2864 tomcat55  25   0  463m  40m  11m R 97.9  7.9   0:25.62 java
 5937 root  16   0  267m  24m 8056 S  0.0  4.9  25:38.84 java
24608 root  23   0  260m  15m 9332 S  0.0  3.1   0:02.17 java
24638 root  15   0 29564  15m 5984 S  0.0  3.0   0:02.16 apache2
24627 efs   15   0 16964  12m 1968 S  0.0  2.6   0:06.74 MiraLoader.pl
24664 www-data  15   0 29692  12m 3428 S  0.0  2.5   0:04.46 apache2
etc...

II)
top - 12:48:07 up 162 days, 18:57,  3 users,  load average: 1.70, 

Re: Best Linux JVM to use for Tomcat?

2008-11-12 Thread Dan Armbrust
Well, I don't know about always.  I have yet to find a 1.6 JDK from
Sun that is even close to stable.  With heavy use (especially heavy
multithreaded use), we have found that all of the available 1.6 JDK's
segfault.

The latest JDK (1.6 update 10) is less than a month old - and it is a
huge change set from the previous 1.6 release (1.6 update 7).  I
wouldn't even think about it for production given Sun's history of
releasing crappy code.

1.6 update 10 should have been a major version change given the scope
of changes (see -
http://java.sun.com/javase/6/webnotes/ReleaseNotes.html )

We still use the latest 1.5 JVM / JDKs.  Not that we want to.  There
is just nothing else out there that doesn't crash under our workload.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Best Linux JVM to use for Tomcat?

2008-11-12 Thread Leon Rosenberg
On Wed, Nov 12, 2008 at 5:34 PM, Dan Armbrust
[EMAIL PROTECTED] wrote:
 Well, I don't know about always.  I have yet to find a 1.6 JDK from
 Sun that is even close to stable.  With heavy use (especially heavy
 multithreaded use), we have found that all of the available 1.6 JDK's
 segfault.

hmm, what kind of heavy use?
We are using java version 1.6.0_05 for I think 6 Month now (since
end of march 08) and we had not a single issue with it and found it
better than 1.5.
Considering that the whole 1.6 release was maintenance and performance
release I would be surprised otherwise. It's actually first time I
hear omeone complaining about 1.6

Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)


Leon

P.S. We are running about 70 VMs on about 20 machines with top
services serving ~3000 requests per second and more with about 1000
threads.


 The latest JDK (1.6 update 10) is less than a month old - and it is a
 huge change set from the previous 1.6 release (1.6 update 7).  I
 wouldn't even think about it for production given Sun's history of
 releasing crappy code.

 1.6 update 10 should have been a major version change given the scope
 of changes (see -
 http://java.sun.com/javase/6/webnotes/ReleaseNotes.html )

 We still use the latest 1.5 JVM / JDKs.  Not that we want to.  There
 is just nothing else out there that doesn't crash under our workload.

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Paul van Beukering
Hi Mladen

The output is:
[EMAIL PROTECTED]:/home/belpop/tomcat/lib]$ ldd libtcnative-1.so
libssl.so.6 = /lib64/libssl.so.6 (0x2affd1727000)
libcrypto.so.6 = /lib64/libcrypto.so.6 (0x2affd197)
libapr-1.so.0 = /usr/local/apr/lib/libapr-1.so.0
(0x2affd1cb8000)
librt.so.1 = /lib64/librt.so.1 (0x2affd1ee2000)
libcrypt.so.1 = /lib64/libcrypt.so.1 (0x2affd20eb000)
libpthread.so.0 = /lib64/libpthread.so.0 (0x2affd2323000)
libdl.so.2 = /lib64/libdl.so.2 (0x2affd253e000)
libc.so.6 = /lib64/libc.so.6 (0x2affd2742000)
libgssapi_krb5.so.2 = /usr/lib64/libgssapi_krb5.so.2
(0x2affd2a95000)
libkrb5.so.3 = /usr/lib64/libkrb5.so.3 (0x2affd2cc4000)
libcom_err.so.2 = /lib64/libcom_err.so.2 (0x2affd2f57000)
libk5crypto.so.3 = /usr/lib64/libk5crypto.so.3 (0x2affd3159000)
libz.so.1 = /usr/lib64/libz.so.1 (0x2affd337f000)
/lib64/ld-linux-x86-64.so.2 (0x0034be40)
libkrb5support.so.0 = /usr/lib64/libkrb5support.so.0
(0x2affd3593000)
libkeyutils.so.1 = /lib64/libkeyutils.so.1 (0x2affd379c000)
libresolv.so.2 = /lib64/libresolv.so.2 (0x2affd399e000)
libselinux.so.1 = /lib64/libselinux.so.1 (0x2affd3bb3000)
libsepol.so.1 = /lib64/libsepol.so.1 (0x2affd3dcc000)

gr
Paul

On Wed, Nov 12, 2008 at 4:50 PM, Mladen Turk [EMAIL PROTECTED] wrote:

 Paul van Beukering wrote:

 Hello Milan and Mladen,

 See here the libraries that are created:

 -rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
 lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
 libtcnative-1.so.0.1.14
 lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
 libtcnative-1.so.0.1.14
 -rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
 -rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
 drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

 I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
 below. Still the same message is shown in the log.


 OK, if they are in the LD_LIBRARY_PATH
 what is the output from
 ldd libtcnative-1.so



 Regards
 --
 ^(TM)

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




RE: Tomcat 6 startup error

2008-11-12 Thread Caldarale, Charles R
 From: rajesh202023 [mailto:[EMAIL PROTECTED]
 Subject: Tomcat 6 startup error

 I am getting the following error when I try to start Tomcat 6.

What exact version of Tomcat?

What JVM are you using?

Which version of Windows are you using?

Supplying adequate information and being precise will get you answers; asking 
for something ASAP will only annoy.  If you want help ASAP, pay for it.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Milan Cvejic

Try creating new file in /etc/ld.so.conf.d
name it custom.conf or something.conf and add line

/usr/local/apr/lib

in that file. Then run ldconfig
and try to restart tomcat.

Paul van Beukering wrote:

Hi Mladen

The output is:
[EMAIL PROTECTED]:/home/belpop/tomcat/lib]$ ldd libtcnative-1.so
libssl.so.6 = /lib64/libssl.so.6 (0x2affd1727000)
libcrypto.so.6 = /lib64/libcrypto.so.6 (0x2affd197)
libapr-1.so.0 = /usr/local/apr/lib/libapr-1.so.0
(0x2affd1cb8000)
librt.so.1 = /lib64/librt.so.1 (0x2affd1ee2000)
libcrypt.so.1 = /lib64/libcrypt.so.1 (0x2affd20eb000)
libpthread.so.0 = /lib64/libpthread.so.0 (0x2affd2323000)
libdl.so.2 = /lib64/libdl.so.2 (0x2affd253e000)
libc.so.6 = /lib64/libc.so.6 (0x2affd2742000)
libgssapi_krb5.so.2 = /usr/lib64/libgssapi_krb5.so.2
(0x2affd2a95000)
libkrb5.so.3 = /usr/lib64/libkrb5.so.3 (0x2affd2cc4000)
libcom_err.so.2 = /lib64/libcom_err.so.2 (0x2affd2f57000)
libk5crypto.so.3 = /usr/lib64/libk5crypto.so.3 (0x2affd3159000)
libz.so.1 = /usr/lib64/libz.so.1 (0x2affd337f000)
/lib64/ld-linux-x86-64.so.2 (0x0034be40)
libkrb5support.so.0 = /usr/lib64/libkrb5support.so.0
(0x2affd3593000)
libkeyutils.so.1 = /lib64/libkeyutils.so.1 (0x2affd379c000)
libresolv.so.2 = /lib64/libresolv.so.2 (0x2affd399e000)
libselinux.so.1 = /lib64/libselinux.so.1 (0x2affd3bb3000)
libsepol.so.1 = /lib64/libsepol.so.1 (0x2affd3dcc000)

gr
Paul

On Wed, Nov 12, 2008 at 4:50 PM, Mladen Turk [EMAIL PROTECTED] wrote:

  

Paul van Beukering wrote:



Hello Milan and Mladen,

See here the libraries that are created:

-rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
libtcnative-1.so.0.1.14
-rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
-rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
below. Still the same message is shown in the log.


  

OK, if they are in the LD_LIBRARY_PATH
what is the output from
ldd libtcnative-1.so



Regards
--
^(TM)

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Session replication for JPetStore application in tomcat 6

2008-11-12 Thread Anupam Beri

Hello  Filip,
Thanks a lot for your reply. From the logs , the session state send is
evident .The scenario i tried is as follows 

 I opened the application  web page on the first node via my browser ,
logged in , did some operations like some additions and modifications. I
displayed the items in the cart .
 
Then I opened the same application web page on the second node via browser
and tried to display the items in the cart and it said that the Cart is
empty .

I had a few questions ...

1) how can I know if session replication is happening i.e any special
debugging can be enabled in log4j ? (from above scenario , the items in the
cart should be the same ? can this be the criteria ?)

2) Is it necessary to make the petstore database on each of nodes clustered
for session replication to happen ?

I wish to do some load testing too with jmeter to see how the load is
distributed between workers.

Any help will be greatefully appreciated !

Best Regards,
Anupam


 




Filip Hanik - Dev Lists wrote:
 
 looks like its working, what is it that you don't think is working or 
 would like help with?
 
 6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
 getAllClusterSessions
 ATTENTION: Manager [localhost#/jpetstore], requesting session state from 
 org.apache.catalina.tribes.membership.MemberImpl[tcp://{-84, 17, 4, 
 14}:4000,{-84, 17, 4, 14},4000, alive=276200,id={44 8 -106 78 -12 88 70 
 -91 -126 47 21 -83 -67 102 67 -94 }, payload={}, command={}, domain={}, 
 ]. This operation will timeout if no session state has been received 
 within 60 seconds.
 6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
 waitForSendAllSessions
 INFO: Manager [localhost#/jpetstore]; session state send at 06/11/08 
 17:08 received in 112 ms.
 
 Filip
 
 Anupam Beri wrote:
 Hello All ,
I am a newbie to the Tomcat and Tomcat clustering
 environment .I was just going through some posts on this forum for
 reference
 .
 I wish to deploy the classic JPetStore application which comes with the
 Spring framework in the clustered environment involving 2 machines for
 session replication

 For this, I installed Apache 2.2 , Tomcat 6.0.18 and mod_jk on each of
 these
 machines . I configured mod_jk load balancer for sticky session and
 deployed
 JPetStore on either of them .
 But once I start tomcat and apache on either machine and try to do some
 transactions , I cannot see any sessions being exchanged between the two
 members of the cluster.

 The JPetStore application also uses a database (hsqldb) and its necessary
 to
 start one on either machine (it is not a shared one).

 I was reading some documentation regarding if the session attributes are
 to
 be implemented from serializable interface...but I see they already have
 been in the source code .

 I will be greateful if anyone could help me out and give a  good insight
 on
 where I am going wrong ?
 I have attached the server.xml , workers.properties and catalina.out for
 the
 two nodes in the attached file.
 Any help is deeply appreciated !

 Best Regards !!
 Anupam

 http://www.nabble.com/file/p20456399/clustering_files.rar
 clustering_files.rar 
   
 
 
 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 
 

-- 
View this message in context: 
http://www.nabble.com/Session-replication-for-JPetStore-application-in-tomcat-6-tp20456399p20464726.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: tomcat 5.5 memory

2008-11-12 Thread Alberto Jesus La Rosa Agramonte
Thanks you very much...

2008/11/12 Christopher Schultz [EMAIL PROTECTED]:
 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Alberto,

 Alberto Jesus La Rosa Agramonte wrote:
 [is ~25 Java processes normal for Tomcat?]

 Yes. Most UNIX/Linux variants display individual threads as processes.
 This means that you have around 25 threads within the JVM. What kernel
 version are you running? Recent Linux kernels do not show all these
 threads as processes, but rather show just the master process once.

 Try running ps with the '-f' (forest) switch which will show you
 relationships between processes. You'll see that there's a main process
 and many sub-processes which represent the threads.

 There's nothing to worry about, here: the threads don't really take up
 7MB a piece. A lot of this memory is shared between the threads.

 - -chris

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

 iEYEARECAAYFAkkaAk4ACgkQ9CaO5/Lv0PCmfgCgur8AjS2uzip+XukrpWWyaq1e
 TasAnjA+MHS+ERe3XGUfB2Sl5/05qdsT
 =IaPN
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: clustering

2008-11-12 Thread Alberto Jesus La Rosa Agramonte
Apache is the load balancer???

2008/11/12 Filip Hanik - Dev Lists [EMAIL PROTECTED]:
 you're missing the membership elelemnt

 Membership

 className=org.apache.catalina.cluster.mcast.McastService
 mcastAddr=228.0.0.4
  mcastBindAddress=127.0.0.1
mcastClusterDomain=d10
 mcastPort=45564
mcastFrequency=1000
 mcastDropTime=3
   recoveryCounter=10
   recoveryEnabled=true
 recoverySleepTime=5000/
 http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html

 John Coleman wrote:

 Hi,

 I am trying to set up load balancing and clustering, but whenever I put
 in a request to the lb server I get:

 java.lang.IllegalArgumentException: Required property
 mcastClusterDomain is missing.
at
 org.apache.catalina.cluster.mcast.McastService.hasProperty(McastService.
 java:253)
at
 org.apache.catalina.cluster.mcast.McastService.setProperties(McastServic
 e.java:141)
at common.utilities.ServerUtil.isServerAlive(ServerUtil.java:36)
at
 org.apache.webapp.balancer.rules.BaseLoadBalancingRule.isServerAlive(Bas
 eLoadBalancingRule.java:89)
at
 org.apache.webapp.balancer.rules.RandomRedirectRule.matches(RandomRedire
 ctRule.java:41)
at
 org.apache.webapp.balancer.RuleChain.evaluate(RuleChain.java:101)
at
 org.apache.webapp.balancer.BalancerFilter.doFilter(BalancerFilter.java:1
 19)
at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
 tionFilterChain.java:215)
at
 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt
 erChain.java:188)
at
 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
 e.java:213)
at
 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
 e.java:174)
at
 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
 :127)
at
 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
 :117)
at
 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
 java:108)
at
 org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve
 .java:347)
at
 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:1
 51)
at
 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:87
 4)

 I've looked at source code and config, and this property is always set!

 My server.xml files look like this:

  Server port=8005
 shutdown=SHUTDOWN 
GlobalNamingResources
Resource  name=UserDatabase auth=Container
   type=org.apache.catalina.UserDatabase
description=User database that can be updated and
 saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
pathname=conf/tomcat-users.xml /
  /GlobalNamingResources
Service  name=Catalina
Connectorport=8009
 enableLookups=false
  redirectPort=8443
 debug=0
  protocol=AJP/1.3/
   Connector port=8080
maxThreads=150
   minSpareThreads=25
   maxSpareThreads=75
 enableLookups=false
  redirectPort=8443
   acceptCount=100
 debug=0
 connectionTimeout=2  disableUploadTimeout=true
 /
  Enginename=Catalina
  defaultHost=localhost   jvmRoute=node01
  Realm
 className=org.apache.catalina.realm.UserDatabaseRealm
   resourceName=UserDatabase /
  Cluster
 className=org.apache.catalina.cluster.tcp.SimpleTcpCluster
  managerClassName=org.apache.catalina.cluster.session.DeltaManager
   expireSessionsOnShutdown=false
   useDirtyFlag=true
  Receiver
  className=org.apache.catalina.cluster.tcp.ReplicationListener
   tcpListenAddress=127.0.0.1
  tcpListenPort=4000
 tcpSelectorTimeout=100
 tcpThreadCount=6/

Sender
 className=org.apache.catalina.cluster.tcp.ReplicationTransmitter
replicationMode=pooled/

Valve
 className=org.apache.catalina.cluster.tcp.ReplicationValve
  filter=.*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;/
/Cluster

Host  name=localhost
appBase=webapps/
/Engine
/Service
 /Server

 Has anyone cracked this error please? I have tried with 5.5-17 and
 5.5-25 tomcats, 

Re: Tomcat threads, II

2008-11-12 Thread André Warnier

Caldarale, Charles R wrote:

From: André Warnier [mailto:[EMAIL PROTECTED]
Subject: Tomcat threads, II


 -Djava.security.manager

 Enabling the security manager slows things down; do you really need it?


Not as far as I know. It was only the default setting on that system, 
from the (non-official) Tomcat5.5 Debian package.  I have turned it off 
now, and restarted Tomcat, but it did not have any noticeable impact on 
the startup time.



-classpath :/usr/lib/jvm/java-1.5.0-sun/jre//lib/jcert.jar:
/usr/lib/jvm/java-1.5.0-sun/jre//lib/jnet.jar:
/usr/lib/jvm/java-1.5.0-sun/jre//lib/jsse.jar:
/usr/share/tomcat5.5/bin/bootstrap.jar:
/usr/share/tomcat5.5/bin/commons-logging-api.jar


The classpath above is very wrong: no jars from jre/lib should *ever* be on the 
classpath.  Those jars are already on the JVM's bootclasspath and will at best 
be ignored anywhere else.  Their presence will at a minimum slow down Tomcat 
initialization.

Also, the commons-logging-api.jar should not be on the classpath; Tomcat finds 
that all by itself, based on entries in the bootstrap.jar manifest.  If you 
need commons-logging for a webapp, it should be in the webapp's WEB-INF/lib 
directory, not on classpath.

Finally, the leading colon on the classpath shouldn't be there, but it appears 
to do little harm.



Now that is another story.
As far as I can tell, these settings come from the catalina.sh script.
I have no idea if this script is modified, compared to the Official version.
It looks like it covers several platforms though, so I doubt that it is 
specifically from the Debian packager.

I attach it for inspection.

Now I'll try what you indicate above, gradually removing selected 
portions, tell you later what it does to my system.

...
Well, it seems to have survived (apart from bootstrap.jar, which I had 
to leave), and now runs as


tomcat55  8106 1 97 119903 196100 0 17:54 pts/200:04:56 
/usr/lib/jvm/java-1.5.0-sun/bin/java -Djava.awt.headless=true -Xmx256M 
-server -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed 
-classpath :/usr/share/tomcat5.5/bin/bootstrap.jar 
-Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5 
-Djava.io.tmpdir=/var/lib/tomcat5.5/temp 
org.apache.catalina.startup.Bootstrap start


But that did not apparently reduce its startup time much.
If anything, it seems now to occupy more memory than before :

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 8106 tomcat55  25   0  485m 202m  12m S  0.0 40.1   6:22.38 java

Against before :

  PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
 2864 tomcat55  25   0  482m 188m  12m S  0.0 37.4   6:46.74 java

Is there an explanation for that ?
As far as I know, the same applications are loaded as last time.

I also don't seem to be able to run JConsole.  I am connecting to that 
system via a terminal-like SSH connection only.

[EMAIL PROTECTED]:/usr/share/tomcat5.5/bin# jconsole
Exception in thread AWT-EventQueue-0 java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation 
which requires it.
at 
java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)

etc...

Is there a way around this ?


#!/bin/sh
# -
# Start/Stop Script for the CATALINA Server
#
# Environment Variable Prequisites
#
#   CATALINA_HOME   May point at your Catalina build directory.
#
#   CATALINA_BASE   (Optional) Base directory for resolving dynamic portions
#   of a Catalina installation.  If not present, resolves to
#   the same directory that CATALINA_HOME points to.
#
#   CATALINA_OPTS   (Optional) Java runtime options used when the start,
#   stop, or run command is executed.
#
#   CATALINA_TMPDIR (Optional) Directory path location of temporary directory
#   the JVM should use (java.io.tmpdir).  Defaults to
#   $CATALINA_BASE/temp.
#
#   JAVA_HOME   Must point at your Java Development Kit installation.
#   Required to run the with the debug or javac argument.
#
#   JRE_HOMEMust point at your Java Development Kit installation.
#   Defaults to JAVA_HOME if empty.
#
#   JAVA_OPTS   (Optional) Java runtime options used when the start,
#   stop, or run command is executed.
#
#   JPDA_TRANSPORT  (Optional) JPDA transport used when the jpda start
#   command is executed. The default is dt_socket.
#
#   JPDA_ADDRESS(Optional) Java runtime options used when the jpda start
#   command is executed. The default is 8000.
#
#   JSSE_HOME   (Optional) May point at your Java Secure Sockets Extension
#   (JSSE) installation, whose JAR files will be added to the
#   system class path used to start Tomcat.
#
#   CATALINA_PID(Optional) Path of the file which should 

Re: Tomcat Performance

2008-11-12 Thread David kerber

Peng Tuck Kwok wrote:

Probably the reason why he's seeing one instance of tomcat moving quicker
than 2 instances is the fact that there is some form of contention for
resources on that single machine assuming that the 2 instances are
configured identically in every aspect (other than ports).
  
You mis-read it.  He's seeing twice the performance from two instances 
than he is one single one, which shouldn't be if the one is properly 
configured, (with the exception noted below).


D


The idea is not to give you a 0-60 mph capability with 2 tomcats on a single
box (partition) but to give you better throughput. As I understand it, when
you start getting more load, you'd be able to handle the requests in a
linear fashion (again assuming you've sized the 2 or more instances
correctly).

*I would rarely recommend that a client run parallel app servers on the
  

same machine for the same application for any purposes other than being
able to switch between versions of the same application (say, for
zero-downtime upgrade strategy).


*I wouldn't recommend anyone do that just to switch versions for a zero
downtime upgrade strategy as well. Some sort of DR would be better for this
? Down production and switch to DR then when upgrades are complete just
reverse what has been done.

*Since the OP didn't say that's what his
  

requirements were, there doesn't seem to be a compelling reason to use
this strategy.


*You're right, until we really know what his requirements/KPI's on that are
then most of this is largely academic.

Nishi, the link to the redbook is here
http://www.redbooks.ibm.com/abstracts/sg246392.html?Open .
It's websphere specific, but there's still lot of things you can pick up on
and probably apply.

On Wed, Nov 12, 2008 at 5:15 AM, Christopher Schultz 
[EMAIL PROTECTED] wrote:

  

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Pengtuck,

[EMAIL PROTECTED] wrote:


So let me get this straight. You are reluctant to accept a
configuration which gives you improved throughput ? :P
  

No, the OP is unwilling to use a configuration that doesn't make any
sense: one single Tomcat should outperform two Tomcats on the same
physical server (unless you are talking about a 32-bit JVM that needs a
lot of memory).



Anyway, this is not an unusual approach, from what I understand this
simply makes full use of the resources available on that machine. Not
uncommon in real world to see app servers like websphere being
configured in that manner.
  

I would rarely recommend that a client run parallel app servers on the
same machine for the same application for any purposes other than being
able to switch between versions of the same application (say, for
zero-downtime upgrade strategy). Since the OP didn't say that's what his
requirements were, there doesn't seem to be a compelling reason to use
this strategy.

- -chris





-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Paul van Beukering
Hi Mladen,

Did what you told me to do but the song remains the same.

[EMAIL PROTECTED]:/root]# ldconfig -v
/usr/local/apr/lib:
libtcnative-1.so.0 - libtcnative-1.so.0.1.15
libaprutil-1.so.0 - libaprutil-1.so.0.3.4
libexpat.so.0 - libexpat.so.0.1.0
libapr-1.so.0 - libapr-1.so.0.3.3


and than restarted tomcat.

Nov 12, 2008 6:30:35 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
/usr/jdk1.6.0_10/jre/lib/i386/server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/home/belpop/tomcat/lib:/usr/local/apr/lib:/usr/local/apr:/usr/java/packages/lib/i386:/lib:/usr/lib


Paul

On Wed, Nov 12, 2008 at 6:04 PM, Milan Cvejic [EMAIL PROTECTED]wrote:

 Try creating new file in /etc/ld.so.conf.d
 name it custom.conf or something.conf and add line

 /usr/local/apr/lib

 in that file. Then run ldconfig
 and try to restart tomcat.


 Paul van Beukering wrote:

 Hi Mladen

 The output is:
 [EMAIL PROTECTED]:/home/belpop/tomcat/lib]$ ldd libtcnative-1.so
libssl.so.6 = /lib64/libssl.so.6 (0x2affd1727000)
libcrypto.so.6 = /lib64/libcrypto.so.6 (0x2affd197)
libapr-1.so.0 = /usr/local/apr/lib/libapr-1.so.0
 (0x2affd1cb8000)
librt.so.1 = /lib64/librt.so.1 (0x2affd1ee2000)
libcrypt.so.1 = /lib64/libcrypt.so.1 (0x2affd20eb000)
libpthread.so.0 = /lib64/libpthread.so.0 (0x2affd2323000)
libdl.so.2 = /lib64/libdl.so.2 (0x2affd253e000)
libc.so.6 = /lib64/libc.so.6 (0x2affd2742000)
libgssapi_krb5.so.2 = /usr/lib64/libgssapi_krb5.so.2
 (0x2affd2a95000)
libkrb5.so.3 = /usr/lib64/libkrb5.so.3 (0x2affd2cc4000)
libcom_err.so.2 = /lib64/libcom_err.so.2 (0x2affd2f57000)
libk5crypto.so.3 = /usr/lib64/libk5crypto.so.3
 (0x2affd3159000)
libz.so.1 = /usr/lib64/libz.so.1 (0x2affd337f000)
/lib64/ld-linux-x86-64.so.2 (0x0034be40)
libkrb5support.so.0 = /usr/lib64/libkrb5support.so.0
 (0x2affd3593000)
libkeyutils.so.1 = /lib64/libkeyutils.so.1 (0x2affd379c000)
libresolv.so.2 = /lib64/libresolv.so.2 (0x2affd399e000)
libselinux.so.1 = /lib64/libselinux.so.1 (0x2affd3bb3000)
libsepol.so.1 = /lib64/libsepol.so.1 (0x2affd3dcc000)

 gr
 Paul

 On Wed, Nov 12, 2008 at 4:50 PM, Mladen Turk [EMAIL PROTECTED] wrote:



 Paul van Beukering wrote:



 Hello Milan and Mladen,

 See here the libraries that are created:

 -rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
 lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
 libtcnative-1.so.0.1.14
 lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
 libtcnative-1.so.0.1.14
 -rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
 -rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
 drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

 I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
 below. Still the same message is shown in the log.




 OK, if they are in the LD_LIBRARY_PATH
 what is the output from
 ldd libtcnative-1.so



 Regards
 --
 ^(TM)

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]









 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




Re: log POST data

2008-11-12 Thread André Warnier

Christopher Schultz wrote:

-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus,

Markus Reis wrote:


Pardon me for butting in where I'm obviously outclassed, consider this 
as a genuine question :


Would what Markus wants to do not be easier to do with a servlet filter ?
It would also be a per-application thing, rather than a 
one-size-fits-all, no ?




-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Session replication for JPetStore application in tomcat 6

2008-11-12 Thread Filip Hanik - Dev Lists

you could enable tracing for the two following categories

org.apache.catalina.ha
org.apache.catalina.tribes.MESSAGES

Filip

Anupam Beri wrote:

Hello  Filip,
Thanks a lot for your reply. From the logs , the session state send is
evident .The scenario i tried is as follows 

 I opened the application  web page on the first node via my browser ,
logged in , did some operations like some additions and modifications. I
displayed the items in the cart .
 
Then I opened the same application web page on the second node via browser

and tried to display the items in the cart and it said that the Cart is
empty .

I had a few questions ...

1) how can I know if session replication is happening i.e any special
debugging can be enabled in log4j ? (from above scenario , the items in the
cart should be the same ? can this be the criteria ?)

2) Is it necessary to make the petstore database on each of nodes clustered
for session replication to happen ?

I wish to do some load testing too with jmeter to see how the load is
distributed between workers.

Any help will be greatefully appreciated !

Best Regards,
Anupam


 





Filip Hanik - Dev Lists wrote:
  
looks like its working, what is it that you don't think is working or 
would like help with?


6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
getAllClusterSessions
ATTENTION: Manager [localhost#/jpetstore], requesting session state from 
org.apache.catalina.tribes.membership.MemberImpl[tcp://{-84, 17, 4, 
14}:4000,{-84, 17, 4, 14},4000, alive=276200,id={44 8 -106 78 -12 88 70 
-91 -126 47 21 -83 -67 102 67 -94 }, payload={}, command={}, domain={}, 
]. This operation will timeout if no session state has been received 
within 60 seconds.
6 nov. 2008 17:08:30 org.apache.catalina.ha.session.DeltaManager 
waitForSendAllSessions
INFO: Manager [localhost#/jpetstore]; session state send at 06/11/08 
17:08 received in 112 ms.


Filip

Anupam Beri wrote:


Hello All ,
   I am a newbie to the Tomcat and Tomcat clustering
environment .I was just going through some posts on this forum for
reference
.
I wish to deploy the classic JPetStore application which comes with the
Spring framework in the clustered environment involving 2 machines for
session replication

For this, I installed Apache 2.2 , Tomcat 6.0.18 and mod_jk on each of
these
machines . I configured mod_jk load balancer for sticky session and
deployed
JPetStore on either of them .
But once I start tomcat and apache on either machine and try to do some
transactions , I cannot see any sessions being exchanged between the two
members of the cluster.

The JPetStore application also uses a database (hsqldb) and its necessary
to
start one on either machine (it is not a shared one).

I was reading some documentation regarding if the session attributes are
to
be implemented from serializable interface...but I see they already have
been in the source code .

I will be greateful if anyone could help me out and give a  good insight
on
where I am going wrong ?
I have attached the server.xml , workers.properties and catalina.out for
the
two nodes in the attached file.
Any help is deeply appreciated !

Best Regards !!
Anupam

http://www.nabble.com/file/p20456399/clustering_files.rar
clustering_files.rar 
  
  

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat Performance

2008-11-12 Thread Leon Rosenberg
On Wed, Nov 12, 2008 at 2:26 PM, David kerber [EMAIL PROTECTED] wrote:
 Peng Tuck Kwok wrote:

 Probably the reason why he's seeing one instance of tomcat moving quicker
 than 2 instances is the fact that there is some form of contention for
 resources on that single machine assuming that the 2 instances are
 configured identically in every aspect (other than ports).


 You mis-read it.  He's seeing twice the performance from two instances than
 he is one single one, which shouldn't be if the one is properly configured,

Or if the application has synchronization/blocking issues.
Leon

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread Markus Reis
 André Warnier wrote:
  Markus Reis wrote:
  Our Tomcat 5.5 sends 30 cookie
  (cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  domain=null; path=/)
  Are they all identical?
 
  No. They are ALL different (and they also differ from response to
  response)
 
  and 900 Set-Cookie
 
 (header=Set-Cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  Path=/; Secure) headers in the http response header back to the
  external clients (during the initial http request/response).
  Same here: identical?
 
  No. Each of the 30 DIFFERENT session id's from above are repeated
  thirty times.
 
  The 900 Set-Cookie headers contain each cookie JSESSIONID thirty
  times.
  That is crazy! How are you observing this behavior?
 LiveHTTPHeaders/http
  protocol sniffer? Wireshark/packet sniffer?
 
  Yes it is crazy - I observed this using
  org.apache.catalina.valves.RequestDumperValve in my server.xml
 
  If I submit the same request from my machine I get a only/as expected
  one cookie and one Set-Cookie header back in the initial response.
  Er... what do you mean from my machine? What are you using when you
  get 900 Set-Cookie headers?
 
  My machine is my PC at work. The requests where a repsonse with 900
  SetCookie headers is returned, are sent from PC's of our partners,
  which operate in one single network (and thus all have the same IP,
  which is the IP of the partner network's proxy server). If I use some
  other PC connected to the internet I have the same expected behaviour
  as from my PC at work. So those responses are only/exclusively
  produced for requests coming from PC's of our partners.
 
  markus
  Old African proverb : he who wants to eat an elephant, should do it a
  little bit at a time.
  
  I am not basing the following on any deep knowledge of Tomcat, just
  trying to use the logical cues from what you said so far and the way
  HTTP servers and browsers normally react.
  
  1) How do you *precisely* know that Tomcat is actually sending 900
  Set-Cookie Headers ? does the RequestDumperValve also dump the response
  ? or is that what you see in the client browser ?
  In other words, are you really sure that it is Tomcat who is sending all
  these Set-Cookie headers, or could it be the customer's proxy
  adding/multiplying them ? (Not that I would know how it could do that,
  but that's another matter)
  
  2) The client browser gets 900 Set-Cookie headers, of which the basic
  set of different ones is 30, each multiplied 30 times.
  So the client browser ends up with 30 cookies set ?
  Or just one, in the end ?
  
  3) Does this number 30 relate in some way to how many separate stations
  at your customer access your Tomcat server ?
  For example, assuming that there would be a way to reset everything,
  and then turn on a single customer station, and access your Tomcat
  server once, how many Set-cookies would that one browser get in return ?
  And then, what if a second station now sends a request ?
 
 As a test, why don't you set a cookie on each client PC, (containing a
 unique identifier, perhaps a username or something else that will
 identify individual PCs or users), to see if that gets multiplied back
 to you too.  If it does, you may discern more about the pattern of
 failure.

I only get those 900 Set-Cookie headers after/at the initial request; 
Subsequent requests only have one cookie in http request and response header 
and look pretty normal.
-- 
GMX Download-Spiele: Preizsturz! Alle Puzzle-Spiele Deluxe über 60% billiger.
http://games.entertainment.gmx.net/de/entertainment/games/download/puzzle/index.html

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Apache/mod_jk serves random files from tomcat

2008-11-12 Thread Rainer Jung
Jakob Ericsson schrieb:
 
 
 -- 
 Jakob Ericsson
 +46 704 533 627
 
 11 nov 2008 kl. 22.37 skrev Christopher Schultz
 [EMAIL PROTECTED]:
 
 Jakob,
 
 Jakob Ericsson wrote:
 We are also experiencing this problem.
 Our setup is running Windows 2003 Server with Apache 2.0.59 (no
 prefork),
 mod_jk 1.2.22 and Apache Tomcat/6.0.13.

 Will upgrading to latest mod_proxy_ajp in Apache httpd 2.2.X solve this
 problem?
 
 If you're willing to donate some time to this, please stick with mod_jk
 and work with Rainer/Mladen to fix whatever might be wrong. Upgrading to
 the latest mod_jk is a definite requirement before you continue testing.
 
 We are in the process of updating our system to the latest mod_jk. I
 will give an update if this solves our problem.
 The underlying problem is hopefully the missed multi thread flag in
 mod_jk compile.
 Does anyone know which issue this is in bugzilla?

On Woindows I would not expext that to be the problem. mod_jk tries to
determine automatically during compile time, whether a multi-threaded
environment gets used and then enables thread safe mutexes.

On some more exotic platforms like AIX this determination was broken for
some time, so some versions ago we decided to compile thread-safe by
default and add a new flag to configure to allow compiling without
thread support if you give the flag explicitely.

On Windows it should have been always thread safe.

Nevertheless I appreciate you update first. In case you can reproduce
the behaviour, it would be extremely helpful to have a JK log file with
debug log level. Unfortunately that is a problem for production because
of the high log volume. So if you can reproduce it easily, or when only
reproducibale under load othen on a test system, a debug level JK log
would be extremely helpful. You can make that available also only privately.

I took your mail as a reminder to ask Tim Redding again for his log but
did not yet get any response.

Regards,

Rainer

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Adam Gordon
We're running two Tomcat (5.5.16) instances in a load-balanced capacity 
behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us to not 
just check to see if the Tomcat Java processes are still running (that's 
easy) but to actually connect to each web server (either independently 
or via the load-balancer) and verify that a certain page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we don't 
know of a way to force the load-balancer to go to a certain Tomcat 
instance.  Additionally, we don't know how to speak mod j/k so we can't 
fake a direct connection to each Tomcat instance.


Does anyone know of a way or a product (commercial or open-source) to 
achieve this?


Thanks,

--adam

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Alberto Jesus La Rosa Agramonte
application manager, is not free, but with the trial licence you can
work with all the functionalities.

bye

2008/11/13 Adam Gordon [EMAIL PROTECTED]:
 We're running two Tomcat (5.5.16) instances in a load-balanced capacity
 behind an Apache server (2.0.55 w/ mod j/k 1.2.14).

 We'd like to set up some sort of monitoring that would allow us to not just
 check to see if the Tomcat Java processes are still running (that's easy)
 but to actually connect to each web server (either independently or via the
 load-balancer) and verify that a certain page can be returned.

 Since we're connecting to Tomcat via an Apache load-balancer, we don't know
 of a way to force the load-balancer to go to a certain Tomcat instance.
  Additionally, we don't know how to speak mod j/k so we can't fake a direct
 connection to each Tomcat instance.

 Does anyone know of a way or a product (commercial or open-source) to
 achieve this?

 Thanks,

 --adam

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Best Linux JVM to use for Tomcat?

2008-11-12 Thread Pierre Goupil
Guys,

Anything to say regarding JRockIt ? Is it still under development ?

Regards,

Pierre



On Wed, Nov 12, 2008 at 5:53 PM, Leon Rosenberg 
[EMAIL PROTECTED] wrote:

 On Wed, Nov 12, 2008 at 5:34 PM, Dan Armbrust
 [EMAIL PROTECTED] wrote:
  Well, I don't know about always.  I have yet to find a 1.6 JDK from
  Sun that is even close to stable.  With heavy use (especially heavy
  multithreaded use), we have found that all of the available 1.6 JDK's
  segfault.

 hmm, what kind of heavy use?
 We are using java version 1.6.0_05 for I think 6 Month now (since
 end of march 08) and we had not a single issue with it and found it
 better than 1.5.
 Considering that the whole 1.6 release was maintenance and performance
 release I would be surprised otherwise. It's actually first time I
 hear omeone complaining about 1.6

 Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
 Java HotSpot(TM) 64-Bit Server VM (build 10.0-b19, mixed mode)


 Leon

 P.S. We are running about 70 VMs on about 20 machines with top
 services serving ~3000 requests per second and more with about 1000
 threads.

 
  The latest JDK (1.6 update 10) is less than a month old - and it is a
  huge change set from the previous 1.6 release (1.6 update 7).  I
  wouldn't even think about it for production given Sun's history of
  releasing crappy code.
 
  1.6 update 10 should have been a major version change given the scope
  of changes (see -
  http://java.sun.com/javase/6/webnotes/ReleaseNotes.html )
 
  We still use the latest 1.5 JVM / JDKs.  Not that we want to.  There
  is just nothing else out there that doesn't crash under our workload.
 
  -
  To start a new topic, e-mail: users@tomcat.apache.org
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED]
 
 

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-- 
Parce que c'est la nuit qu'il est beau de croire en la lumière.


Re: Tomcat threads

2008-11-12 Thread Ronald Klop




Op woensdag, 12 november 2008 om 9:56 uur schreef Tomcat Users List 
users@tomcat.apache.org:


Subject: Re: Tomcat threads
Date: Wed Nov 12 09:56:01 CET 2008
From: André Warnier [EMAIL PROTECTED]
Filip Hanik .. and many others - Dev Lists wrote:
[...]
Thanks for all the answers, very enlightening.
In summary thus :
- Tomcat (or rather I suppose the Connector) will create new threads as needed 
to service simultaneous requests, up to the number given in the Connector's 
maxThreads attributes.
- Once such a thread is created, it remains alive after servicing the request 
for which it was created, and can thus service future requests
- The memory usage one sees with top under some versions of Linux for each 
one of these threads is not really cumulative, because most of it is actually shared 
between the threads.  The total really used is only slightly more than what is indicated 
individually for each thread.
In other words, after the first thread is created, each additional thread only 
adds a relatively small overhead.


Now let me elaborate one step further, and let me know if this is correct :

If in a Tomcat I have one HTTP Connector and one AJP Connector (used with 
mod_jk), they are two distinct Connectors. (I don't really expect dissent here, 
but who knows ?)

Each one will create new threads as needed to service requests on *that* 
Connector, independently of the other Connector.

So if I access the same application (webapp) multiple times indifferently 
through one Connector or the other, this will result in two groups of threads, 
one group per Connector, each group behaving independently like indicated above 
in the summary. Right ?

If right, then it means one would do better choosing if one can, and always 
access this application through either one of the Connectors, but not both, 
right ?

Or, considering both groups are in the end executing the same webapp 
application, would the memory used by the two groups of threads end up being 
largely shared also anyway ?
 






The memory is shared between all threads within one JVM process. This is 
independent of the Connectors.

Ronald.


Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Adam Gordon

Can you please include a link?  Google is not helping...  Thanks.

Alberto Jesus La Rosa Agramonte wrote:

application manager, is not free, but with the trial licence you can
work with all the functionalities.

bye

2008/11/13 Adam Gordon [EMAIL PROTECTED]:
  

We're running two Tomcat (5.5.16) instances in a load-balanced capacity
behind an Apache server (2.0.55 w/ mod j/k 1.2.14).

We'd like to set up some sort of monitoring that would allow us to not just
check to see if the Tomcat Java processes are still running (that's easy)
but to actually connect to each web server (either independently or via the
load-balancer) and verify that a certain page can be returned.

Since we're connecting to Tomcat via an Apache load-balancer, we don't know
of a way to force the load-balancer to go to a certain Tomcat instance.
 Additionally, we don't know how to speak mod j/k so we can't fake a direct
connection to each Tomcat instance.

Does anyone know of a way or a product (commercial or open-source) to
achieve this?

Thanks,

--adam

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

  


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem install APR Tomcat Native Library on Centos 5.2

2008-11-12 Thread Milan Cvejic
It looks to me that you are using 32bit version of JDK on 64bit linux 
installation?


am i right? you are having

libraries in /lib64 and also in 
/usr/jdk1.6.0_10/jre/lib/i386


That may be problem... try installing 64bit version od JDK...


Paul van Beukering wrote:

Hi Mladen,

Did what you told me to do but the song remains the same.

[EMAIL PROTECTED]:/root]# ldconfig -v
/usr/local/apr/lib:
libtcnative-1.so.0 - libtcnative-1.so.0.1.15
libaprutil-1.so.0 - libaprutil-1.so.0.3.4
libexpat.so.0 - libexpat.so.0.1.0
libapr-1.so.0 - libapr-1.so.0.3.3


and than restarted tomcat.

Nov 12, 2008 6:30:35 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal
performance in production environments was not found on the
java.library.path:
/usr/jdk1.6.0_10/jre/lib/i386/server:/usr/jdk1.6.0_10/jre/lib/i386:/usr/jdk1.6.0_10/jre/../lib/i386:/home/belpop/tomcat/lib:/usr/local/apr/lib:/usr/local/apr:/usr/java/packages/lib/i386:/lib:/usr/lib


Paul

On Wed, Nov 12, 2008 at 6:04 PM, Milan Cvejic [EMAIL PROTECTED]wrote:

  

Try creating new file in /etc/ld.so.conf.d
name it custom.conf or something.conf and add line

/usr/local/apr/lib

in that file. Then run ldconfig
and try to restart tomcat.


Paul van Beukering wrote:



Hi Mladen

The output is:
[EMAIL PROTECTED]:/home/belpop/tomcat/lib]$ ldd libtcnative-1.so
   libssl.so.6 = /lib64/libssl.so.6 (0x2affd1727000)
   libcrypto.so.6 = /lib64/libcrypto.so.6 (0x2affd197)
   libapr-1.so.0 = /usr/local/apr/lib/libapr-1.so.0
(0x2affd1cb8000)
   librt.so.1 = /lib64/librt.so.1 (0x2affd1ee2000)
   libcrypt.so.1 = /lib64/libcrypt.so.1 (0x2affd20eb000)
   libpthread.so.0 = /lib64/libpthread.so.0 (0x2affd2323000)
   libdl.so.2 = /lib64/libdl.so.2 (0x2affd253e000)
   libc.so.6 = /lib64/libc.so.6 (0x2affd2742000)
   libgssapi_krb5.so.2 = /usr/lib64/libgssapi_krb5.so.2
(0x2affd2a95000)
   libkrb5.so.3 = /usr/lib64/libkrb5.so.3 (0x2affd2cc4000)
   libcom_err.so.2 = /lib64/libcom_err.so.2 (0x2affd2f57000)
   libk5crypto.so.3 = /usr/lib64/libk5crypto.so.3
(0x2affd3159000)
   libz.so.1 = /usr/lib64/libz.so.1 (0x2affd337f000)
   /lib64/ld-linux-x86-64.so.2 (0x0034be40)
   libkrb5support.so.0 = /usr/lib64/libkrb5support.so.0
(0x2affd3593000)
   libkeyutils.so.1 = /lib64/libkeyutils.so.1 (0x2affd379c000)
   libresolv.so.2 = /lib64/libresolv.so.2 (0x2affd399e000)
   libselinux.so.1 = /lib64/libselinux.so.1 (0x2affd3bb3000)
   libsepol.so.1 = /lib64/libsepol.so.1 (0x2affd3dcc000)

gr
Paul

On Wed, Nov 12, 2008 at 4:50 PM, Mladen Turk [EMAIL PROTECTED] wrote:



  

Paul van Beukering wrote:





Hello Milan and Mladen,

See here the libraries that are created:

-rwxr-xr-x 1 belpop belpop  872663 Nov 12 14:41 libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so.0 -
libtcnative-1.so.0.1.14
lrwxrwxrwx 1 belpop belpop  23 Nov 12 14:41 libtcnative-1.so -
libtcnative-1.so.0.1.14
-rwxr-xr-x 1 belpop belpop 920 Nov 12 14:41 libtcnative-1.la
-rw-r--r-- 1 belpop belpop 1561106 Nov 12 14:41 libtcnative-1.a
drwxr-xr-x 2 belpop belpop4096 Nov 12 16:17 pkgconfig

I did put them in LD_LIBRARY_PATH and in all the JDK directories listed
below. Still the same message is shown in the log.




  

OK, if they are in the LD_LIBRARY_PATH
what is the output from
ldd libtcnative-1.so



Regards
--
^(TM)

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]







  

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





  



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread Pid
André Warnier wrote:
 Markus Reis wrote:
 Our Tomcat 5.5 sends 30 cookie
 (cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
 domain=null; path=/)
 Are they all identical?

 No. They are ALL different (and they also differ from response to
 response)

 and 900 Set-Cookie
 (header=Set-Cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
 Path=/; Secure) headers in the http response header back to the
 external clients (during the initial http request/response).
 Same here: identical?

 No. Each of the 30 DIFFERENT session id's from above are repeated
 thirty times.

 The 900 Set-Cookie headers contain each cookie JSESSIONID thirty
 times.
 That is crazy! How are you observing this behavior? LiveHTTPHeaders/http
 protocol sniffer? Wireshark/packet sniffer?

 Yes it is crazy - I observed this using
 org.apache.catalina.valves.RequestDumperValve in my server.xml

 If I submit the same request from my machine I get a only/as expected
 one cookie and one Set-Cookie header back in the initial response.
 Er... what do you mean from my machine? What are you using when you
 get 900 Set-Cookie headers?

 My machine is my PC at work. The requests where a repsonse with 900
 SetCookie headers is returned, are sent from PC's of our partners,
 which operate in one single network (and thus all have the same IP,
 which is the IP of the partner network's proxy server). If I use some
 other PC connected to the internet I have the same expected behaviour
 as from my PC at work. So those responses are only/exclusively
 produced for requests coming from PC's of our partners.

 markus
 Old African proverb : he who wants to eat an elephant, should do it a
 little bit at a time.
 
 I am not basing the following on any deep knowledge of Tomcat, just
 trying to use the logical cues from what you said so far and the way
 HTTP servers and browsers normally react.
 
 1) How do you *precisely* know that Tomcat is actually sending 900
 Set-Cookie Headers ? does the RequestDumperValve also dump the response
 ? or is that what you see in the client browser ?
 In other words, are you really sure that it is Tomcat who is sending all
 these Set-Cookie headers, or could it be the customer's proxy
 adding/multiplying them ? (Not that I would know how it could do that,
 but that's another matter)
 
 2) The client browser gets 900 Set-Cookie headers, of which the basic
 set of different ones is 30, each multiplied 30 times.
 So the client browser ends up with 30 cookies set ?
 Or just one, in the end ?
 
 3) Does this number 30 relate in some way to how many separate stations
 at your customer access your Tomcat server ?
 For example, assuming that there would be a way to reset everything,
 and then turn on a single customer station, and access your Tomcat
 server once, how many Set-cookies would that one browser get in return ?
 And then, what if a second station now sends a request ?

As a test, why don't you set a cookie on each client PC, (containing a
unique identifier, perhaps a username or something else that will
identify individual PCs or users), to see if that gets multiplied back
to you too.  If it does, you may discern more about the pattern of failure.

p



 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread Markus Reis
 Markus Reis wrote:
  Our Tomcat 5.5 sends 30 cookie
  (cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  domain=null; path=/)
  Are they all identical?
  
  No. They are ALL different (and they also differ from response to
 response)
  
  and 900 Set-Cookie
  (header=Set-Cookie=JSESSIONID=2D79FB71207A83A09B32677B9640693E.jbprod;
  Path=/; Secure) headers in the http response header back to the
  external clients (during the initial http request/response).
  Same here: identical?
  
  No. Each of the 30 DIFFERENT session id's from above are repeated thirty
 times.
  
  The 900 Set-Cookie headers contain each cookie JSESSIONID thirty
  times.
  That is crazy! How are you observing this behavior?
 LiveHTTPHeaders/http
  protocol sniffer? Wireshark/packet sniffer?
  
  Yes it is crazy - I observed this using
 org.apache.catalina.valves.RequestDumperValve in my server.xml
  
  If I submit the same request from my machine I get a only/as expected
  one cookie and one Set-Cookie header back in the initial response.
  Er... what do you mean from my machine? What are you using when you
  get 900 Set-Cookie headers?
  
  My machine is my PC at work. The requests where a repsonse with 900
 SetCookie headers is returned, are sent from PC's of our partners, which
 operate in one single network (and thus all have the same IP, which is the IP
 of the partner network's proxy server). If I use some other PC connected to
 the internet I have the same expected behaviour as from my PC at work. So
 those responses are only/exclusively produced for requests coming from PC's
 of our partners.
  
  markus
 Old African proverb : he who wants to eat an elephant, should do it a 
 little bit at a time.
 
 I am not basing the following on any deep knowledge of Tomcat, just 
 trying to use the logical cues from what you said so far and the way 
 HTTP servers and browsers normally react.
 
 1) How do you *precisely* know that Tomcat is actually sending 900 
 Set-Cookie Headers ? does the RequestDumperValve also dump the response 
 ? or is that what you see in the client browser ?
 In other words, are you really sure that it is Tomcat who is sending all 
 these Set-Cookie headers, or could it be the customer's proxy 
 adding/multiplying them ? (Not that I would know how it could do that, 
 but that's another matter)

Yes, the RequestDumperValve also dumps the response - therefore I'm SURE that 
it is Tomcat that sends the 900 Set-Cookie headers and no other network 
component between client and server.

 2) The client browser gets 900 Set-Cookie headers, of which the basic 
 set of different ones is 30, each multiplied 30 times.
 So the client browser ends up with 30 cookies set ?
 Or just one, in the end ?

The client sends only one cookie in the following requests (this cookie is the 
last one in the list of Set-Cookie headers). All those requests only have this 
one/single cookie in their requests (and responses).

 
 3) Does this number 30 relate in some way to how many separate stations 
 at your customer access your Tomcat server ?
 For example, assuming that there would be a way to reset everything, 
 and then turn on a single customer station, and access your Tomcat 
 server once, how many Set-cookies would that one browser get in return ?
 And then, what if a second station now sends a request ?
 

I have no idea how many separate clients/workstations are accessing our Tomcat 
(due to the partner network's proxy) - it could be thirty, but still: How 
should Tomcat know about that?
I also have no possibility to go (physically) to our partner and try something 
out.

Further I found out that this happens only with an initial POST request - if I 
do the same via GET only one Set-Cookie header is returned (I wrote before that 
I was not able to reproduce those 900 Set-Cookie headers on my PC, but that was 
due to the fact that I sent the request as a GET - If I send the same data via 
a POST request I also get ~900 Set-Cookie headers, with the only difference 
that all of them always contain the exactly same JSESSIONID).
-- 
Feel free - 5 GB Mailbox, 50 FreeSMS/Monat ...
Jetzt GMX ProMail testen: http://www.gmx.net/de/go/promail

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Hassan Schroeder
On Wed, Nov 12, 2008 at 9:42 AM, Adam Gordon [EMAIL PROTECTED] wrote:
 We're running two Tomcat (5.5.16) instances in a load-balanced capacity
 behind an Apache server (2.0.55 w/ mod j/k 1.2.14).

 We'd like to set up some sort of monitoring that would allow us to not just
 check to see if the Tomcat Java processes are still running (that's easy)
 but to actually connect to each web server (either independently or via the
 load-balancer) and verify that a certain page can be returned.

 Since we're connecting to Tomcat via an Apache load-balancer, we don't know
 of a way to force the load-balancer to go to a certain Tomcat instance.
  Additionally, we don't know how to speak mod j/k so we can't fake a direct
 connection to each Tomcat instance.

Simplest: add an HTTP connector to use for testing.  :-)

Re' forcing the instance to use -- see the entry for jvmRoute in
http://tomcat.apache.org/tomcat-5.5-doc/config/engine.html

FWIW,
-- 
Hassan Schroeder  [EMAIL PROTECTED]

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Does jsessionid on the URL also check the User-Agent?

2008-11-12 Thread kennardconsulting

Torsten,

Thank you for the quick reply. My apologies: I was getting confused.

I now realise sending jsessionid on the URL gets ignored if there is already
a jsessionid in the cookie, which there will be if you have even briefly
touched the site in any way (eg. to pull up the login page).

Thanks for you help.

Regards,

Richard.

-- 
View this message in context: 
http://www.nabble.com/Does-jsessionid-on-the-URL-also-check-the-User-Agent--tp20454717p20466801.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: How to set JAVA_OPTS variable in tomcat6.0.16

2008-11-12 Thread Marco Antonio
On Wed, Nov 12, 2008 at 11:17 AM, bhavik shah [EMAIL PROTECTED] wrote:
  Hi,
 I want to set

 Xms1024m

 Xmx1024m

 and MaxPermSize paramater to 128

 How do I do that in tomcat6.0.16


Hi, just need to have the variable JAVA_OPTS exported.

# export JAVA_OPTS=-Xms1024m -Xmx1024m

automatically tomcat add it when starting the service...

catalina.sh
...
182 # Set juli LogManager if it is present
183 if [ -r $CATALINA_BASE/conf/logging.properties ]; then
184   JAVA_OPTS=$JAVA_OPTS
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=$CATALINA_BASE/conf/logging.properties
185 fi
...

Saludos y abrazos...

Marco Antonio Frias Butrón
[EMAIL PROTECTED]
Slackware ~ Linux User #356229

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread André Warnier

Adam Gordon wrote:
We're running two Tomcat (5.5.16) instances in a load-balanced capacity 
behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us to not 
just check to see if the Tomcat Java processes are still running (that's 
easy) but to actually connect to each web server (either independently 
or via the load-balancer) and verify that a certain page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we don't 
know of a way to force the load-balancer to go to a certain Tomcat 
instance.  Additionally, we don't know how to speak mod j/k so we can't 
fake a direct connection to each Tomcat instance.


Does anyone know of a way or a product (commercial or open-source) to 
achieve this?


I don't think you would need a special product to do that, open source 
or not.
On your Apache front-end, it would probably be easy to set up a proxy, 
which via simple HTTP would proxy just the links you want to either one 
of your back-end Tomcat HTTP ports.
You would need the HTTP Connector active on each Tomcat, but that should 
already be the case by default.


Someone better versed in Apache mod_proxy could help you there.
Maybe try the list at [EMAIL PROTECTED] if you don't get more help 
here.


Of course, if you can access your Tomcats directly through their own 
HTTP ports, then you don't even need that.  I'm just assuming you cannot.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread David Rees
On Wed, Nov 12, 2008 at 9:42 AM, Adam Gordon [EMAIL PROTECTED] wrote:
 Since we're connecting to Tomcat via an Apache load-balancer, we don't know
 of a way to force the load-balancer to go to a certain Tomcat instance.
  Additionally, we don't know how to speak mod j/k so we can't fake a direct
 connection to each Tomcat instance.

As Hassan suggested, make sure that you set jvmRoutes in the Tomcat
configuration and that you also match the node name to the jvmRoute in
your mod_jk configuration.

Once you do this, you can fake a session parameter like this to get to
the desired node, where node1 is the name of the node. You can be able
to substitute healthcheck with any string you like.

http://www.example.com/;jsessionid=healthcheck.node1

-Dave

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: multiple Set-Cookie headers in initial http response

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Markus,

Markus Reis wrote:
 Yes, the RequestDumperValve also dumps the response - therefore I'm
 SURE that it is Tomcat that sends the 900 Set-Cookie headers and no
 other network component between client and server.

I second Andre's recommendation that you use LiveHTTPHeaders to capture
the actual response received at the client. It's possible that there is
a bug in the RequestDumperValve that emits too many Set-Cookie headers
(but that seems unlikely since they are all different).

- -chris


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

iEYEARECAAYFAkkbLE4ACgkQ9CaO5/Lv0PDr2wCfW2o/qbTR8R7MDJDUGK0ka8ED
OuYAmwWMkf1zMVSSyeRbCO9D8fYc05N/
=gt7m
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Issue on parsing struts.xml

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Nar,

Nar Karapetyan wrote:
 Linux server gives the exceptions for https://localhost

Sorry I misunderstood.

Please post a complete stack trace.

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

iEYEARECAAYFAkkbLQAACgkQ9CaO5/Lv0PD5LgCgm7GYgJV7Tu2J8WmI8R9YB6cT
uvkAoKqsInP3UBrXWIUEFC6P1mwGjRoP
=BaD7
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: log POST data

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

André,

André Warnier wrote:
 Would what Markus wants to do not be easier to do with a servlet filter ?
 It would also be a per-application thing, rather than a
 one-size-fits-all, no ?

Markus was looking at using the ExtendedLogAccessValve which does
everything he wants except to include the POST body in the logging. I
was suggesting that he augment the Valve to include that capability, as
someone else might want to do the same thing. (I always look for
opportunities for TC users to improve TC whenever possible).

Yes, a Filter could have been used. Valves are basically TC-specific
Filters that operate at a slightly lower level: they fill the same type
of niche, but have access to TC-specific classes instead of just the
servlet API stuff (for instance, you can get to TC's Request instead
of just what's available through HttpServletRequest). Since the existing
implementation was a Valve, I would recommend that he modify it instead
of porting it to a Filter.

Valves can be applied to specific applications in context.xml, so it's
not necessary to apply a Valve to all applications.

Honestly, an app-server-agnostic Filter that performs the same function
would be a really useful thing to write. Care to try your hand at
writing it? ;)

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

iEYEARECAAYFAkkbJ/oACgkQ9CaO5/Lv0PBUkQCfee0pLFhlmbqdwJ08RT5i/JMB
RxMAn3fMI+tNW9xaUuV2SxtO7x+RtTnd
=FGZy
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: How to set JAVA_OPTS variable in tomcat6.0.16

2008-11-12 Thread Caldarale, Charles R
 From: Marco Antonio [mailto:[EMAIL PROTECTED]
 Subject: Re: How to set JAVA_OPTS variable in tomcat6.0.16

 Hi, just need to have the variable JAVA_OPTS exported.
 # export JAVA_OPTS=-Xms1024m -Xmx1024m

That works for Linux (except for the leading # that turns it into a comment), 
but says nothing for Windows script or service usage.  (The OP didn't bother to 
tell us the platform being used.)

If running from a Windows script, do the SET JAVA_OPTS before running 
startup.bat; if using Tomcat as a Windows service, use the Java tab of the 
tomcat6w.exe program to set up the options.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Chuck,

Caldarale, Charles R wrote:
 From: Christopher Schultz [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads

 recent JVMs use shared memory to share common class data
 (like JITed object code from java.* packages)
 
 Careful - JITed code is *not* shared - only some of the PermGen is,
 and that only on a -client JVM. When running -server mode, nothing is
 shared across JVMs (that may change in Java SE 7 - haven't checked yet).
 The PermGen contains loaded classes, but not JIT-generated code.

Thanks for clearing that up; I especially didn't know that -client was
required. PermGen seems like an odd item to share... though I guess all
those java.lang.Package, java.lang.Class, java.lang.Method, etc. objects
can really beat a system down.

I was under the impression that only java.* classes were shared, and not
just anything that was loaded by a bootstrap classloader (see your other
post for that speculation). It would seem odd to share, say, Tomcat's
classes with other -client JVMs.

For those interested in reading more, here is Sun's documentation for
this feature:
http://java.sun.com/javase/6/docs/technotes/guides/vm/class-data-sharing.html

If you use IBM's JVM, here is some info on class sharing, which works
differently (article is a bit outdated):
http://www.ibm.com/developerworks/java/library/j-ibmjava4/

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

iEYEARECAAYFAkkbMAcACgkQ9CaO5/Lv0PDWRgCgoE72SJ1cS7nKvSHh0KoGdxcC
5IgAoJHn4A+p+jjy8Ad3FgylzpRhpn7N
=pd2w
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: [Http]ServletResponseWrapper.getOutputStream()

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Michael,

Michael Ludwig wrote:
 So the output of S gets collected by WR and is now available to F. And F
 calls getWriter() on the original response, and this to my surprise
 triggers an IllegalStateException:
 
   getOutputStream() has already been called for this response
 
 But I haven't called getOutputStream() - I've called getWriter().

Yes, but your included resource probably called getOutputStream.

You should really override getOutputStream as well as getWriter in your
HttpServletResponseWrapper.

 So is it the recommended approach in this sort of scenario (or contrived
 example) to proceed as observed in the DefaultServlet, by first trying
 one of SOS and PW, catch the exception and then try the other one?

Unfortunately, I don't know if a way to check to see which of
getOutputStream/getWriter was called, so you might have to do this.

 So how can I implement getOutputStream() to substitute a buffer? Does
 anyone have an implementation?

How are you doing this with getWriter? With a StringWriter? Maybe you
want to look at java.io.ByteArrayOutputStream.

 But even with my Filter overriding both getOutputStream() and
 getWriter() and substituting buffers that will be written to, there is a
 problem. Servlet S will write to one buffer, and the DefaultServlet will
 write to another one. The place of the include set in the source code of
 S will be lost. Is this analysis correct?

Mostly. What you need to do is provide a unified buffer that /both/
calls can write to. If you use a ByteArrayOutputStream at the lowest
level and then wrap that in an OutputStreamWriter for calls to
getWriter(), you should be able to handle arbitrary use of your wrapper.

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

iEYEARECAAYFAkkbMoAACgkQ9CaO5/Lv0PCa9QCeMVLbd4dHVE6NwRHI9U2hAdM3
gxkAnR/zKPYvM8hQWSoKzGdrDoOsUC7q
=zT3d
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Does jsessionid on the URL also check the User-Agent?

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Richard,

kennardconsulting wrote:
 ...does Tomcat do something clever, like checking the User-Agent, before
 agreeing to hook into the existing '123' session?

No. Tomcat will append the jsessionid parameter if the client has not
yet proven that Cookies will be sent back to the server. Usually, this
happens on the response to the first request, but not after any cookie
has had a round-trip to the client back to the server.

 If I log in using, say, Firefox and note the jsessionid, then open a new
 Firefox and paste in a URL like the one above it works as expected. But if I
 open IE and paste the same URL it doesn't work?

What do you mean doesn't work? You don't get the same session (you
should)? Or, you get the same session, but further URLs don't contain
the jsessionid parameter? If the latter is the case, then IE is simply
sending a cookie to Tomcat and therefore Tomcat knows that the session
id can be managed with a cookie and URL rewriting doesn't have to be done.

 Does the URL rewriting check the User Agent? Can I turn this off?

\No user agent checking, so there's nothing to disable.

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

iEYEARECAAYFAkkbMzsACgkQ9CaO5/Lv0PDrPgCfbRThbmXP8KrbcyNlZbBKGqSS
TE8AoKpnnFHXUrHh7NL5aKG25CMtq7+O
=e1BJ
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Connection Leak in java - Tomcat 6.0.18

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Arun,

Arun Raj Ramkumar wrote:
 Hi friends,
 Please let me know is there a way to find out connection leak in my java
 code , when its deployed in tomcat. Am using tomcat 6.0.18

What type of connection?

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

iEYEARECAAYFAkkbM28ACgkQ9CaO5/Lv0PCW8wCfT5sUBsISbomP9/+NB8M1clXH
XUYAn2M0BSRPOQaNi+AwE4kruF81xODN
=0NRI
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads, II

2008-11-12 Thread Pid
André Warnier wrote:
 Hi again.
 
 Now that I have (with your help) established some basic facts, I have a
 practical case for analysis.
 
 Before I get into details (because this is quite long), I'd like to
 explain the reason why I'm asking this.
 We have been testing a Tomcat application from a vendor.  It works very
 nicely when it is started on a test system, and does what we expect.
 But the load it imposes on our test Tomcat at startup, makes me a bit
 insecure about deploying it to a production server, before I really
 understand what is happening.
 Not being a Java or Tomcat expert, I'm just trying to collect some
 pointers, to see if I can do something about what I am observing, or if
 that's it and we just have to live with it.
 The main thing is, I don't even know where to start, so I would
 appreciate some help, even if very basic.
 There is quite a bit of data below.
 
 We have an old clunker PC (Pentium II, 512 Mb Ram, average ATA disks),
 which we use to test some applications (not only Java/Tomcat).
 Its a Linux system, and runs this Tomcat :
 Using CATALINA_BASE:   /usr/share/tomcat5.5
 Using CATALINA_HOME:   /usr/share/tomcat5.5
 Using CATALINA_TMPDIR: /usr/share/tomcat5.5/temp
 Using JRE_HOME:   /usr/lib/jvm/java-1.5.0-sun
 Server version: Apache Tomcat/5.5
 Server built:   Jan 20 2008 12:32:00
 Server number:  5.5.20.0
 OS Name:Linux
 OS Version: 2.6.18-6-686
 Architecture:   i386
 JVM Version:1.5.0_14-b03
 JVM Vendor: Sun Microsystems Inc.
 
 The full command used to start Tomcat is :
 /usr/lib/jvm/java-1.5.0-sun/bin/java
 -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
 -Djava.util.logging.config.file=/var/lib/tomcat5.5/conf/logging.properties
 -Djava.awt.headless=true -Xmx256M -server
 -Djava.endorsed.dirs=/usr/share/tomcat5.5/common/endorsed -classpath
 :/usr/lib/jvm/java-1.5.0-sun/jre//lib/jcert.jar:/usr/lib/jvm/java-1.5.0-sun/jre//lib/jnet.jar:/usr/lib/jvm/java-1.5.0-sun/jre//lib/jsse.jar:/usr/share/tomcat5.5/bin/bootstrap.jar:/usr/share/tomcat5.5/bin/commons-logging-api.jar
 
 -Djava.security.manager
 -Djava.security.policy==/var/lib/tomcat5.5/conf/catalina.policy
 -Dcatalina.base=/var/lib/tomcat5.5 -Dcatalina.home=/usr/share/tomcat5.5
 -Djava.io.tmpdir=/var/lib/tomcat5.5/temp
 org.apache.catalina.startup.Bootstrap start
 
 Under Tomcat there, there is an application which we get from outside
 and of which we do not have the source. This application is loaded at
 Tomcat startup.
 
 When Tomcat has been running for a while, but the system and Tomcat are
 basically idle, a top with the option n (sort by memory usage),
 shows this (first few lines only) :
 
 top - 10:15:54 up 162 days, 16:25,  2 users,  load average: 0.19, 0.09,
 0.03
 Tasks:  82 total,   1 running,  81 sleeping,   0 stopped,   0 zombie
 Cpu(s):  2.0%us,  0.3%sy,  0.0%ni, 97.7%id,  0.0%wa,  0.0%hi,  0.0%si,
 0.0%st
 Mem:516920k total,   509716k used, 7204k free,71992k buffers
 Swap:  1297564k total,   131340k used,  1166224k free,95148k cached
 
   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
  6226 tomcat55  25   0  506m 191m  10m S  0.0 37.9 140:26.15 java
  5937 root  22   0  267m  26m 8056 S  0.0  5.2  25:26.88 java
 24608 root  23   0  260m  15m 9332 S  0.0  3.1   0:02.08 java
 24638 root  15   0 29564  15m 5984 S  0.0  3.0   0:02.16 apache2
 24627 efs   15   0 16964  12m 1968 S  0.0  2.6   0:06.68 MiraLoader.pl
 24662 www-data  15   0 29564  10m 1632 S  0.0  2.2   0:02.91 apache2
 24668 www-data  16   0 29564  10m 1624 S  0.0  2.2   0:02.50 apache2
 24663 www-data  15   0 29564  10m 1620 S  0.0  2.2   0:02.78 apache2
 etc..
 (the other 2 java processes are separate java daemons, nothing to do
 with Tomcat).
 
 At this point Tomcat and this external application are very responsive,
 at least in single-user mode. We have not really done yet a multi-user
 test.
 
 Now, if I stop and restart Tomcat, for something like 6 minutes after
 that, the same top display shows this kind of thing :
 (There are 4 consecutive snapshots here, taken at more or less regular
 intervals during the 6 minutes)
 
 I)
 top - 12:44:56 up 162 days, 18:54,  3 users,  load average: 0.99, 0.27,
 0.08
 Tasks:  85 total,   3 running,  82 sleeping,   0 stopped,   0 zombie
 Cpu(s): 98.0%us,  2.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,  0.0%si,
 0.0%st
 Mem:516920k total,   351160k used,   165760k free,54548k buffers
 Swap:  1297564k total,7k used,  1227564k free,   128152k cached
 
   PID USER  PR  NI  VIRT  RES  SHR S %CPU %MEMTIME+  COMMAND
  2864 tomcat55  25   0  463m  40m  11m R 97.9  7.9   0:25.62 java
  5937 root  16   0  267m  24m 8056 S  0.0  4.9  25:38.84 java
 24608 root  23   0  260m  15m 9332 S  0.0  3.1   0:02.17 java
 24638 root  15   0 29564  15m 5984 S  0.0  3.0   0:02.16 apache2
 24627 efs   15   0 16964  12m 1968 S  0.0  2.6   0:06.74 MiraLoader.pl
 24664 www-data  15   0 29692  12m 3428 S  

RE: Tomcat threads, II

2008-11-12 Thread Caldarale, Charles R
 From: André Warnier [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads, II

 I have turned it off now, and restarted Tomcat, but it
 did not have any noticeable impact on the startup time.

Wouldn't expect it to, since you're spending nearly all the time parsing that 
XML file.

It may have an effect when you actually start processing requests, but the 
impact may be small.

 As far as I can tell, these settings come from the
 catalina.sh script.  I have no idea if this script
 is modified, compared to the Official version.

Yes, the Debians screwed it up, by trying to patch it to work with gcj (a 
futile and pointless task).  The real script only adds the extra jars if you 
specify an alternate secure sockets library with the JSSE_HOME environment 
variable.

 it seems to have survived (apart from bootstrap.jar,
 which I had to leave)

Yes, bootrstrap.jar is the only thing that should be on the classpath.

 But that did not apparently reduce its startup time much.

If your startup were not completely dominated by the XML parsing, you should 
see some difference.

 If anything, it seems now to occupy more memory than before :
 Is there an explanation for that ?

No, the exact amount probably varies considerably over time and really isn't 
anything to worry about.

 I also don't seem to be able to run JConsole.

You'll need to attach remotely.  Assuming your target system is protected from 
potential threats by some external means, you can set jmxremote handling 
without authentication by adding these parameters for starting Tomcat:
  -Dcom.sun.management.jmxremote.port=jmxport
  -Dcom.sun.management.jmxremote.authenticate=false
  -Dcom.sun.management.jmxremote.ssl=false
(all on one line, of course).  Use CATALINA_OPTS or JAVA_OPTS to set them.

Then run JConsole from your desktop, and give it the IP address and JMX port of 
the Tomcat machine in the Remote Process box.  Full reference is here:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jconsole.html
http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Apache/mod_jk serves random files from tomcat

2008-11-12 Thread Jakob Ericsson
On Wed, Nov 12, 2008 at 12:21 PM, Rainer Jung [EMAIL PROTECTED] wrote:
 Jakob Ericsson schrieb:


 --
 Jakob Ericsson
 +46 704 533 627

 11 nov 2008 kl. 22.37 skrev Christopher Schultz
 [EMAIL PROTECTED]:

 Jakob,

 Jakob Ericsson wrote:
 We are also experiencing this problem.
 Our setup is running Windows 2003 Server with Apache 2.0.59 (no
 prefork),
 mod_jk 1.2.22 and Apache Tomcat/6.0.13.

 Will upgrading to latest mod_proxy_ajp in Apache httpd 2.2.X solve this
 problem?

 If you're willing to donate some time to this, please stick with mod_jk
 and work with Rainer/Mladen to fix whatever might be wrong. Upgrading to
 the latest mod_jk is a definite requirement before you continue testing.

 We are in the process of updating our system to the latest mod_jk. I
 will give an update if this solves our problem.
 The underlying problem is hopefully the missed multi thread flag in
 mod_jk compile.
 Does anyone know which issue this is in bugzilla?

 On Woindows I would not expext that to be the problem. mod_jk tries to
 determine automatically during compile time, whether a multi-threaded
 environment gets used and then enables thread safe mutexes.

 On some more exotic platforms like AIX this determination was broken for
 some time, so some versions ago we decided to compile thread-safe by
 default and add a new flag to configure to allow compiling without
 thread support if you give the flag explicitely.

 On Windows it should have been always thread safe.


We have updated a couple of our machines in the production environment
to 1.2.27 and it looks quite good.

Tomorrow, we will upgrade all machines and hopefully the problem will
disappear. I´ll keep you posted.

 Nevertheless I appreciate you update first. In case you can reproduce
 the behaviour, it would be extremely helpful to have a JK log file with
 debug log level. Unfortunately that is a problem for production because
 of the high log volume. So if you can reproduce it easily, or when only
 reproducibale under load othen on a test system, a debug level JK log
 would be extremely helpful. You can make that available also only privately.

We have tried to replicate the problem in a test environment but all
attempts have been unsuccessful.
As you probably understand, we can not enable debug log in the
production environment.

The thing we see is basically the same as people have said in this
thread before. First request's response is served to the second
request's response. :-)
And it only happens when it is one the same thread in tomcat.
 I took your mail as a reminder to ask Tim Redding again for his log but
 did not yet get any response.

 Regards,

 Rainer

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]





-- 
Jakob Ericsson, JAKERI AB
Tel. +46 704 533 627


Re: Best Linux JVM to use for Tomcat?

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Leon,

Leon Rosenberg wrote:
 suns current jdk is always the best choice. the current one is 6.10

I'm not sure about current versions, but several years ago, IBM had the
fastest JVM out there, although it used more memory than Sun's. I did,
though, hear that there was some weirdness in certain places like IO
(IBM's 32-bit JVMs were hosing java.io.File.length() reports by
accidentally using a 32-bit integer instead of a 64-bit one like they're
supposed to).

Whatever JVM you choose, make sure your test environment matches your
production environment!

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

iEYEARECAAYFAkkbMQMACgkQ9CaO5/Lv0PDa6gCeKOoDPkZW9mG5SwIOwpt0zfU0
6NIAoKaSbSeG7tg/to+y5Z/sYRp7yxsk
=46Yi
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads

2008-11-12 Thread Caldarale, Charles R
 From: Christopher Schultz [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads

 PermGen seems like an odd item to share... though I
 guess all those java.lang.Package, java.lang.Class,
 java.lang.Method, etc. objects can really beat a
 system down.

The sharing is not for capacity purposes, merely to reduce JVM startup time.

 I was under the impression that only java.* classes were
 shared, and not just anything that was loaded by a bootstrap
 classloader

That is likely correct.  Since we use the -server version pretty much 
exclusively, it's a don't care for us.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: How to set JAVA_OPTS variable in tomcat6.0.16

2008-11-12 Thread Doom Dog

Try this link, if you can't click on it, copy and past it.

http://bugs.sakaiproject.org/confluence/display/DOC/Section+-+Tomcat+Installation+(2.5)

For the Tomcat service on Windows, you have to modify the registry.  The key is 
a multi_reg_sz key, so you'll have to append to that list.  You can use the 
tomcat5/6w.exe to do that instead of using the regedit program.

Hope that helps!


 From: [EMAIL PROTECTED]
 To: users@tomcat.apache.org
 Date: Wed, 12 Nov 2008 13:33:17 -0600
 Subject: RE: How to set JAVA_OPTS variable in tomcat6.0.16
 
  From: Marco Antonio [mailto:[EMAIL PROTECTED]
  Subject: Re: How to set JAVA_OPTS variable in tomcat6.0.16
 
  Hi, just need to have the variable JAVA_OPTS exported.
  # export JAVA_OPTS=-Xms1024m -Xmx1024m
 
 That works for Linux (except for the leading # that turns it into a comment), 
 but says nothing for Windows script or service usage.  (The OP didn't bother 
 to tell us the platform being used.)
 
 If running from a Windows script, do the SET JAVA_OPTS before running 
 startup.bat; if using Tomcat as a Windows service, use the Java tab of the 
 tomcat6w.exe program to set up the options.
 
  - 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 start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 

_
Get 5 GB of storage with Windows Live Hotmail.
http://windowslive.com/Explore/Hotmail?ocid=TXT_TAGLM_WL_hotmail_acq_5gb_112008

Re: Tomcat threads, II

2008-11-12 Thread David kerber

Pid wrote:

...

Having said that, parsing XML can be a memory intensive operation as
well, so your old box could be experiencing problems there - check the
garbage collection log.

p
  
I try to avoid XML for this exact reason.  We found that our application 
could handle between 6 and 10 times more concurrent requests on the same 
hardware when we went away from XML data transmission, and switched to a 
simple text-based HTTP POST request.


D



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Tomcat 5.5.23 Cluster Problem - (memberDisappeared)

2008-11-12 Thread Gustavo Araujo
Hello!

I'm trying to finish my configuration of the cluster.

But i get the message of 'memberDisappeared' in both nodes:

Node1:
users@tomcat.apache.org12-Nov-08 5:30:36 PM
org.apache.catalina.cluster.tcp.SimpleTcpCluster memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=218675]
12-Nov-08 5:30:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=218675]
12-Nov-08 5:40:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=818689]
12-Nov-08 5:40:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=818689]
12-Nov-08 5:50:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=1418703]
12-Nov-08 5:50:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=1418703]
12-Nov-08 5:55:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=1718685]
12-Nov-08 5:55:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=1718685]
12-Nov-08 6:00:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=2018717]
12-Nov-08 6:00:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=2018717]
12-Nov-08 6:05:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=2318699]
12-Nov-08 6:05:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=2318699]
12-Nov-08 6:10:36 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.21:4001
,catalina,172.16.12.21,4001, alive=2618680]
12-Nov-08 6:10:39 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.21:4001,catalina,172.16.12.21,4001, alive=2618680]

Node2:
12-Nov-08 5:35:42 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.111:4002
,catalina,172.16.12.111,4002, alive=528177]
12-Nov-08 5:35:45 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.111:4002,catalina,172.16.12.111,4002, alive=528177]
12-Nov-08 5:45:42 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.111:4002
,catalina,172.16.12.111,4002, alive=1128179]
12-Nov-08 5:45:45 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.111:4002,catalina,172.16.12.111,4002, alive=1128179]
12-Nov-08 5:50:42 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.111:4002
,catalina,172.16.12.111,4002, alive=1428198]
12-Nov-08 5:50:45 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberDisappeared
INFO: Received member
disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://
172.16.12.111:4002,catalina,172.16.12.111,4002, alive=1428198]
12-Nov-08 5:55:42 PM org.apache.catalina.cluster.tcp.SimpleTcpCluster
memberAdded
INFO: Replication member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://172.16.12.111:4002

Re: Tomcat 5.5.23 Cluster Problem - (memberDisappeared)

2008-11-12 Thread Alberto Jesus La Rosa Agramonte
hello thats my configurations files, and work without problems.

cluster 1

Server port=8005 shutdown=SHUTDOWN

 Listener className=org.apache.catalina.core.AprLifecycleListener /
 Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
/
 Listener
className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
 Listener
className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

 GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

 /GlobalNamingResources

 Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
/

   Engine name=Catalina defaultHost=localhost jvmRoute=c1

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

managerClassName=org.apache.catalina.cluster.session.DeltaManager
expireSessionsOnShutdown=false
useDirtyFlag=true
notifyListenersOnReplication=true

   Membership
   className=org.apache.catalina.cluster.mcast.McastService
   mcastAddr=228.0.0.4
   mcastPort=45564
   mcastFrequency=50
   mcastDropTime=3000/

   Receiver

className=org.apache.catalina.cluster.tcp.ReplicationListener
   tcpListenAddress=auto
   tcpListenPort=4001
   tcpSelectorTimeout=100
   tcpThreadCount=6/

   Sender

className=org.apache.catalina.cluster.tcp.ReplicationTransmitter
   replicationMode=pooled
   ackTimeout=15000
   waitForAck=true
   Transport

className=org.apache.catalina.tribes.transport.nio.PooledParallelSender
   timeout=6
   keepAliveTime=12/
   /Sender

   Valve
className=org.apache.catalina.cluster.tcp.ReplicationValve

filter=.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;/

   Deployer
className=org.apache.catalina.cluster.deploy.FarmWarDeployer
 tempDir=/tmp/war-temp/
 deployDir=/tmp/war-deploy/
 watchDir=/tmp/war-listen/
 watchEnabled=false/

   ClusterListener
className=org.apache.catalina.cluster.session.ClusterSessionListener/
   /Cluster

 /Host

   /Engine

 /Service

/Server



cluster 2

Server port=8005 shutdown=SHUTDOWN

 Listener className=org.apache.catalina.core.AprLifecycleListener /
 Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
/
 Listener
className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
 Listener
className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

 GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

 /GlobalNamingResources

 Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
/

   Engine name=Catalina defaultHost=localhost jvmRoute=c2

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

managerClassName=org.apache.catalina.cluster.session.DeltaManager
expireSessionsOnShutdown=false
useDirtyFlag=true
notifyListenersOnReplication=true

   Membership
   className=org.apache.catalina.cluster.mcast.McastService
   mcastAddr=228.0.0.4
   mcastPort=45564
   mcastFrequency=50
  

Re: Tomcat 5.5.23 Cluster Problem - (memberDisappeared)

2008-11-12 Thread Gustavo Araujo
Alberto,

Could you please send me the complete configurations of both nodes, this
that you sent to me is missing something. =(

Thanks a lot for you fast reply!

2008/11/12 Alberto Jesus La Rosa Agramonte [EMAIL PROTECTED]

 hello thats my configurations files, and work without problems.

 cluster 1

 Server port=8005 shutdown=SHUTDOWN

  Listener className=org.apache.catalina.core.AprLifecycleListener /
  Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
 /
  Listener
 className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
  Listener
 className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

  GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

  /GlobalNamingResources

  Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
 /

Engine name=Catalina defaultHost=localhost jvmRoute=c1

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
 className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

 managerClassName=org.apache.catalina.cluster.session.DeltaManager
expireSessionsOnShutdown=false
useDirtyFlag=true
notifyListenersOnReplication=true

   Membership
   className=org.apache.catalina.cluster.mcast.McastService
   mcastAddr=228.0.0.4
   mcastPort=45564
   mcastFrequency=50
   mcastDropTime=3000/

   Receiver

 className=org.apache.catalina.cluster.tcp.ReplicationListener
tcpListenAddress=auto
tcpListenPort=4001
   tcpSelectorTimeout=100
   tcpThreadCount=6/

   Sender

 className=org.apache.catalina.cluster.tcp.ReplicationTransmitter
   replicationMode=pooled
   ackTimeout=15000
   waitForAck=true
   Transport

 className=org.apache.catalina.tribes.transport.nio.PooledParallelSender
   timeout=6
   keepAliveTime=12/
   /Sender

   Valve
 className=org.apache.catalina.cluster.tcp.ReplicationValve

 filter=.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;/

   Deployer
 className=org.apache.catalina.cluster.deploy.FarmWarDeployer
 tempDir=/tmp/war-temp/
 deployDir=/tmp/war-deploy/
 watchDir=/tmp/war-listen/
 watchEnabled=false/

   ClusterListener
 className=org.apache.catalina.cluster.session.ClusterSessionListener/
   /Cluster

 /Host

   /Engine

  /Service

 /Server



 cluster 2

 Server port=8005 shutdown=SHUTDOWN

  Listener className=org.apache.catalina.core.AprLifecycleListener /
  Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
 /
  Listener
 className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
  Listener
 className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

  GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

  /GlobalNamingResources

  Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
 /

Engine name=Catalina defaultHost=localhost jvmRoute=c2

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
 className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

 managerClassName=org.apache.catalina.cluster.session.DeltaManager
expireSessionsOnShutdown=false
   

Re: Using JAXB with tomcat

2008-11-12 Thread Rafael Cunha de Almeida
On Wed, 12 Nov 2008 09:09:01 +0100
[EMAIL PROTECTED] wrote:

 I am not sure if this works and it is probably not a nice solution, but maybe 
 you can do something like
 
 BoOcorrenciaPolicial bo = (BoOcorrenciaPolicial)
   unmarshaller.unmarshal(new File(XML_DIR + id + .xml));
 
 Class clazz = bo.getClass();
 Field field = clazz.getDeclaredField(hist);
 field.setAccessible(true);
 
 String hist = bo.getHist();
 
 Like that you would at least not have to change the fields from protected to 
 public.

Hm, I'm not sure I liked that solution so much. I was having some other
trouble with loading of classes and then I decided to add the following
to my catalina.policy:

grant {
permission java.security.AllPermission;
...
};

After that I didn't even have to rename the fields to public or
anything. Though I think I have just given permission to my webapp to
do whatever it pleases. That doesn't seem very safe, so I would
appreciate if someone knows a more specific permission for my case.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Adam Gordon

Hassan-

I apologize if I wasn't clear.  We are already running Tomcat in a 
load-balanced capacity with sticky sessions which means the jvmRoute is 
already set and configured correctly.  What we are looking to do is 
ensure that the actual Tomcat instance isn't a zombie, rather, that it 
can still accept connections.


That said, adding another Connector that does not use mod JK actually 
works, so this is the route we will take.  Thanks.


--adam

Hassan Schroeder wrote:

On Wed, Nov 12, 2008 at 9:42 AM, Adam Gordon [EMAIL PROTECTED] wrote:
  

We're running two Tomcat (5.5.16) instances in a load-balanced capacity
behind an Apache server (2.0.55 w/ mod j/k 1.2.14).

We'd like to set up some sort of monitoring that would allow us to not just
check to see if the Tomcat Java processes are still running (that's easy)
but to actually connect to each web server (either independently or via the
load-balancer) and verify that a certain page can be returned.

Since we're connecting to Tomcat via an Apache load-balancer, we don't know
of a way to force the load-balancer to go to a certain Tomcat instance.
 Additionally, we don't know how to speak mod j/k so we can't fake a direct
connection to each Tomcat instance.



Simplest: add an HTTP connector to use for testing.  :-)

Re' forcing the instance to use -- see the entry for jvmRoute in
http://tomcat.apache.org/tomcat-5.5-doc/config/engine.html

FWIW,
  


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat 5.5.23 Cluster Problem - (memberDisappeared)

2008-11-12 Thread Gustavo Araujo
It is not working for me =[

2008/11/12 Gustavo Araujo [EMAIL PROTECTED]

 Alberto,

 Could you please send me the complete configurations of both nodes, this
 that you sent to me is missing something. =(

 Thanks a lot for you fast reply!

 2008/11/12 Alberto Jesus La Rosa Agramonte [EMAIL PROTECTED]

 hello thats my configurations files, and work without problems.

 cluster 1

 Server port=8005 shutdown=SHUTDOWN

  Listener className=org.apache.catalina.core.AprLifecycleListener /
  Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
 /
  Listener
 className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
  Listener
 className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

  GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

  /GlobalNamingResources

  Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
 /

Engine name=Catalina defaultHost=localhost jvmRoute=c1

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
 className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

 managerClassName=org.apache.catalina.cluster.session.DeltaManager
expireSessionsOnShutdown=false
useDirtyFlag=true
notifyListenersOnReplication=true

   Membership
   className=org.apache.catalina.cluster.mcast.McastService
   mcastAddr=228.0.0.4
   mcastPort=45564
   mcastFrequency=50
   mcastDropTime=3000/

   Receiver

 className=org.apache.catalina.cluster.tcp.ReplicationListener
tcpListenAddress=auto
tcpListenPort=4001
   tcpSelectorTimeout=100
   tcpThreadCount=6/

   Sender

 className=org.apache.catalina.cluster.tcp.ReplicationTransmitter
   replicationMode=pooled
   ackTimeout=15000
   waitForAck=true
   Transport

 className=org.apache.catalina.tribes.transport.nio.PooledParallelSender
   timeout=6
   keepAliveTime=12/
   /Sender

   Valve
 className=org.apache.catalina.cluster.tcp.ReplicationValve


 filter=.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;/

   Deployer
 className=org.apache.catalina.cluster.deploy.FarmWarDeployer
 tempDir=/tmp/war-temp/
 deployDir=/tmp/war-deploy/
 watchDir=/tmp/war-listen/
 watchEnabled=false/

   ClusterListener
 className=org.apache.catalina.cluster.session.ClusterSessionListener/
   /Cluster

 /Host

   /Engine

  /Service

 /Server



 cluster 2

 Server port=8005 shutdown=SHUTDOWN

  Listener className=org.apache.catalina.core.AprLifecycleListener /
  Listener className=org.apache.catalina.mbeans.ServerLifecycleListener
 /
  Listener
 className=org.apache.catalina.mbeans.GlobalResourcesLifecycleListener /
  Listener
 className=org.apache.catalina.storeconfig.StoreConfigLifecycleListener/

  GlobalNamingResources

   Environment name=simpleValue type=java.lang.Integer value=30/

   Resource name=UserDatabase auth=Container
 type=org.apache.catalina.UserDatabase
  description=User database that can be updated and saved
  factory=org.apache.catalina.users.MemoryUserDatabaseFactory
 pathname=conf/tomcat-users.xml /

  /GlobalNamingResources

  Service name=Catalina

   Connector port=8080 maxHttpHeaderSize=8192
  maxThreads=150 minSpareThreads=25 maxSpareThreads=75
  enableLookups=false redirectPort=8443 acceptCount=100
  connectionTimeout=2 disableUploadTimeout=true /

   Connector port=8009
  enableLookups=false redirectPort=8443 protocol=AJP/1.3
 /

Engine name=Catalina defaultHost=localhost jvmRoute=c2

 Realm className=org.apache.catalina.realm.UserDatabaseRealm
resourceName=UserDatabase/

 Host name=node2 appBase=webapps
  unpackWARs=true autoDeploy=true
  xmlValidation=false xmlNamespaceAware=false

   Cluster
 className=org.apache.catalina.cluster.tcp.SimpleTcpCluster

 

Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Adam Gordon
See my reply to Hassan.  I think setting up a proxy would be overkill, 
and besides, when running Tomcat in a load-balanced capacity w/ sticky 
sessions using mod JK, while you can connect directly to the port on 
which Tomcat is listening for mod JK requests, unless you speak mod JK, 
it doesn't do anything.


--adam

André Warnier wrote:

Adam Gordon wrote:
We're running two Tomcat (5.5.16) instances in a load-balanced 
capacity behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us to 
not just check to see if the Tomcat Java processes are still running 
(that's easy) but to actually connect to each web server (either 
independently or via the load-balancer) and verify that a certain 
page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we 
don't know of a way to force the load-balancer to go to a certain 
Tomcat instance.  Additionally, we don't know how to speak mod j/k so 
we can't fake a direct connection to each Tomcat instance.


Does anyone know of a way or a product (commercial or open-source) to 
achieve this?


I don't think you would need a special product to do that, open source 
or not.
On your Apache front-end, it would probably be easy to set up a proxy, 
which via simple HTTP would proxy just the links you want to either 
one of your back-end Tomcat HTTP ports.
You would need the HTTP Connector active on each Tomcat, but that 
should already be the case by default.


Someone better versed in Apache mod_proxy could help you there.
Maybe try the list at [EMAIL PROTECTED] if you don't get more 
help here.


Of course, if you can access your Tomcats directly through their own 
HTTP ports, then you don't even need that.  I'm just assuming you cannot.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Get Security subject from Tomcat

2008-11-12 Thread Arash Bizhan zadeh
Hi,
Is there is was I can get the authenticated User from inside my
servlet/filter?
IT seems none of the assumed ways work :
getSession().getAttribute(Globals.SUBJECT_ATTR);
Subject.getSubject(AccessController.getContext());

Please reply directly, I am not subscribed.

-thanks,
-arash




-- 
The dirtiest book of all is the expurgated book.

Walt Whitman


Re: Tomcat threads

2008-11-12 Thread André Warnier

Caldarale, Charles R wrote:

From: Christopher Schultz [mailto:[EMAIL PROTECTED]
Subject: Re: Tomcat threads

PermGen seems like an odd item to share... though I
guess all those java.lang.Package, java.lang.Class,
java.lang.Method, etc. objects can really beat a
system down.


The sharing is not for capacity purposes, merely to reduce JVM startup time.


I was under the impression that only java.* classes were
shared, and not just anything that was loaded by a bootstrap
classloader


That is likely correct.  Since we use the -server version pretty much 
exclusively, it's a don't care for us.

Since apparently this conversation clears some matters up, even for 
gurus, would one of you care to back-up a couple of messages, and 
re-state the final consensus in English for us mere mortals ?


Like what gets shared when, in a usual JVM 1.5+ /Tomcat 5.5+ context, 
with say two parallel instances of Tomcat running on the same host ?

(and what is PermGen ?)

Thanks.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Get Security subject from Tomcat

2008-11-12 Thread Caldarale, Charles R
 From: Arash Bizhan zadeh [mailto:[EMAIL PROTECTED]
 Subject: Get Security subject from Tomcat

 Is there is was I can get the authenticated User from inside my
 servlet/filter?

Perhaps reading the Servlet spec or the APIs would help:
http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()

 Please reply directly, I am not subscribed.

Then I guess you won't see the response...

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Does jsessionid on the URL also check the User-Agent?

2008-11-12 Thread kennardconsulting

Chris,

Thanks for your prompt reply.

My apologies - I was getting confused. The browser had already assigned a
jsessionid through a cookie just by viewing the login page, so from them on
anything I passed on the URL was being ignored.

Thanks for your time,

Richard.

-- 
View this message in context: 
http://www.nabble.com/Does-jsessionid-on-the-URL-also-check-the-User-Agent--tp20454717p20469889.html
Sent from the Tomcat - User mailing list archive at Nabble.com.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Tomcat threads

2008-11-12 Thread Caldarale, Charles R
 From: André Warnier [mailto:[EMAIL PROTECTED]
 Subject: Re: Tomcat threads

 Since apparently this conversation clears some matters up, even for
 gurus, would one of you care to back-up a couple of messages, and
 re-state the final consensus in English for us mere mortals ?

Only for specific questions, like the following.  Too much has been said to 
figure out what you think is important.

 Like what gets shared when, in a usual JVM 1.5+ /Tomcat 5.5+ context,
 with say two parallel instances of Tomcat running on the same host ?
 (and what is PermGen ?)

(The text below refers to Sun HotSpot JVMs; other vendors are likely to be 
different.)

Sharing depends on the JVM mode.  If you're running a -client version of the 
JVM, then some loaded classes are shared across JVM instances.  Exactly which 
classes are shared is not completely clear, but it's likely only those the JVM 
has control over, such as ones from rt.jar; this needs to be verified.

In a -server JVM (and all 64-bit JVMs run -server mode), nothing is shared in 
the currently released JVMs.  It's possible this will change in a future JVM, 
but it's still that way in the Java SE 7 beta that I have.

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread André Warnier

Adam Gordon wrote:
See my reply to Hassan.  I think setting up a proxy would be overkill, 
and besides, when running Tomcat in a load-balanced capacity w/ sticky 
sessions using mod JK, while you can connect directly to the port on 
which Tomcat is listening for mod JK requests, unless you speak mod JK, 
it doesn't do anything.


I'm glad there is another solution available directly through mod_jk, 
which I was unaware of.


But re-read my earlier attempt maybe.
I wasn't trying to tell you to talk to the AJP connector from the 
front-end.  I was trying to tell you to talk to Tomcat's HTTP ports, not 
to interfere with the load balancing, which I presume applies only to 
requests coming through the AJP connectors.

Like, at the Apache front-end level :
Location /tomcat1/are_you_there
   --- proxy to http://tomcat1:8080/imthere.html
/Location
Location /tomcat2/are_you_there
   --- proxy to http://tomcat2:8081/imtheretoo.html
/Location

Seemed pretty clever to me, as a quick solution. ;-)
Maybe due to my lack of knowledge, but I don't really see where the 
overkill would be.





--adam

André Warnier wrote:

Adam Gordon wrote:
We're running two Tomcat (5.5.16) instances in a load-balanced 
capacity behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us to 
not just check to see if the Tomcat Java processes are still running 
(that's easy) but to actually connect to each web server (either 
independently or via the load-balancer) and verify that a certain 
page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we 
don't know of a way to force the load-balancer to go to a certain 
Tomcat instance.  Additionally, we don't know how to speak mod j/k so 
we can't fake a direct connection to each Tomcat instance.


Does anyone know of a way or a product (commercial or open-source) to 
achieve this?


I don't think you would need a special product to do that, open source 
or not.
On your Apache front-end, it would probably be easy to set up a proxy, 
which via simple HTTP would proxy just the links you want to either 
one of your back-end Tomcat HTTP ports.
You would need the HTTP Connector active on each Tomcat, but that 
should already be the case by default.


Someone better versed in Apache mod_proxy could help you there.
Maybe try the list at [EMAIL PROTECTED] if you don't get more 
help here.


Of course, if you can access your Tomcats directly through their own 
HTTP ports, then you don't even need that.  I'm just assuming you cannot.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads, II

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

André,

Christopher Schultz wrote:
 A few parting thoughts:

I knew I was forgetting something:

3. During your 5-minute startup freeze, try taking a few thread dumps
(send a QUIT signal to your JVM) and seeing what the app is doing. Maybe
it's just taking forever to parse that big old XML document, but it
could be something else entirely.

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

iEYEARECAAYFAkkbUQwACgkQ9CaO5/Lv0PAL+QCdFG5HdLVeEnRd2kFUoE6BBmRE
0iQAnRr3BJxC/cMN5tmEgKB+bEIR1VSA
=zqaM
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads, II

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

André,

At the risk of repeating things said by others...

André Warnier wrote:
 We have an old clunker PC (Pentium II, 512 Mb Ram, average ATA disks),
 which we use to test some applications (not only Java/Tomcat).

Based upon this hardware configuration, things are going to suck no
matter what else you do. Just bear that in mind going forward.

 -Xmx256M

[snip]

  6226 tomcat55  25   0  506m 191m  10m S  0.0 37.9 140:26.15 java

Interesting that the JVM grows to nearly twice the size of the maximum
heap that you gave to it. If it performs okay, then I wouldn't worry too
much about that, but I'm surprised that the total virtual size is so big
given your (relatively) small maximum heap.

 Now, if I stop and restart Tomcat, for something like 6 minutes after
 that, the same top display shows this kind of thing :
 (There are 4 consecutive snapshots here, taken at more or less regular
 intervals during the 6 minutes)

[snipped top output showing large memory use]

 In other words, while this application is being loaded, our Tomcat and
 the whole system are totally unresponsive for about 5 minutes.

When you say the whole system, do you mean that you can't get other
services to respond? What about something simple like 'ls' on a
command-line? Is the whole machine thrashing or is it just that Tomcat
appears dead for 5 minutes or so?

I agree with your assessment that your application is at fault; neither
Java nor Tomcat are the problem, here.

 Now my questions are of the kind :
 Our production servers are ASP servers, where several customers would be
 using this same application, each customer with its own 25 Mb XML file
 of data.  They are more powerful servers, but if I have 5 customers and
 these things compete with one another for memory or resources, I could
 have a server that is unresponsive for a hour maybe at start.

You are absolutely right to be considering the scalability of your
application, and I would be worried, too. The good news is that web
applications spend most of their time running and very little of it
initializing themselves. ;)

 So basically, I am asking if there are any parameters I can vary for the
 application startup or Tomcat in general, to evaluate the behaviour
 under different circumstances

Nope. If the JVM and Tomcat startup quickly (15 seconds is just fine on
that hardware) then the only thing you could do to help your application
is to optimize the initialization.

Actually, before I say never, you might want to check on two things:

1. DNS settings. Especially when parsing XML (which often requires
looking up a DTD or XML Schema file on a remote server), you might be
hitting a problem where your DNS resolver is taking a long time, but
finally succeeding (which is why you don't see any errors). This was
happening to us when our hosting provider took a DNS server out of
service without telling us: our lookups against our primary DNS server
were timing out (after tens of seconds), but the secondary server worked
right away. So, we had to wait for the primary to time out before
getting an instant response. The result was that most DNS lookups took
forever and it was a simple DNS configuration fix.

2. Cryptographic entropy. If your application ultimately uses
/dev/random for random numbers, you may be running out of entropy and
your application may be blocking during startup waiting for more. You
can modify your JVM configuration to use /dev/urandom which will not
block in these situations. Most recent JVMs are rigged to use
/dev/urandom on Linux and I don't suspect that this is your problem.

 [Should I] put more RAM in the server[?]

Always! ;)

 or if I should lower or raise the amount of memory available to
 Tomcat (and how), etc.

This is very application-specific. If you aren't running out of memory,
there's no reason to increase your heap size. If you set your heap too
large, you'll end up with lots of swapping which will kill your performance.

 I am also a bit surprised about the amounts I see in terms of memory
 usage, but not being an expert, I have not really anything to compare
 them with.  It's just that these java applications seem very hungry in
 memory, if what is shown is really what they are using.  For comparison,
 we have other applications running on that server, of comparable
 complexity, and they use 10-15 Mb apiece.

Just remember a few things about your application:

1. Java is a memory pig
2. XML is a memory pig (at least during parsing)

The faster you can throw String objects out of memory, the better.

(A complete digression here:

I hope this has been fixed, but old DOM parsers used to do this when you
called element.getText() (or whatever the equivalent is):

public String getText()
{
   return new String(wholeDocument.substring(start, end));
}

This returns a piece of the whole XML document. That doesn't sound
like a bad idea until you consider how Java's String.substring works.
The String class 

Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Robert Koberg
You mentioned you just upgraded your MS SQL. Is it possible that the  
default encoding changed? It should be using UTF-8. Can you check that?



On Nov 12, 2008, at 4:48 PM, André Warnier wrote:


Adam Gordon wrote:
See my reply to Hassan.  I think setting up a proxy would be  
overkill, and besides, when running Tomcat in a load-balanced  
capacity w/ sticky sessions using mod JK, while you can connect  
directly to the port on which Tomcat is listening for mod JK  
requests, unless you speak mod JK, it doesn't do anything.


I'm glad there is another solution available directly through  
mod_jk, which I was unaware of.


But re-read my earlier attempt maybe.
I wasn't trying to tell you to talk to the AJP connector from the  
front-end.  I was trying to tell you to talk to Tomcat's HTTP ports,  
not to interfere with the load balancing, which I presume applies  
only to requests coming through the AJP connectors.

Like, at the Apache front-end level :
Location /tomcat1/are_you_there
  --- proxy to http://tomcat1:8080/imthere.html
/Location
Location /tomcat2/are_you_there
  --- proxy to http://tomcat2:8081/imtheretoo.html
/Location

Seemed pretty clever to me, as a quick solution. ;-)
Maybe due to my lack of knowledge, but I don't really see where the  
overkill would be.




--adam
André Warnier wrote:

Adam Gordon wrote:
We're running two Tomcat (5.5.16) instances in a load-balanced  
capacity behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us  
to not just check to see if the Tomcat Java processes are still  
running (that's easy) but to actually connect to each web server  
(either independently or via the load-balancer) and verify that a  
certain page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we  
don't know of a way to force the load-balancer to go to a certain  
Tomcat instance.  Additionally, we don't know how to speak mod j/ 
k so we can't fake a direct connection to each Tomcat instance.


Does anyone know of a way or a product (commercial or open- 
source) to achieve this?


I don't think you would need a special product to do that, open  
source or not.
On your Apache front-end, it would probably be easy to set up a  
proxy, which via simple HTTP would proxy just the links you want  
to either one of your back-end Tomcat HTTP ports.
You would need the HTTP Connector active on each Tomcat, but that  
should already be the case by default.


Someone better versed in Apache mod_proxy could help you there.
Maybe try the list at [EMAIL PROTECTED] if you don't get more  
help here.


Of course, if you can access your Tomcats directly through their  
own HTTP ports, then you don't even need that.  I'm just assuming  
you cannot.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread David Rees
On Wed, Nov 12, 2008 at 1:15 PM, Adam Gordon [EMAIL PROTECTED] wrote:
 See my reply to Hassan.  I think setting up a proxy would be overkill, and
 besides, when running Tomcat in a load-balanced capacity w/ sticky sessions
 using mod JK, while you can connect directly to the port on which Tomcat is
 listening for mod JK requests, unless you speak mod JK, it doesn't do
 anything.

Did you not see my earlier post? It sounds like you should be able to
do what you want without any configuration changes at all.

-Dave

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Monitoring Tomcat availability in a load balanced capacity

2008-11-12 Thread Robert Koberg

Ooops, sorry. I meant this to go to someone else...


On Nov 12, 2008, at 5:06 PM, Robert Koberg wrote:

You mentioned you just upgraded your MS SQL. Is it possible that the  
default encoding changed? It should be using UTF-8. Can you check  
that?



On Nov 12, 2008, at 4:48 PM, André Warnier wrote:


Adam Gordon wrote:
See my reply to Hassan.  I think setting up a proxy would be  
overkill, and besides, when running Tomcat in a load-balanced  
capacity w/ sticky sessions using mod JK, while you can connect  
directly to the port on which Tomcat is listening for mod JK  
requests, unless you speak mod JK, it doesn't do anything.


I'm glad there is another solution available directly through  
mod_jk, which I was unaware of.


But re-read my earlier attempt maybe.
I wasn't trying to tell you to talk to the AJP connector from the  
front-end.  I was trying to tell you to talk to Tomcat's HTTP  
ports, not to interfere with the load balancing, which I presume  
applies only to requests coming through the AJP connectors.

Like, at the Apache front-end level :
Location /tomcat1/are_you_there
 --- proxy to http://tomcat1:8080/imthere.html
/Location
Location /tomcat2/are_you_there
 --- proxy to http://tomcat2:8081/imtheretoo.html
/Location

Seemed pretty clever to me, as a quick solution. ;-)
Maybe due to my lack of knowledge, but I don't really see where the  
overkill would be.




--adam
André Warnier wrote:

Adam Gordon wrote:
We're running two Tomcat (5.5.16) instances in a load-balanced  
capacity behind an Apache server (2.0.55 w/ mod j/k 1.2.14).


We'd like to set up some sort of monitoring that would allow us  
to not just check to see if the Tomcat Java processes are still  
running (that's easy) but to actually connect to each web server  
(either independently or via the load-balancer) and verify that  
a certain page can be returned.


Since we're connecting to Tomcat via an Apache load-balancer, we  
don't know of a way to force the load-balancer to go to a  
certain Tomcat instance.  Additionally, we don't know how to  
speak mod j/k so we can't fake a direct connection to each  
Tomcat instance.


Does anyone know of a way or a product (commercial or open- 
source) to achieve this?


I don't think you would need a special product to do that, open  
source or not.
On your Apache front-end, it would probably be easy to set up a  
proxy, which via simple HTTP would proxy just the links you want  
to either one of your back-end Tomcat HTTP ports.
You would need the HTTP Connector active on each Tomcat, but that  
should already be the case by default.


Someone better versed in Apache mod_proxy could help you there.
Maybe try the list at [EMAIL PROTECTED] if you don't get  
more help here.


Of course, if you can access your Tomcats directly through their  
own HTTP ports, then you don't even need that.  I'm just assuming  
you cannot.


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Get Security subject from Tomcat

2008-11-12 Thread Arash Bizhan zadeh
On Wed, Nov 12, 2008 at 4:06 PM, Caldarale, Charles R 
[EMAIL PROTECTED] wrote:

  From: Arash Bizhan zadeh [mailto:[EMAIL PROTECTED]
  Subject: Get Security subject from Tomcat
 
  Is there is was I can get the authenticated User from inside my
  servlet/filter?

 Perhaps reading the Servlet spec or the APIs would help:

 http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServletRequest.html#getUserPrincipal()http://java.sun.com/products/servlet/2.5/docs/servlet-2_5-mr2/javax/servlet/http/HttpServletRequest.html#getUserPrincipal%28%29


Sure it might help. Reading my mail would have helped too. I need the
Subject not the principal.




  Please reply directly, I am not subscribed.

 Then I guess you won't see the response...

  - 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 start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-- 
The dirtiest book of all is the expurgated book.

Walt Whitman


Re: Tomcat threads, II

2008-11-12 Thread Juha Laiho
André Warnier wrote:
 Now that I have (with your help) established some basic facts, I have a
 practical case for analysis.
 
 We have an old clunker PC (Pentium II, 512 Mb Ram, average ATA disks),
 which we use to test some applications (not only Java/Tomcat).
...
 Now, if I stop and restart Tomcat, for something like 6 minutes after
 that, the same top display shows this kind of thing :
 (There are 4 consecutive snapshots here, taken at more or less regular
 intervals during the 6 minutes)

Comments on your situation and top snapshots:
- you're low on memory, but not paging heavily yet; you're likely taking
  some kind of hit from not having enough memory for a decent buffer
  cache (disk cache), though
- your swap usage remains constant to 7k (on which I base my claim
  that you're not paging heavily)
- CPU usage, at least based on these snapshots, is almost pure user-mode
  CPU use, so there's little else happening than some computation internal
  to the application/Tomcat
- looks like you could do with slightly smaller Java heap size, at least
  at this point of execution -- but it also could be that a smaller heap
  would get you an OutOfMemoryError later on
- based on the fact that 'top' shows only 188M memory resident of the
  total 482M address space, the application is not even close to heap
  size (thus GC limits), but you could verily the GC issue by
  enabling verbose garbage collection for your JVM (with -verbose:gc flag
  to Java startup parameters)
- you could also see which of the threads are taking time, with
  ps -fLp pid-of-tomcat-java (and getting the thread information
  f.ex. by getting a thread dump with kill -QUIT pid-of-tomcat-java
  to catalina.out

 In other words, while this application is being loaded, our Tomcat and
 the whole system are totally unresponsive for about 5 minutes.

Whole system - as in ls from command line taking ages to complete
when the startup is running? If so, then this could indicate a bottleneck
in disk I/O (and as such, would be, partially at least, in line with my
comment on not having enough memory for a buffer cache). However, this
could also contradict my assumption that paging is not the issue. If
it's a memory issue, you could help it a bit by lowering the heap size
limit for the Tomcat JVM (but therein lies the risk of getting an OOME).

However, as you noted, the machine is weak in terms of memory capacity
and CPU power -- and I would suspect in hard drive speed just as well.
And what it is you're doing: loading a largish file from the drive
(while having minimal amount of memory available for buffer cache),
and doing some memory- and CPU-intensive processing (XML parsing) on it.

So, I would encourage you to have a look at the start times of the application
on one of your production servers, preferably at a time of low traffic. In
case of hangs, it might be good to have a command-line ready with
kill -9 pid-of-tomcat-java to forcibly end the Tomcat process
(however I strongly suspect you're not going to need it).
-- 
..Juha

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Get Security subject from Tomcat

2008-11-12 Thread Caldarale, Charles R
 From: Arash Bizhan zadeh [mailto:[EMAIL PROTECTED]
 Subject: Re: Get Security subject from Tomcat

 Sure it might help. Reading my mail would have helped too. I need the
 Subject not the principal.

O.k., I'm confused.  If you're looking for the user name, then the 
java.security.Principal returned by getUserPrincipal() has a getName() method.  
If that's not what you mean by Subject, what is?

 - 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 start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Get Security subject from Tomcat

2008-11-12 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Arash,

Arash Bizhan zadeh wrote:
 Sure [reading the servlet API] might help. Reading my mail would have helped 
 too. I need the
 Subject not the principal.

Ouch. You're gonna get the cold shoulder with that kind of snarkiness.
Your original message said authenticated user in the body.

A quick look through Tomcat's source code shows:

$ grep SUBJECT_ATTR `find java/ -name *.java`
java/org/apache/catalina/connector/Request.java:
session.getAttribute(Globals.SUBJECT_ATTR) == null) {
java/org/apache/catalina/connector/Request.java:
session.setAttribute(Globals.SUBJECT_ATTR, subject);
java/org/apache/catalina/security/SecurityUtil.java:
(Subject)session.getAttribute(Globals.SUBJECT_ATTR);
java/org/apache/catalina/security/SecurityUtil.java:
session.setAttribute(Globals.SUBJECT_ATTR, subject);
java/org/apache/catalina/session/StandardSession.java:
Globals.SUBJECT_ATTR
java/org/apache/catalina/Globals.java:public static final String
SUBJECT_ATTR =

Taking a quick look at these classes shows that this:

 getSession().getAttribute(Globals.SUBJECT_ATTR);

should work. Of course, there's always a chance that the subject is
null. In most cases in the code, when the Subject is null, a new Subject
object is created with no arguments and thrown into the session under
the Globals.SUBJECT_ATTR key.

- -chris

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

iEYEARECAAYFAkkbWgUACgkQ9CaO5/Lv0PB7ywCfWsw8lOmT2rg85wddJ+n3C6xL
PWsAn1KdKrcv+mErYjOjaNMAonGYE/yS
=nnOG
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads, II

2008-11-12 Thread Michael Ludwig
Christopher Schultz schrieb am 12.11.2008 um 16:42:06 (-0500):
 André Warnier wrote:

  In other words, while this application is being loaded, our Tomcat
  and the whole system are totally unresponsive for about 5 minutes.

 1. DNS settings. Especially when parsing XML (which often requires
 looking up a DTD or XML Schema file on a remote server), you might be
 hitting a problem where your DNS resolver is taking a long time, but
 finally succeeding (which is why you don't see any errors).

If this is happening here (and it may be), consider using XML catalogs,
which are simply local filesystem caches of XML/SGML resources. (On
Debian, IIRC, the package is called xml-base.)

Waiting on the net, however, wouldn't account for your server's
unresponsiveness.

Processing 25 MB of XML in memory (as opposed to by stream), as in DOM
or XSL, may easily consume 200 MB of RAM. If it's XSL and not done
properly, five minutes of CPU hogging are easily attainable :-)

I'd ask the vendor to explain what's going on.

Michael Ludwig

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Tomcat threads

2008-11-12 Thread Alan Chaney


André

André Warnier wrote:


(and what is PermGen ?)


No one else seemed to answer this. PermGen is the chunk of memory which 
is allocated to the JVM in which to hold the 'prototypes' of the class 
files used. For a large web app with lots of classes (NOT object) it is 
common to have to radically increase this over the default (which, from 
memory, is 64M, to 192M or even 256M to taste.)


It is possible to write a Java web application in such a way that during 
application reload some of the PermGen is not released. This is what we 
call a 'bug' but it can be difficult and frustrating to locate.


Try Googling -XX:MaxPermSize for more details.

Regards

Alan





-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Get Security subject from Tomcat

2008-11-12 Thread Arash Bizhan zadeh
On Wed, Nov 12, 2008 at 5:34 PM, Christopher Schultz 
[EMAIL PROTECTED] wrote:

 -BEGIN PGP SIGNED MESSAGE-
 Hash: SHA1

 Arash,

 Arash Bizhan zadeh wrote:
  Sure [reading the servlet API] might help. Reading my mail would have
 helped too. I need the
  Subject not the principal.

 Ouch. You're gonna get the cold shoulder with that kind of snarkiness.
 Your original message said authenticated user in the body.

 A quick look through Tomcat's source code shows:

 $ grep SUBJECT_ATTR `find java/ -name *.java`
 java/org/apache/catalina/connector/Request.java:
 session.getAttribute(Globals.SUBJECT_ATTR) == null) {
 java/org/apache/catalina/connector/Request.java:
 session.setAttribute(Globals.SUBJECT_ATTR, subject);
 java/org/apache/catalina/security/SecurityUtil.java:
(Subject)session.getAttribute(Globals.SUBJECT_ATTR);
 java/org/apache/catalina/security/SecurityUtil.java:
 session.setAttribute(Globals.SUBJECT_ATTR, subject);
 java/org/apache/catalina/session/StandardSession.java:
 Globals.SUBJECT_ATTR
 java/org/apache/catalina/Globals.java:public static final String
 SUBJECT_ATTR =

 Taking a quick look at these classes shows that this:

  getSession().getAttribute(Globals.SUBJECT_ATTR);


Tomcat 5.5.26, returns null as subject. I have security constraints on
web.xml and developed a JAAS module to login, so I guess the subject is not
null.
Any suggestions?


 should work. Of course, there's always a chance that the subject is
 null. In most cases in the code, when the Subject is null, a new Subject
 object is created with no arguments and thrown into the session under
 the Globals.SUBJECT_ATTR key.

 - -chris

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

 iEYEARECAAYFAkkbWgUACgkQ9CaO5/Lv0PB7ywCfWsw8lOmT2rg85wddJ+n3C6xL
 PWsAn1KdKrcv+mErYjOjaNMAonGYE/yS
 =nnOG
 -END PGP SIGNATURE-

 -
 To start a new topic, e-mail: users@tomcat.apache.org
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]




-- 
The dirtiest book of all is the expurgated book.

Walt Whitman


  1   2   >