Re: mod_jk taking a single tomcat-worker offline for softwaremaintenance
Rainer, > No, the design of mod_jk is stateless w.r.t. sessions. There are only the > obvious solutions, i.e. assuming that after some time of disabling (time > depending on typical session use cases like 10 minutes or an hour) you stop > the worker and thereby redirect users that still try to use the node to > another node. They'll get an error of course and would need to relogin. > Usually with some time of disable status you can reduce the number of > sessions, that will need to relogin and thus be disturbed by your > maintenance to about 5% (your mileage may vary). > If you want to improve user experience more, you could include a > maintenance information in your app, like "Please logout and relogin during > the next hour because we have a maintenance scheduled starting at ...". thank you a lot for the fast follow-up and the clarification of the stateless architecture of mod_jk in case of session ids. I will continue to do the obvious as you described it. Thomas - 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: comet client doesn't receive server response
yes, most proxies will wait until they receive the end of the response, before passing it on. that's what you are seeing, a regular servlet, ends the response right away Filip Peter Warren wrote: What is interesting to me is that the exact same client code only using a different url (i.e. to a normal http servlet, not a comet servlet) succeeds. Is there something in comet response headers that an antivirus app or firewall would pick up on? Why would a request to a normal servlet succeed and a comet servlet fail? Keep in mind the comet servlet has been shown to be funtional on numerous other machines. I believe I disabled all firewalls and antivirus on the suspect machine, but I will double-check. Thanks for your response, Peter On Jan 15, 2008 9:37 AM, Leonardo Fraga <[EMAIL PROTECTED]> wrote: Hello, I've had problems with long http responses and some kind of antiviruses and internet firewalls (avg family, basically). They put a hook on the winsocket stack for http connections and buffer everything you are receiving, until the end (or some high amount of data), to run the checks. In my case, this buffering lasts for minutes, with no byte sent back to the browser. I think this can be a simple point to check... Hugs, Leonardo Fraga Web Developer [EMAIL PROTECTED] Peter Warren wrote: I posted this question along with some others recently. I'm re-posting it in its own thread with some additional information. I have a comet client app that works on all the machines I've tested except one. The failing machine sends a comet request to the server and then waits indefinitely for the response, even though the server has sent the response and flushed the buffer. I'm trying to figure out why the client doesn't receive the response and would really appreciate any tips. Server is latest from 6.0.x trunk and using nio connector. Failing machine info: - runs windows xp - windows firewall is turned off - fails on multiple networks, so it doesn't seem to be a router or firewall issue - computer has no problem with other network access - same test code pointed at a non-comet servlet (simply changing the url) succeeds!!! I used a socket monitoring tool to see if the client machine receives the response at all. It doesn't appear to. Below are traces from a successful machine and the failing machine. I'm not a sockets expert, so I don't really know what to look for, but the two things that stand out to me are: - failing machine uses localhost ip instead of its LAN ip (which is 192.168.1.102 according to ipconfig) - succeeding machine uses LAN ip - I don't understand why they're different - failing machine receives WSAEWOULDBLOCK error instead of server response I believe the WSAEWOULDBLOCK basically indicates that there's nothing on the socket to be read, which seems to indicate that the failing machine never receives the response at all. Is this a comet problem? Is it a routing problem? Anyone have any ideas for what the problem might be? Any tips on what I should investigate next? Thanks, Peter SUCCEEDING MACHINE SOCKET TRACE = Connect Address: 66.241.85.247:80 Return Value: 0 Error Code:0 GetSockName Address: 192.168.1.133:1104 Return Value: 0 Error Code:0 SetSockOpt - Level: SOL_SOCKET Opt Name: SO_KEEPALIVE Opt Len: 4 Return Value: 0 Error Code:0 01 00 00 00 Send --- Address: 192.168.1.133:1104 => 66.241.85.247:80 Flags: 0 Return Value: 0 Error Code:0 Data: POST /servlet/Receive HTTP/1.1 Host: www.seekspeak.com User-Agent: SeekSpeak Connection: keep-alive Content-Type: text/plain Transfer-Encoding: chunked 2c source_chat_id=192.168.1.1%3A486547763981705 Recv --- Address: 192.168.1.133:1104 =< 66.241.85.247:80 Flags: 0 Return Value: 0 Error Code:0 Data: HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=4618F4394D4924A5629628ED1CD2ADDE; Path=/ Transfer-Encoding: chunked Date: Thu, 10 Jan 2008 07:55:05 GMT 49 OK COMMAND INVITATION_ACCEPTED tutorial_client Invitation accepted... FAILING MACHINE SOCKET TRACE = Connect Address: 66.241.85.247:80 Return Value: 0 Error Code:0 GetSockName Address: 127.0.0.1:2085 Return Value: 0 Error Code:0 SetSockOpt - Level: SOL_SOCKET Opt Name: SO_KEEPALIVE Opt Len: 4 Return Value: 0 Error Code:0 01 00 00 00 Send
Re: comet questions
setting a timeout doesn't mean you're gonna get a timeout in exactly 5 seconds, it means that after 5 seconds the server can time it out. the server is still only checking for timeouts at certain intervals. the way you describe it, like connectionTimeout drives your timeout, that would mean you're actually in an event, what I think it is, it could be related to chunk parsing, and that will be taken care of in the next release, hopefully out next week filip Peter Warren wrote: Anyone else experiencing comet timeout problems with the nio connector and the latest 6.0.x trunk? My cometEvent.setTimeout(...) setting is ignored, but I do receive comet timeouts based on the connectionTimeout setting for the nio connector. Setting the connectionTimeout to 10 secs gives me a comet timeout event every 10 secs. Setting it to 2 mins gives a comet timeout every 2 mins. The docs don't mention any link between the connectionTimeout settings and comet timeout events that I can find. Connector config: On Jan 9, 2008 12:23 PM, Peter Warren <[EMAIL PROTECTED]> wrote: Using the nio connector from the latest 6.0.x trunk, I'm failing to receive any comet timeouts. I set the comet timeout to 5 secs but, after waiting much longer than 5 secs, the only two events I receive are begin and read. event: BEGIN, subtype: null for servlet: com.seekspeak.server.debug.CometTestServlet time: Wed Jan 09 12:12:28 PST 2008 on cometEvent: [EMAIL PROTECTED] with "org.apache.tomcat.comet.timeout" attribute: null with "org.apache.tomcat.comet.timeout.support" attribute: true event: READ, subtype: null for servlet: com.seekspeak.server.debug.CometTestServlet time: Wed Jan 09 12:12:28 PST 2008 on cometEvent: [EMAIL PROTECTED] with "org.apache.tomcat.comet.timeout" attribute: 5000 with "org.apache.tomcat.comet.timeout.support" attribute: true I see that the Http11NioProcessor changed some comet timeout specific code from the previous rev. Could this be having an impact? Below is my test client and test servlet. Am I doing something wrong? Thanks, Peter SERVLET --- public class CometTestServlet extends HttpServlet implements CometProcessor { public void event(CometEvent cometEvent) throws IOException, ServletException { System.out.println("event: " + cometEvent.getEventType() + ", subtype: " + cometEvent.getEventSubType()); System.out.println("\tfor servlet: " + this.getClass().getName()); System.out.println("\ttime: " + new Date(System.currentTimeMillis())); System.out.println("\ton cometEvent: " + cometEvent); System.out.println("\twith \"org.apache.tomcat.comet.timeout\" attribute: " + cometEvent.getHttpServletRequest().getAttribute("org.apache.tomcat.comet.timeout")); System.out.println("\twith \"org.apache.tomcat.comet.timeout.support\" attribute: " + cometEvent.getHttpServletRequest().getAttribute("org.apache.tomcat.comet.timeout.support")); if (cometEvent.getEventType() == CometEvent.EventType.BEGIN) { cometEvent.setTimeout(5 * 1000); } else if (cometEvent.getEventType() == CometEvent.EventType.ERROR) { cometEvent.close(); } else if (cometEvent.getEventType() == CometEvent.EventType.END) { cometEvent.close(); } else if (cometEvent.getEventType() == CometEvent.EventType.READ) { handleReadEvent(cometEvent); } } private void handleReadEvent(CometEvent cometEvent) throws IOException, ServletException { ServerCometChannel talker = new ServerCometChannel(cometEvent); respond(talker); } private void respond(ServerCometChannel channel) throws IOException { String clientMessage = channel.receive(); if (clientMessage != null && clientMessage.length() > 0) { channel.send("comet succeeded"); } } private class ServerCometChannel { private static final int OUTPUT_BUFFER_SIZE = 512; private CometEvent cometEvent; private InputStream inputStream; private PrintWriter outputWriter; public ServerCometChannel(CometEvent cometEvent) throws IOException, ServletException { this.cometEvent = cometEvent; inputStream = cometEvent.getHttpServletRequest().getInputStream(); OutputStream outputStream = cometEvent.getHttpServletResponse().getOutputStream(); this.outputWriter = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream), OUTPUT_BUFFER_SIZE)); } private String receive() throws IOException { StringBuffer buffer = new StringBuffer(); byte[] buf = new byte[512]; while (inputStream.available() > 0) { int n = inputStream.read(buf); if (n > 0) { buffer.append(new String
Re: comet end event
now I get it. I just ran through a test case, and an END event was not thrown just because there was an end chunk. the response is very much still open at that point Filip Peter Warren wrote: What java.net.HttpURLConnection has to do with Tomcat and comet is that HttpURLConnection is Java's implementation of an http client and will likely be used by people developing comet apps for Tomcat. In my case, I want to use it because I can't use raw sockets on my applet client due to permission problems when trying to use sockets behind a proxy. I understand that asynchronous writes are possible, but they're not when using HttpURLConnection because HttpURLConnection sends a "last chunk" message when it's done with its request. "Last chunk" generates a comet end event, which then requires that the connection to the client be closed. I guess I don't understand why tomcat needs to close the connection after an END event. It seems to me that the "last chunk" message from the client simply indicates that the client is done sending its request. Why does the server need to close the connection when the client finishes its request? Peter On Jan 19, 2008 6:01 PM, Filip Hanik - Dev Lists <[EMAIL PROTECTED]> wrote: I'm not sure what HttpURLConnection has to do with Tomcat or comet. and yes, asynchronous writes are possible, just not after the END or ERROR events have been issued Filip Peter Warren wrote: Does that mean that HttpURLConnection cannot be used for comet requests with asynchronous (i.e. delayed) responses? It would seem so to me since HttpURLConnection always sends an END message before reading from the server and since the server can no longer write to the client after closing the comet event. Am I missing something? Is there a way to write to the client after the comet event is closed? Would you consider it a bug that HttpURLConnection is implemented that way? Peter On Jan 18, 2008 9:21 PM, Filip Hanik - Dev Lists <[EMAIL PROTECTED]> wrote: during end and error, you MUST close the Comet event Filip Peter Warren wrote: What do I do to make the END event stop repeating? I don't want to close the CometEvent yet because the server is waiting for data to send to the client. If I don't close the comet event, the END event repeats incessantly. I'm using an unsigned applet as a comet client. To accommodate proxies, I've had to change my comet client to use HttpURLConnection instead of Sockets. (Accessing ProxySelector from an applet to create a socket with a proxy generates an AccessControlException.) HttpURLConnection unfortunately sends a 0crlf when its input stream is retrieved for reading. This generates a Comet END event. Short of closing the comet event, how can I make the server stop notifying me of END events? I can't close the comet event because I want to hold onto the comet output stream for use later to send data to the client. >From the comet docs: EventType.END: End may be called to end the processing of the request. Fields that have been initialized in the begin method should be reset. After this event has been processed, the request and response objects, as well as all their dependent objects will be recycled and used to process other requests. End will also be called when data is available and the end of file is reached on the request input (this usually indicates the client has pipelined a request). This seems to indicate that even if I could get the END event to go away quietly, the comet event's output stream might no longer be usable anyway. It seems to me I have 3 options: 1) figure out how to make the comet END event stop repeating and hope it's output stream still works 2) figure out how to keep HttpURLConnection from sending 0crlf (don't know if that can be done) 2) use sockets with ProxySelector (which requires signing my applet and getting users to grant it privileges) Thanks, Peter - 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
RE: Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, how-to-know which is running?
> From: David Brown [mailto:[EMAIL PROTECTED] > Subject: Tomcat 4.x, 5.x Client mode vs Server mode and > JAVA_OPTS, how-to-know which is running? Martin's comment about not being able to run in server mode on a Windows box is, of course, fallacious. A HotSpot JVM will run in server or client mode on any box (although the client libraries don't seem to be included in recent 64-bit Linux JVM downloads; don't know if they're included in the 64-bit Windows versions). > The currently running TC instances are deployed as > Services under Windoe 2003 servers. To select the server vs client mode on Tomcat 5.0, 5.5, or 6.0 installed as a Windows service, run the tomcat5w.exe program from Tomcat's bin directory, go to the Java tab, and set the value in the Java Virtual Machine box to use the server or client directory, as desired. E.g.: \bin\server\jvm.dll \bin\client\jvm.dll I would hope there's something similar for 4.1, but I've never used that level. - 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: web.xml problems outside tomcat webapp folder
yes..can you also display you configuration for default Virtual Host appBase attribute? In other words %TOMCAT_HOME%\conf\server.xml you should see appBase that looks like Sent: Sunday, January 20, 2008 6:19 PM Subject: Re: web.xml problems outside tomcat webapp folder > On Jan 20, 2008 1:41 PM, Frank Habermann <[EMAIL PROTECTED]> wrote: > > > i am using tomcat 6.0.14 on windows and create projects with eclipse. > > For my own projects i do not use the webapps folder from the original package > > of tomcat. I use a different location. But with this solution i have some > > problems. Tomcat is not using all values from the web.xml. > > Do you have any initialization errors in your logs? If not, can you > create a reproducible test case (war)? > > -- > 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] > > - 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: web.xml problems outside tomcat webapp folder
On Jan 20, 2008 1:41 PM, Frank Habermann <[EMAIL PROTECTED]> wrote: > i am using tomcat 6.0.14 on windows and create projects with eclipse. > For my own projects i do not use the webapps folder from the original package > of tomcat. I use a different location. But with this solution i have some > problems. Tomcat is not using all values from the web.xml. Do you have any initialization errors in your logs? If not, can you create a reproducible test case (war)? -- 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: Fw: Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, how-to-know which is running?
Martin Gainty schrieb: I dont believe you can force JAVA VM to run in 'server-mode' configuration on any windows box perhaps if you try to use -server option configured in the %JAVA_OPTS% with a AMD64 bit processor? http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html C:\Programme\Java\jdk1.6.0_04\bin>java -version java version "1.6.0_04" Java(TM) SE Runtime Environment (build 1.6.0_04-b12) Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing) C:\Programme\Java\jdk1.6.0_04\bin>java -server -version java version "1.6.0_04" Java(TM) SE Runtime Environment (build 1.6.0_04-b12) Java HotSpot(TM) Server VM (build 10.0-b19, mixed mode) Server class detection only describes the rules for automatic client/server choice. You can always force your choice. David: if you don't specify via -server/-client, it will be client VM on 32 Bit Win. Regards, Rainer M - Original Message - From: "David Brown" <[EMAIL PROTECTED]> To: Sent: Sunday, January 20, 2008 2:42 PM Subject: Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, how-to-know which is running? Hello TC committers, contributors and users. I am a long time TC user and it is the reason I have my current gig. In spite of the length of time using Tomcat I was not aware of the Client vs Server mode using the JAVA_OPTS variable in catalina or the startup script. Currently, I am using JMeter to assess the webapps running under TC. I suspect a lot of my clients problems reside with the deployed webapps and not-so-such problems with TC. This being said I would like to investigate performance issues with TC i.e. the so-called Client vs Server mode. Is there some definitive test to know which mode a currently running TC instance is running under? There are 3 instances I have to deal with: development deployment, test deployment and production deployment. Obviously, I cannot do anything to the Production app server that would risk bouncing or shutting down the box. JMeter monitoring does not work under TC 4.x because there is no manager/status page from which to parse the XML data. The currently running TC instances are deployed as Services under Windoe 2003 servers. I examied the properties dialog boxes from the Services application and I do not see any reference to JAVA_OPTS or any type of startup params. If anyone has TC Client vs Server mode expertise or if you just want to rant and rave please reply. The particulars follow. Thanks, David. OS: Windows 2003 server SP1 TC: 4.x and 5.x JDK: 1.3.x and 1.4.x Deployed as a service in all instances. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
web.xml problems outside tomcat webapp folder
Hi, i am using tomcat 6.0.14 on windows and create projects with eclipse. For my own projects i do not use the webapps folder from the original package of tomcat. I use a different location. But with this solution i have some problems. Tomcat is not using all values from the web.xml. Perhaps jsp-config is not used. If i put my project to the original webapps folder it works. What is wrong here or can i do that this config values will work also in a different location? thanks Frank Habermann - 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 App becomes Unresponsive
Okay, sounds good. Thanks. Now if I could just figure out how to cause it to happen... > If you are on a UNIX jvm, issue a signal 3 (SIGQUIT) to the jvm process > when tomcat stops responding. It will dump on standard-out (normaly > redirected to catalina.out) the list of Threads with a stacktrace for > each. By invstigating stacktrace you will get clues as where the problem > is. I don't know if mysql is protected against deadlocks, but it may be > user1 locks ressource X, user2 locks ressource Y, user1 wait for Y to > free, user2 wait for X to free, all other users are waiting for X to > free, filling in the ThreadQueue, tomcat then look like unresponsive. > > Of course the same kind of concurrency issue can occurs with > synchronized{} blocks > > Note, you can also get such dump on windows, it requires you to press > magic key combinaison in JVM terminal (don't remember which) > tc a écrit : >> I have been asked to investigate a tomcat/java application. >> >> The basic problem is that this application sometimes becomes >> unresponsive >> if more than one user uses it at a time. Restarting Tomcat clears the >> problem. I don't think it has ever occurred when only one person was >> using the app. >> >> It is a fairly straight forward data-entry app; the data is stored in a >> mysql database. >> >> The developers think there may some issue with the database. They have >> also done multi-user testing without being able to reproduce the >> problem. >> >> I'm looking for pointers to any resources on the web or elsewhere that >> can >> help me track down the problem, or ideas about where to look, or what we >> can do to improve post-freeze diagnosis of this problem. >> >> I am also a developer, but I don't have a lot of experience with Java or >> Tomcat. I'm trying to bring a fresh perspective to this problem. >> >> 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] >> > > > - > 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 App becomes Unresponsive
If you are on a UNIX jvm, issue a signal 3 (SIGQUIT) to the jvm process when tomcat stops responding. It will dump on standard-out (normaly redirected to catalina.out) the list of Threads with a stacktrace for each. By invstigating stacktrace you will get clues as where the problem is. I don't know if mysql is protected against deadlocks, but it may be user1 locks ressource X, user2 locks ressource Y, user1 wait for Y to free, user2 wait for X to free, all other users are waiting for X to free, filling in the ThreadQueue, tomcat then look like unresponsive. Of course the same kind of concurrency issue can occurs with synchronized{} blocks Note, you can also get such dump on windows, it requires you to press magic key combinaison in JVM terminal (don't remember which) tc a écrit : I have been asked to investigate a tomcat/java application. The basic problem is that this application sometimes becomes unresponsive if more than one user uses it at a time. Restarting Tomcat clears the problem. I don't think it has ever occurred when only one person was using the app. It is a fairly straight forward data-entry app; the data is stored in a mysql database. The developers think there may some issue with the database. They have also done multi-user testing without being able to reproduce the problem. I'm looking for pointers to any resources on the web or elsewhere that can help me track down the problem, or ideas about where to look, or what we can do to improve post-freeze diagnosis of this problem. I am also a developer, but I don't have a lot of experience with Java or Tomcat. I'm trying to bring a fresh perspective to this problem. 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] - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Fw: Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, how-to-know which is running?
I dont believe you can force JAVA VM to run in 'server-mode' configuration on any windows box perhaps if you try to use -server option configured in the %JAVA_OPTS% with a AMD64 bit processor? http://java.sun.com/j2se/1.5.0/docs/guide/vm/server-class.html M > - Original Message - > From: "David Brown" <[EMAIL PROTECTED]> > To: > Sent: Sunday, January 20, 2008 2:42 PM > Subject: Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, > how-to-know which is running? > > > > Hello TC committers, contributors and users. I am a long time TC user and > it is the reason I have my current gig. In spite of the length of time using > Tomcat I was not aware of the Client vs Server mode using the JAVA_OPTS > variable in catalina or the startup script. Currently, I am using JMeter to > assess the webapps running under TC. I suspect a lot of my clients problems > reside with the deployed webapps and not-so-such problems with TC. This > being said I would like to investigate performance issues with TC i.e. the > so-called Client vs Server mode. Is there some definitive test to know which > mode a currently running TC instance is running under? There are 3 instances > I have to deal with: development deployment, test deployment and production > deployment. Obviously, I cannot do anything to the Production app server > that would risk bouncing or shutting down the box. JMeter monitoring does > not work under TC 4.x because there is no manager/status page from which to > parse the XML > > data. The currently running TC instances are deployed as Services under > Windoe 2003 servers. I examied the properties dialog boxes from the Services > application and I do not see any reference to JAVA_OPTS or any type of > startup params. If anyone has TC Client vs Server mode expertise or if you > just want to rant and rave please reply. The particulars follow. Thanks, > David. > > > > OS: Windows 2003 server SP1 > > TC: 4.x and 5.x > > JDK: 1.3.x and 1.4.x > > Deployed as a service in all instances. > > > > - > > 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: mod_jk taking a single tomcat-worker offline for softwaremaintenance
Hi Thomas, Thomas Glanzmann schrieb: Hello, I have mod_jk version 1:1.2.18-3etch1 (which comes with Debian Etch) as loadbalancer in front of four tomcats version 5.5.20-2etch2 that do not duplicate sessions because of their size (100Mbyte per session; 120 - 500 users). My workers.property looks the following: worker.list=router, jkstatus worker.router.type=lb worker.router.balance_workers=tomcat-01, tomcat-02, tomcat-03, tomcat-04 worker.tomcat-01.type=ajp13 worker.tomcat-01.host=tomcat-01 worker.tomcat-01.port=8009 worker.tomcat-01.lbfactor=1 worker.tomcat-02.type=ajp13 worker.tomcat-02.host=tomcat-02 worker.tomcat-02.port=8009 worker.tomcat-02.lbfactor=1 worker.tomcat-03.type=ajp13 worker.tomcat-03.host=tomcat-03 worker.tomcat-03.port=8009 worker.tomcat-03.lbfactor=1 worker.tomcat-04.type=ajp13 worker.tomcat-04.host=tomcat-04 worker.tomcat-04.port=8009 worker.tomcat-04.lbfactor=2 worker.jkstatus.type=status I have to schedule once a week a software update, so I have to take a tomcat server offline to upgrade the software. The problem is that I don't want to kick any users. So I switch in jk_status the mode to disabled. This works for most of the users. After their session times out, they're gone. But I have a few sticky users, who leave their browser open (and come back after 4 hours or a day) or bookmark a site that contains a session id. Mod jk sees the session id and directs it to the disabled tomcat. On the tomcat itself the session id is invalid, it generates a new one and I have the user back on my disabled tomcat. Duplicating the session to another tomcat is currently not possible because a single session has around 100 Mbyte and even in off-hours like right now, there are 100 active sessions. How do other people handle this problem? Is there a way to make mod_jk to check if the session is still active on the tomcat (maybe with a newer version) and only puts a session to a disabled tomcat if indeed the session is still active on that tomcat? Thomas No, the design of mod_jk is stateless w.r.t. sessions. There are only the obvious solutions, i.e. assuming that after some time of disabling (time depending on typical session use cases like 10 minutes or an hour) you stop the worker and thereby redirect users that still try to use the node to another node. They'll get an error of course and would need to relogin. Usually with some time of disable status you can reduce the number of sessions, that will need to relogin and thus be disturbed by your maintenance to about 5% (your mileage may vary). If you want to improve user experience more, you could include a maintenance information in your app, like "Please logout and relogin during the next hour because we have a maintenance scheduled starting at ...". 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]
Tomcat 4.x, 5.x Client mode vs Server mode and JAVA_OPTS, how-to-know which is running?
Hello TC committers, contributors and users. I am a long time TC user and it is the reason I have my current gig. In spite of the length of time using Tomcat I was not aware of the Client vs Server mode using the JAVA_OPTS variable in catalina or the startup script. Currently, I am using JMeter to assess the webapps running under TC. I suspect a lot of my clients problems reside with the deployed webapps and not-so-such problems with TC. This being said I would like to investigate performance issues with TC i.e. the so-called Client vs Server mode. Is there some definitive test to know which mode a currently running TC instance is running under? There are 3 instances I have to deal with: development deployment, test deployment and production deployment. Obviously, I cannot do anything to the Production app server that would risk bouncing or shutting down the box. JMeter monitoring does not work under TC 4.x because there is no manager/status page from which to parse the XML data. The currently running TC instances are deployed as Services under Windoe 2003 servers. I examied the properties dialog boxes from the Services application and I do not see any reference to JAVA_OPTS or any type of startup params. If anyone has TC Client vs Server mode expertise or if you just want to rant and rave please reply. The particulars follow. Thanks, David. OS: Windows 2003 server SP1 TC: 4.x and 5.x JDK: 1.3.x and 1.4.x Deployed as a service in all instances. - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
mod_jk taking a single tomcat-worker offline for software maintenance
Hello, I have mod_jk version 1:1.2.18-3etch1 (which comes with Debian Etch) as loadbalancer in front of four tomcats version 5.5.20-2etch2 that do not duplicate sessions because of their size (100Mbyte per session; 120 - 500 users). My workers.property looks the following: worker.list=router, jkstatus worker.router.type=lb worker.router.balance_workers=tomcat-01, tomcat-02, tomcat-03, tomcat-04 worker.tomcat-01.type=ajp13 worker.tomcat-01.host=tomcat-01 worker.tomcat-01.port=8009 worker.tomcat-01.lbfactor=1 worker.tomcat-02.type=ajp13 worker.tomcat-02.host=tomcat-02 worker.tomcat-02.port=8009 worker.tomcat-02.lbfactor=1 worker.tomcat-03.type=ajp13 worker.tomcat-03.host=tomcat-03 worker.tomcat-03.port=8009 worker.tomcat-03.lbfactor=1 worker.tomcat-04.type=ajp13 worker.tomcat-04.host=tomcat-04 worker.tomcat-04.port=8009 worker.tomcat-04.lbfactor=2 worker.jkstatus.type=status I have to schedule once a week a software update, so I have to take a tomcat server offline to upgrade the software. The problem is that I don't want to kick any users. So I switch in jk_status the mode to disabled. This works for most of the users. After their session times out, they're gone. But I have a few sticky users, who leave their browser open (and come back after 4 hours or a day) or bookmark a site that contains a session id. Mod jk sees the session id and directs it to the disabled tomcat. On the tomcat itself the session id is invalid, it generates a new one and I have the user back on my disabled tomcat. Duplicating the session to another tomcat is currently not possible because a single session has around 100 Mbyte and even in off-hours like right now, there are 100 active sessions. How do other people handle this problem? Is there a way to make mod_jk to check if the session is still active on the tomcat (maybe with a newer version) and only puts a session to a disabled tomcat if indeed the session is still active on that tomcat? Thomas - 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 App becomes Unresponsive
I have been asked to investigate a tomcat/java application. The basic problem is that this application sometimes becomes unresponsive if more than one user uses it at a time. Restarting Tomcat clears the problem. I don't think it has ever occurred when only one person was using the app. It is a fairly straight forward data-entry app; the data is stored in a mysql database. The developers think there may some issue with the database. They have also done multi-user testing without being able to reproduce the problem. I'm looking for pointers to any resources on the web or elsewhere that can help me track down the problem, or ideas about where to look, or what we can do to improve post-freeze diagnosis of this problem. I am also a developer, but I don't have a lot of experience with Java or Tomcat. I'm trying to bring a fresh perspective to this problem. 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: Only see html/code
Hi Chris, Chris Baty schrieb: Hi Guys, I'm running Tomcat 5.5 and Apache 2, with Tomcat connector (Kind of a newbie). I got my Tomcat working fine at /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers. When I point the browser (locally) at localhost:8180/cwrecyclers/ I see exactly what I expect. But when I look remotely also I see is the html. I've looked at all my config files and they all look fine. Could someone point me in the right direction? Thanks Chris What the exact URL, you are testing with? Is it a JSP? Is it an index.jsp, i.e. do you ask for a directory, which includes an index.jsp? Apache: ServerAdmin [EMAIL PROTECTED] ServerName cwrecyclers.hopto.org # Indexes + Directory Root. Don't do this. It will not work reliably. Instead include index.jsp in the list of welcome files on your webapp web.xml. DirectoryIndex index.jsp Don't do this. Since you forward all cwrecyclers requests to Tomcat, Apache httpd does not need to know about the webapp directory. DocumentRoot /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers/ #DocumentRoot /var/www/cwrecyclers/ The first Mount is already included in the second one. JkMount /cwrecyclers/*.jsp cwrecyclers JkMount /cwrecyclers/* cwrecyclers If you don't tel httpd about the webapp with DocumentRoot, you can remove this as well. # Globally deny access to the WEB-INF directory deny from all # Logfiles ErrorLog /var/log/apache2/cwrecyclers.hopto.org.error.log CustomLog /var/log/apache2/cwrecyclers.hopto.org.access.log combined workers.properties > # Tomcat and Java configuration > # Remove the next two, they are useless. workers.tomcat_home=/usr/share/tomcat5.5 workers.java_home=/usr/lib/jvm/java-1.5.0-sun ps=/ worker.list=yougarage # Definition for local worker using AJP 1.3 # worker.yougarage.type=ajp13 worker.yougarage.host=yougarage.tv worker.yougarage.port=8009 Remove cachesize, the default for Apache httpd are better: worker.yougarage.cachesize=20 worker.list=cwrecyclers # Definition for local worker using AJP 1.3 # worker.cwrecyclers.type=ajp13 worker.cwrecyclers.host=cwrecyclers.hopto.org worker.cwrecyclers.port=8009 Remove cachesize, the default for Apache httpd are better: worker.cwrecyclers.cachesize=20 - 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: Only see html/code
Hi Chris is your webserver is forwarding/redirecting or retunfing in the response anything other than html? if so could you display these pages and your configuration from web.xml M-- - Original Message - From: "Chris Baty" <[EMAIL PROTECTED]> To: Sent: Sunday, January 20, 2008 7:35 AM Subject: Only see html/code > Hi Guys, > I'm running Tomcat 5.5 and Apache 2, with Tomcat connector (Kind of a newbie). I got my Tomcat working fine at /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers. When I point the browser (locally) at localhost:8180/cwrecyclers/ I see exactly what I expect. But when I look remotely also I see is the html. I've looked at all my config files and they all look fine. Could someone point me in the right direction? > Thanks > Chris > > Apache: > > ServerAdmin [EMAIL PROTECTED] > ServerName cwrecyclers.hopto.org > > # Indexes + Directory Root. > DirectoryIndex index.jsp > DocumentRoot /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers/ > #DocumentRoot /var/www/cwrecyclers/ > > JkMount /cwrecyclers/*.jsp cwrecyclers > JkMount /cwrecyclers/* cwrecyclers > > > # Globally deny access to the WEB-INF directory > > deny from all > > > > # Logfiles > ErrorLog /var/log/apache2/cwrecyclers.hopto.org.error.log > CustomLog /var/log/apache2/cwrecyclers.hopto.org.access.log combined > > > > > workers.properties > # Tomcat and Java configuration > # > workers.tomcat_home=/usr/share/tomcat5.5 > workers.java_home=/usr/lib/jvm/java-1.5.0-sun > ps=/ > worker.list=yougarage > > # Definition for local worker using AJP 1.3 > # > worker.yougarage.type=ajp13 > worker.yougarage.host=yougarage.tv > worker.yougarage.port=8009 > worker.yougarage.cachesize=20 > > worker.list=cwrecyclers > > # Definition for local worker using AJP 1.3 > # > worker.cwrecyclers.type=ajp13 > worker.cwrecyclers.host=cwrecyclers.hopto.org > worker.cwrecyclers.port=8009 > worker.cwrecyclers.cachesize=20 > > > > > > > > Be a better friend, newshound, and > know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ > - To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Only see html/code
Hi Guys, I'm running Tomcat 5.5 and Apache 2, with Tomcat connector (Kind of a newbie). I got my Tomcat working fine at /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers. When I point the browser (locally) at localhost:8180/cwrecyclers/ I see exactly what I expect. But when I look remotely also I see is the html. I've looked at all my config files and they all look fine. Could someone point me in the right direction? Thanks Chris Apache: ServerAdmin [EMAIL PROTECTED] ServerName cwrecyclers.hopto.org # Indexes + Directory Root. DirectoryIndex index.jsp DocumentRoot /usr/share/tomcat5.5-webapps/ROOT/cwrecyclers/ #DocumentRoot /var/www/cwrecyclers/ JkMount /cwrecyclers/*.jsp cwrecyclers JkMount /cwrecyclers/* cwrecyclers # Globally deny access to the WEB-INF directory deny from all # Logfiles ErrorLog /var/log/apache2/cwrecyclers.hopto.org.error.log CustomLog /var/log/apache2/cwrecyclers.hopto.org.access.log combined workers.properties # Tomcat and Java configuration # workers.tomcat_home=/usr/share/tomcat5.5 workers.java_home=/usr/lib/jvm/java-1.5.0-sun ps=/ worker.list=yougarage # Definition for local worker using AJP 1.3 # worker.yougarage.type=ajp13 worker.yougarage.host=yougarage.tv worker.yougarage.port=8009 worker.yougarage.cachesize=20 worker.list=cwrecyclers # Definition for local worker using AJP 1.3 # worker.cwrecyclers.type=ajp13 worker.cwrecyclers.host=cwrecyclers.hopto.org worker.cwrecyclers.port=8009 worker.cwrecyclers.cachesize=20 Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ