DO NOT REPLY [Bug 8187] New: - Errors when Tomcat used with MS Access database
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8187. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8187 Errors when Tomcat used with MS Access database Summary: Errors when Tomcat used with MS Access database Product: Tomcat 3 Version: 3.2.2 Final Platform: PC OS/Version: Windows 9x Status: NEW Severity: Critical Priority: Other Component: Unknown AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Using MS Access 97 database and tomcat 3.2.2, I receive 2 particular errors that repeats often when worked for more than 1/2 an hour, continously. 1. Error 500 - Cannot open any more tables. In this case, i shutdown the tomcat server then restart it. Is there any other method to overcome this problem or any check to be made in the tomcat server timer. 2. Object Invalid or not set. I also get this message often and it deals with javax.servletexception. But this doesn't have to do anything with my JSP codes. Because, the same page when worked again, gives me proper results. But after sometime, this error throws up. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8189] New: - Having jdk1.3.1_03 instead of jdk1.3.1_01
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8189. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8189 Having jdk1.3.1_03 instead of jdk1.3.1_01 Summary: Having jdk1.3.1_03 instead of jdk1.3.1_01 Product: Tomcat 4 Version: 4.0 Beta 1 Platform: PC OS/Version: Windows 9x Status: NEW Severity: Normal Priority: Other Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] When installing TomCat 4.0, the program find my jdk as jdk1.3.1_01. But I'm using jdk1.3.1_03!! What can I do about it? Hope for help. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java
Hi Bill, billbarker02/04/16 22:49:59 Modified:catalina/src/share/org/apache/catalina/core ApplicationHttpRequest.java catalina/src/share/org/apache/catalina/servlets DefaultServlet.java Log: Attempt to port the 3.3.x logic to 4.x. This fixes the examples in bug #8092. I don't know what else it breaks (so I'm not porting to the 4.0 branch). I think that this is OK, but feel free to -1 if I'm breaking something that I shouldn't be. thanks for the fix, it seems to correct all issues I encountered :-). Your solution is much more elegant (and less intrusive) than what I proposed. I never thought of just swallowing the servlet_path attribute when doing a forward, but it doesn't seem to violate the spec or create any obvious problems. Many thanks again, Andreas -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: [4.0-HEAD] JSP source exposure ?
Pier Fumagalli [EMAIL PROTECTED] wrote: Anyhow, under OS/X with HFS filesystem, something like foo.JsP returns the original source of the page... Can be fixed comparing file.getAbsolutePath() and file.getCanonicalPath(), or at least it looks like it from brief tests... Doing the Windows-check probably fixes it. Remy -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Error running Apache 2.0 with mod_webapp.so ormod_jk-01.sobinaries
Pier, Yeah.. You are correct. This guy replied privately to me that mod_webapp is now working on his box after he build the source from CVS. For the pre-built binary, shouldn't we provide two sets of binaries (1.3 and 2.0), or just remove the them from the site? Before changing things, I'd like to have a couple of major updates (like the SocketPool code in)... But I have no time whatsoever now (daytime job keeps me busy 10%) And don't forget my little version patch ;-) There had been some discussions about mod_webapp in freebsd-java. My present finding is that libtool sucks (again). So you would expect more patches to come. ;-) Pier Punky _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: [4.0-HEAD] JSP source exposure ?
On Tue, 16 Apr 2002, Remy Maucherat wrote: Thanks. Since the problem is real, I've put in a fix (it will return 400 the way 4.0.x does). I'm not sure why it happens though. I think because the file extension is .jsp\0, it gets mapped to the default servlet, which would then attempt to serve the resource. On Windows, I was getting a 404, so my guess is that it was trying to get 'foo.jsp\0' (and failing correctly), while on Unix the file would be found (somehow). IIRC, this is the same as what we saw the last time this kind of thing showed up -- and it was ultimately because of the filesystem logic on the underlying OS. Such a runtime written in C (like most Unix stuff is) will not have any problem at all accepting foo.jsp\0 and treating it as a reference to foo.jsp -- because null bytes delimit Strings in the C I/O library. Thanks for the explanation. Refusing a null character in a decoded URL seems like a safe choice. Remy -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
PROBLEM IN REMOVING THE PATH IN WEB.XML
HI, i have made a context in which i had set a path which the server could not find. but when i removed that path and changed it, tomcat 4.0.3 does not read the changed path but instead refers to same path and hence the file cannot be found. cud anybody explain me the reason. things were not like that in tomcat 3.2.1 Regards, Vikramjit Singh, Systems Engineer, GTL Ltd. Ph. 7612929-1031 Regards, Vikramjit Singh, Systems Engineer, GTL Ltd. Ph. 7612929-1031 -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8205] - request.getPort() returns wrong port after redirect
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8205. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8205 request.getPort() returns wrong port after redirect [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||INVALID --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 16:53 --- Very interesting ! It is a bug in IE (I assume you're using IE). With Mozilla, it works fine. The problem is that the host header sent by IE is incorrect when doing the redirect to ReceiveAndSendRedirect.jsp (it is Host: 127.0.0.1:81, although it should be Host: 127.0.0.1:82). Fixing it (by using our socket's port, for example) violates the HTTP spec, and creates lots of other problems. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8092] - Problems forwarding from an included servlet
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8092. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8092 Problems forwarding from an included servlet [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 16:58 --- Thanks to Bill's help, it has been fixed in the HEAD branch. Apparently, he understood the issue better than I did :) An attempt will be made to port this to the 4.0.x branch. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8196] - misspelled SQL query in org.apache.catalina.session.JDBCStore.keys() method
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8196. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8196 misspelled SQL query in org.apache.catalina.session.JDBCStore.keys() method [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||DUPLICATE --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 17:03 --- This was already submitted a while ago, actually. Unfortunately, none of the committers (me included) are apparently too interested in maintaining the component, so the patch got ignored. I'll apply it. *** This bug has been marked as a duplicate of 7170 *** -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 7170] - JDBCStore don't work with Orcale 8.x
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7170. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7170 JDBCStore don't work with Orcale 8.x [EMAIL PROTECTED] changed: What|Removed |Added CC||[EMAIL PROTECTED] --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 17:03 --- *** Bug 8196 has been marked as a duplicate of this bug. *** -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session JDBCStore.java
remm02/04/17 10:07:53 Modified:catalina/src/share/org/apache/catalina/session JDBCStore.java Log: - Fix bug 7170 (invalid SELECT expression). - Patch submitted by Peter Rossbach pr at webapp.de and Seweryn Sobieszek seweryn.sobieszek at e-point.pl Revision ChangesPath 1.5 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java Index: JDBCStore.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- JDBCStore.java22 Jul 2001 20:25:12 - 1.4 +++ JDBCStore.java17 Apr 2002 17:07:53 - 1.5 @@ -1,8 +1,8 @@ /* * JDBCStore.java - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v 1.4 2001/07/22 20:25:12 pier Exp $ - * $Revision: 1.4 $ - * $Date: 2001/07/22 20:25:12 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v 1.5 2002/04/17 17:07:53 remm Exp $ + * $Revision: 1.5 $ + * $Date: 2002/04/17 17:07:53 $ * * * @@ -93,7 +93,7 @@ * saved are still subject to being expired based on inactivity. * * @author Bip Thelin - * @version $Revision: 1.4 $, $Date: 2001/07/22 20:25:12 $ + * @version $Revision: 1.5 $, $Date: 2002/04/17 17:07:53 $ */ public class JDBCStore @@ -388,7 +388,7 @@ */ public String[] keys() throws IOException { String keysSql = -SELECT COUNT(s.+sessionIdCol+), s.+sessionIdCol+ +SELECT COUNT(s.+sessionIdCol+), c.+sessionIdCol+ FROM +sessionTable+ s, +sessionTable+ c+ GROUP BY c.+sessionIdCol; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session JDBCStore.java
remm02/04/17 10:08:48 Modified:catalina/src/share/org/apache/catalina/session Tag: tomcat_40_branch JDBCStore.java Log: - Port patch. - Fix bug 7170 (invalid SELECT expression). - Patch submitted by Peter Rossbach pr at webapp.de and Seweryn Sobieszek seweryn.sobieszek at e-point.pl Revision ChangesPath No revision No revision 1.4.2.1 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java Index: JDBCStore.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -r1.4 -r1.4.2.1 --- JDBCStore.java22 Jul 2001 20:25:12 - 1.4 +++ JDBCStore.java17 Apr 2002 17:08:48 - 1.4.2.1 @@ -1,8 +1,8 @@ /* * JDBCStore.java - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v 1.4 2001/07/22 20:25:12 pier Exp $ - * $Revision: 1.4 $ - * $Date: 2001/07/22 20:25:12 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/session/JDBCStore.java,v 1.4.2.1 2002/04/17 17:08:48 remm Exp $ + * $Revision: 1.4.2.1 $ + * $Date: 2002/04/17 17:08:48 $ * * * @@ -93,7 +93,7 @@ * saved are still subject to being expired based on inactivity. * * @author Bip Thelin - * @version $Revision: 1.4 $, $Date: 2001/07/22 20:25:12 $ + * @version $Revision: 1.4.2.1 $, $Date: 2002/04/17 17:08:48 $ */ public class JDBCStore @@ -388,7 +388,7 @@ */ public String[] keys() throws IOException { String keysSql = -SELECT COUNT(s.+sessionIdCol+), s.+sessionIdCol+ +SELECT COUNT(s.+sessionIdCol+), c.+sessionIdCol+ FROM +sessionTable+ s, +sessionTable+ c+ GROUP BY c.+sessionIdCol; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 7170] - JDBCStore don't work with Orcale 8.x
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7170. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7170 JDBCStore don't work with Orcale 8.x [EMAIL PROTECTED] changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 17:10 --- I have applied the patch which was originally submitted. Thanks (and sorry for the delay). -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: mod_webapp.so socketpool changes..
[EMAIL PROTECTED] [EMAIL PROTECTED] wrote: Hi, As mentioned in my last email I have updated the socketpool changes to incorporate the changes recommended. I'm not sure if my mail was missed or not but I haven't received any feedback on the latest changes. What's the process to get this code into the codebase? I believe I would need cvs access to commit this (if deemed acceptable) into the source myself. Is this the case? Can someone fill me in Attached are the changes made. Simon, both I and JF have been pretty busy this last few days... I wanted to it out also with Apache 2.0's worker MPM before committing... Pier -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: warp_socketpool
Brian Millett [EMAIL PROTECTED] wrote: I have some feed back for the patch you sent for the socketpool. My system: redhat 7.2, jdk1.4, Apache/2.0.35 (Unix) mod_ssl/2.0.35 OpenSSL/0.9.6b DAV/2 configured, Apache Tomcat/4.1-dev, mod_webapp Apache configured as: ../configure --prefix=/opt/apache \ --with-layout=Apache \ --enable-unique-id=shared \ --enable-ssl=static \ --with-ssl=/usr/include/openssl \ --with-mpm=worker \ --enable-modules=most \ --enable-mods-shared=most \ --enable-so I had to patch your lib/Makefile.in as: --- Makefile.in~Wed Apr 17 09:25:31 2002 +++ Makefile.inWed Apr 17 09:22:06 2002 @@ -79,6 +79,7 @@ pr_warp.lo \ pr_warp_packet.lo \ pr_warp_network.lo \ +pr_warp_socketpool.lo \ pr_warp_config.lo LIB =$(TGTDIR)/lib/libwebapp.a to get the pr_warp_socketpool.c to compile. It seems to work with just fine with the http://localhost/examples/. Good work. Great... That's one piece of news I wanted to hear... And I trust Brian's judgement... If I don't see a -1 in the next 48 hours I'm going to check in... Pier -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: warp_socketpool (new update!)
[EMAIL PROTECTED] [EMAIL PROTECTED] wrote: oops! Brian - thanks for the feedback. I've corrected the problem you found and have attached the updates. Few bobs have changed as well in how to deal with Apache 2.0 builds since I last checked it... Working around the Autoconfigure stuff might be a good idea. Pier -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 7190] - GenericServlet spurious log's in init(), destroy()
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7190. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=7190 GenericServlet spurious log's in init(), destroy() [EMAIL PROTECTED] changed: What|Removed |Added Component|Unknown |Servlet JSP API -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8217] New: - Documentation references workers. prefix
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8217. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8217 Documentation references workers. prefix Summary: Documentation references workers. prefix Product: Tomcat 4 Version: Nightly Build Platform: Other URL: http://jakarta.apache.org/tomcat/tomcat-4.1- doc/config/jk.html OS/Version: Other Status: NEW Severity: Major Priority: Other Component: Connector:JK/AJP (deprecated) AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] Both the documentation at http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk.html and that in jakarta-tomcat-connectors/jk/docs/ from CVS HEAD makes a conflicting references to both a workers. (plural) and worker. (singular) prefix for configuration parameter names. Looking through the source, it seems like the latter is correct (see PREFIX_OF_WORKER #define at jk_util.c:81). This is extremely confusing and should be fixed. I'm willing to submit a patch if someone can give me a definitive answer on this. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11 Http11Protocol.java
remm02/04/17 10:31:37 Modified:http11/src/java/org/apache/coyote/http11 Http11Protocol.java Log: - Add protocol and algorithm properties. Revision ChangesPath 1.8 +8 -0 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java Index: Http11Protocol.java === RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11Protocol.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Http11Protocol.java 16 Apr 2002 23:45:55 - 1.7 +++ Http11Protocol.java 17 Apr 2002 17:31:37 - 1.8 @@ -256,6 +256,14 @@ setAttribute(clientauth, k); } +public void setProtocol( String k ) { +setAttribute(protocol, k); +} + +public void setAlgorithm( String k ) { +setAttribute(algorithm, k); +} + public void setSecure( boolean b ) { secure=b; setAttribute(secure, + b); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 5735] - HTTP connector running out of processors under heavy load
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735 HTTP connector running out of processors under heavy load [EMAIL PROTECTED] changed: What|Removed |Added CC||[EMAIL PROTECTED] Status|RESOLVED|REOPENED Resolution|WORKSFORME | --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 18:50 --- I can confirm that we are definately getting this same problem in our production environment. This is a major and urgent issue for us, our business is riding on it. We are using: Tomcat 4.0.3 Solaris 2.7 Heap 128 min, 256 max JSK 1.3.0.2 Thread pool min 5, 255 max We actually run our of heap at around 140 threads, but are seeing the same pattern. - Things are fine for a while - At a seemingly randon amount of time (usualy several hours) after restart, the Catalina log shows thread creation going crazy: 2002-04-17 01:54:03 HttpProcessor[443][11] Starting background thread 2002-04-17 04:51:02 HttpProcessor[443][12] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][13] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][14] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][15] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][16] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][17] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][18] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][19] Starting background thread 2002-04-17 04:52:45 HttpProcessor[443][20] Starting background thread 2002-04-17 04:52:46 HttpProcessor[443][21] Starting background thread .. .. .. .. 2002-04-17 04:56:43 HttpProcessor[443][127] Starting background thread 2002-04-17 04:56:43 HttpProcessor[443][128] Starting background thread 2002-04-17 04:56:43 HttpProcessor[443][129] Starting background thread 2002-04-17 06:20:20 HttpConnector Opening server socket on all host IP addresses 2002-04-17 06:20:20 HttpConnector Opening server socket on all host IP addresses The gap in the log at 4:56 is the server getting an out-of-memory exception and becoming unresponsive to further resquests (including shutdown). We have to kill manually and restart. During this same time people, we see a huge jump in the amount of memory being used by the JVM for this process. I guess that's why we run out of heap, before we can run out of threads. Sorry for the lack of appropriate detail, I am not the sys admin. Please let me know what better information we can provide. This is happening daily for us, in our (24x7) prod system -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/valve AddValveAction.java
manveen 02/04/17 12:53:27 Added: webapps/admin/WEB-INF/classes/org/apache/webapp/admin/valve AddValveAction.java Log: Implementation of add valve. Revision ChangesPath 1.1 jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/valve/AddValveAction.java Index: AddValveAction.java === /* * $Header: /home/cvs/jakarta-tomcat-4.0/webapps/admin/WEB-INF/classes/org/apache/webapp/admin/valve/AddValveAction.java,v 1.1 2002/04/17 19:53:27 manveen Exp $ * $Revision: 1.1 $ * $Date: 2002/04/17 19:53:27 $ * * * * The Apache Software License, Version 1.1 * * Copyright (c) 2001-2002 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * */ package org.apache.webapp.admin.valve; import java.io.IOException; import java.net.URLEncoder; import java.util.Locale; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.apache.struts.action.Action; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.util.MessageResources; import org.apache.webapp.admin.LabelValueBean; import org.apache.webapp.admin.Lists; /** * The codeAction/code that sets up emAdd Valve/em transactions. * * @author Manveen Kaur * @version $Revision: 1.1 $ $Date: 2002/04/17 19:53:27 $ */ public class AddValveAction extends Action { /** * The MessageResources we will be retrieving messages from. */ private MessageResources resources = null; // the list for types of valves private ArrayList types = null; // - Public Methods /** * Process the specified HTTP request, and create the corresponding HTTP * response (or forward to another web component that will create it). * Return an codeActionForward/code instance describing where and how * control should be forwarded, or codenull/code if the response has
Re: warp_socketpool (new update!)
Pier Fumagalli [EMAIL PROTECTED] wrote: [EMAIL PROTECTED] [EMAIL PROTECTED] wrote: oops! Brian - thanks for the feedback. I've corrected the problem you found and have attached the updates. Few bobs have changed as well in how to deal with Apache 2.0 builds since I last checked it... Working around the Autoconfigure stuff might be a good idea. Before flushing all the modifications in (Simon's and mine on Autoconf), I'm tagging the repo as webapp_0_9, anyone against? The code is pretty stable since quite some time, we know what the bugs are (doh! Win32 support), so... Pier -- I think that it's extremely foolish to name a server after the current U.S. President. B.W. Fitzpatrick -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 5735] - HTTP connector running out of processors under heavy load
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735 HTTP connector running out of processors under heavy load --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 20:32 --- Did you read the comments above ? If you get the OutOfMemory first (before the thread problems), it could be that the server runs out of memory because of too many active sessions (or something like that). -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 6990] - Catalina 4.0.2 hangs after a few days
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6990. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6990 Catalina 4.0.2 hangs after a few days --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 21:12 --- I get something similar. I'm using Catalina 4.0.2 with Ajp13Connector/mod_jk compiled from Tomcat Connectors 4.0.2_1, using apache 1.3.22 to serve non-jsp pages. We are running are production site off the following setup, but occasionally a java/httpd pair will start spinning indefinately. Curious about what was causing this, I took a stack dump using killall -QUIT java and looked up the spinning threads. This revealed the following thread which seemed to be hanging above request.getParameter(String paramname). Let me know if you need more info, or suggestions on working around the problem. Ajp13Processor[8009][9] daemon prio=1 tid=0x0x828a1c0 nid=0x7e33 runnable [5437f000..5438086c] at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:116) at org.apache.ajp.Ajp13.readN(Ajp13.java:429) at org.apache.ajp.Ajp13.receive(Ajp13.java:469) at org.apache.ajp.RequestHandler.refillReadBuffer(RequestHandler.java:712) at org.apache.ajp.RequestHandler.doRead(RequestHandler.java:655) at org.apache.ajp.Ajp13.doRead(Ajp13.java:354) at org.apache.ajp.tomcat4.Ajp13InputStream.read(Ajp13InputStream.java:99) at org.apache.catalina.connector.HttpRequestBase.parseParameters(HttpRequestBase.java:644) at org.apache.catalina.connector.HttpRequestBase.getParameter(HttpRequestBase.java:674) at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:160) at org.apache.jsp.memberLogin$jsp.login(memberLogin$jsp.java:59) at org.apache.jsp.memberLogin$jsp._jspService(memberLogin$jsp.java:500) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:202) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:382) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:474) at com.ee.servlet.RedirectJspServlet.service(RedirectJspServlet.java:43) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at com.ee.servlet.HandleJspServlet.invoke(HandleJspServlet.java:77) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2343) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at
Apache 2.0 - webapps
Has anyone successfully been able to connect Apache 2.0 and Tomcat 4.0. The webapp interface has the following error when loading Apache: Cannot load /apache2/modules/mod_webapp.so into server: ld.so.1: /cdldevel2/loy/apache2/bin/httpd: fatal: relocation error: file /cdldevel2/loy/apache2/modules/mod_webapp.so: symbol ap_pstrdup: referenced symbol not found .//apachectl start: httpd could not be started Any suggestions would be terrific! Thanks David _ MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 5735] - HTTP connector running out of processors under heavy load
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5735 HTTP connector running out of processors under heavy load --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 21:43 --- Yes, I read the entire thread. We keep an eye on the number of active sessions through the manager/list command are these are by no means extreme. In fact this problem tends *not* to happen during our periods of highest load, where we see our active session count at it's max. It seems to be in the morning when a bunch of people log in at once. We are tracing process memory usage and see it double at the same time as the rush of new threads in the pool: 04-17-02:04:30:00 VSZ RSS 194208 169088 04-17-02:04:40:00 VSZ RSS 194272 169160 04-17-02:04:50:00 VSZ RSS 194272 169160 04-17-02:05:00:00 VSZ RSS 342440 315240 04-17-02:05:10:00 VSZ RSS 342080 314880 04-17-02:05:20:00 VSZ RSS 342080 314880 VSZ=Virtual set size RSS=Resident set size Our problem (this morning) occured at 04:55. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/conf jk2.properties workers2.properties
costin 02/04/17 15:22:54 Modified:jk/conf jk2.properties workers2.properties Log: Another config update. This one will load all workers, and redirect the first 3 servlet examples to 3 different channels ( jni, unix socket, tcp socket ). It also has shm enabled ( it's doing nothing so far - but getting closer ). Revision ChangesPath 1.5 +8 -1 jakarta-tomcat-connectors/jk/conf/jk2.properties Index: jk2.properties === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/conf/jk2.properties,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- jk2.properties16 Apr 2002 00:14:12 - 1.4 +++ jk2.properties17 Apr 2002 22:22:54 - 1.5 @@ -15,7 +15,7 @@ # Handlers that will be loaded by jk2: # Default: -handler.list=channel,unixChannel,channel8019,channelJni,request,container +handler.list=channel,apr,shm,unixChannel,channel8019,channelJni,request,container # Transport handler. # Default: @@ -36,6 +36,13 @@ handler.channelJni.className=org.apache.jk.common.ChannelJni handler.channelJni.next=request + +handler.apr.className=org.apache.jk.apr.AprImpl +# handler.apr.aprHome=/usr/lib + +handler.shm.className=org.apache.jk.common.Shm +handler.shm.file=/tmp/jk2.shm + # Optional - right now request handles all messages # handler.dispatch.className=org.apache.jk.common.HandlerDispatch 1.6 +22 -7 jakarta-tomcat-connectors/jk/conf/workers2.properties Index: workers2.properties === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/conf/workers2.properties,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- workers2.properties 16 Apr 2002 00:14:12 - 1.5 +++ workers2.properties 17 Apr 2002 22:22:54 - 1.6 @@ -17,6 +17,11 @@ # For apache1 the file must be specified if you want logging. # file=logs/mod_jk.log +[shm] +#file=${TOMCAT_HOME}/work/jk2.shm +file=/tmp/jk2.shm +size=100 + Channels # Each channel defines a communication mechanism to a tomcat instance. @@ -71,23 +76,23 @@ # JAVA_HOME and TOMCAT_HOME can be set as environment variables [vm] # Optional: JVM= PATH_TO_libjvm.so ( standard locations are searched ) -OPT=-Djava.class.path=${TOMCAT_HOME}/lib/tomcat.jar${ps}${TOMCAT_HOME}/lib/container/tomcat-jni.jar +OPT=-Djava.class.path=${TOMCAT_HOME}/lib/tomcat.jar${ps}${TOMCAT_HOME}/lib/container/tomcat-jni.jar${ps}${TOMCAT_HOME}/lib/common/commons-logging.jar # OPT=-Djava.class.path=${TOMCAT_HOME}/bin/bootstrap.jar #OPT=-Djava.class.path=${TOMCAT_HOME}/lib/container/tomcat-jk2.jar${ps}${TOMCAT_HOME}/lib/common/tomcat-util.jar -OPT=-Xmx128M +#OPT=-Xmx128M OPT=-Dtomcat.home=${TOMCAT_HOME} -OPT=-Dcatalina.home=${TOMCAT_HOME} -OPT=-Djava.compiler=NONE +#OPT=-Dcatalina.home=${TOMCAT_HOME} +#OPT=-Djava.compiler=NONE [worker.jni:jniCmd1] # For 3.3 class=org/apache/tomcat/startup/Main -#ARG=start +ARG=start # For 4.0 # class=org/apache/catalina/startup/Bootstrap -ARG=start +#ARG=start # For JkMain ( testing ) #ARG=-out @@ -100,9 +105,19 @@ # XXX Uris to be read from separate file, one per webapp. # XXX Webapps to be declared automatically, using webapps/ content :-) -[uri:/examples/*] +[uri:/examples/servlet/HelloWorldExample] worker=ajp13:jni # worker=ajp13:localhost:8009 +# worker=ajp13:unixSocket + +[uri:/examples/servlet/RequestHeaderExample] +#worker=ajp13:jni +# worker=ajp13:localhost:8009 +worker=ajp13:unixSocket + +[uri:/examples/servlet/RequestInfoExample] +#worker=ajp13:jni +worker=ajp13:localhost:8009 # worker=ajp13:unixSocket -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Channel.java Chain.java
costin 02/04/17 15:24:55 Removed: jk/java/org/apache/jk/core Channel.java Chain.java Log: Cleaning up old code, cleaning the interfaces. Chain was never used, Channel was a workaround. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core JkHandler.java
costin 02/04/17 15:27:18 Modified:jk/java/org/apache/jk/core JkHandler.java Log: Channel is just a special kind of Handler that supports SEND and RECEIVE events ( or Actions in coyote-terms). Getting the code closer to what Coyote is using, but with 'int type' in MsgContext instead of Action and ActionCode. Now the Handler can be used as a generic callback from JNI ( and not only for request processing - the signals will also invoke a handler ) Revision ChangesPath 1.6 +13 -7 jakarta-tomcat-connectors/jk/java/org/apache/jk/core/JkHandler.java Index: JkHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/JkHandler.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- JkHandler.java10 Apr 2002 23:53:11 - 1.5 +++ JkHandler.java17 Apr 2002 22:27:18 - 1.6 @@ -68,7 +68,7 @@ * * @author Costin Manolache */ -public abstract class JkHandler { +public class JkHandler { public static final int OK=0; public static final int LAST=1; public static final int ERROR=2; @@ -80,8 +80,11 @@ protected String name; protected int id; -private static org.apache.commons.logging.Log log= -org.apache.commons.logging.LogFactory.getLog( JkHandler.class ); +// XXX Will be replaced with notes and (configurable) ids +// Each represents a 'chain' - similar with ActionCode in Coyote ( the concepts +// will be merged ). +public static final int HANDLE_RECEIVE_PACKET = 10; +public static final int HANDLE_SEND_PACKET = 11; public void setWorkerEnv( WorkerEnv we ) { this.wEnv=we; @@ -111,8 +114,6 @@ * A chain is used for Apache/3.3 style iterative invocation. */ public void setNext( JkHandler h ) { -if( log.isDebugEnabled() ) -log.debug(setNext + h.getClass().getName()); next=h; } @@ -131,8 +132,13 @@ public void destroy() throws IOException { } -public abstract int invoke(Msg msg, MsgContext mc ) throws IOException; - +public MsgContext createMsgContext() { +return new MsgContext(); +} + +public int invoke(Msg msg, MsgContext mc ) throws IOException { +return OK; +} public void setProperty( String name, String value ) { properties.put( name, value ); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core Msg.java
costin 02/04/17 15:28:55 Modified:jk/java/org/apache/jk/core Msg.java Log: Removed unused code. Msg can become an interface ( or 2 - Serializer/Deserializer ), it's only role is to add int/string/etc to a buffer. It's quite easy to add more types and replace the marshaling. Revision ChangesPath 1.5 +0 -15 jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Msg.java Index: Msg.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/Msg.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Msg.java 6 Feb 2002 17:33:50 - 1.4 +++ Msg.java 17 Apr 2002 22:28:55 - 1.5 @@ -170,19 +170,4 @@ public abstract int getLen(); public abstract void dump(String msg); - - - -int tag; - -/** Message type - the tag is used to fast dispatch - * by message type - */ -public void setTag( int i ) { -tag=i; -} - -public int getTag() { -return tag; -} } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/core MsgContext.java
costin 02/04/17 15:32:45 Modified:jk/java/org/apache/jk/core MsgContext.java Log: Few changes to MsgContext to allow it to be used in a more flexible way. Most of the methods can become generic 'notes' ( but we need to support 'long' notes, I wouldn't like to convert to Long ). MsgContext now has a 'type' ( from o.a.t.u.handler ) - that'll eventually replace the Action and be commont to all coyote components. We also store the 'source' - the handler that originally initiated the callback ( to be used to send messages to the other side ) and 'next' - the next handler in the chain. All the changes are cleanups for jni and getting the code closer to the target. Revision ChangesPath 1.3 +86 -5 jakarta-tomcat-connectors/jk/java/org/apache/jk/core/MsgContext.java Index: MsgContext.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/core/MsgContext.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- MsgContext.java 3 Apr 2002 23:56:08 - 1.2 +++ MsgContext.java 17 Apr 2002 22:32:45 - 1.3 @@ -81,11 +81,18 @@ * @author Costin Manolache */ public class MsgContext { +private int type; private Object notes[]=new Object[32]; -private Channel ch; +private JkHandler next; +private JkHandler source; private Object req; private WorkerEnv wEnv; +private Msg msgs[]=new Msg[10]; +// The context can be used by JNI components as well +private long jkEndpointP; +private long xEnvP; + public final Object getNote( int id ) { return notes[id]; } @@ -94,6 +101,14 @@ notes[id]=o; } +/** The id of the chain */ +public final int getType() { +return type; +} + +public final void setType(int i) { +type=i; +} // Common attributes ( XXX should be notes for flexibility ? ) @@ -105,12 +120,20 @@ this.wEnv=we; } -public final Channel getChannel() { -return ch; +public final JkHandler getSource() { +return source; +} + +public final void setSource(JkHandler ch) { +this.source=ch; +} + +public final JkHandler getNext() { +return next; } -public final void setChannel(Channel ch) { -this.ch=ch; +public final void setNext(JkHandler ch) { +this.next=ch; } /** The high level request object associated with this context @@ -122,5 +145,63 @@ public final Object getRequest() { return req; } + +/** The context may store a number of messages ( buffers + marshalling ) + */ +public final Msg getMsg(int i) { +return msgs[i]; +} + +public final void setMsg(int i, Msg msg) { +this.msgs[i]=msg; +} +/** Each context contains a number of byte[] buffers used for communication. + * The C side will contain a char * equivalent - both buffers are long-lived + * and recycled. + * + * This will be called at init time. A long-lived global reference to the byte[] + * will be stored in the C context. + */ +public byte[] getBuffer( int id ) { +// We use a single buffer right now. +if( msgs[id]==null ) { +return null; +} +return msgs[id].getBuffer(); +} + +/** Invoke a java hook. The xEnv is the representation of the current execution + * environment ( the jni_env_t * ) + */ +public int execute() throws IOException { +int status=next.invoke(msgs[0], this); +return status; +} + +// Jni support + +/** Store native execution context data when this handler is called + * from JNI. This will change on each call, represent temproary + * call data. + */ +public void setJniEnv( long xEnvP ) { +this.xEnvP=xEnvP; +} + +public long getJniEnv() { +return xEnvP; +} + +/** The long-lived JNI context associated with this java context. + * The 2 share pointers to buffers and cache data to avoid expensive + * jni calls. + */ +public void setJniContext( long cContext ) { +this.jkEndpointP=cContext; +} + +public long getJniContext() { +return jkEndpointP; +} } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common Shm.java
costin 02/04/17 15:36:04 Added: jk/java/org/apache/jk/common Shm.java Log: A simple component that will automatically register the tomcat workers in the jk 'scoreboard'. Getting this to work is the last step in supporting multi-process JNI and dynamic addition/removal/status of workers for jk. So far attach() seems to work ( and I'm not sure if tomcat should create the shmem ). The data structures in the shm will be very similar with what jserv used to have, but more flexible. We may also need to add some mutexes - or at least atomic operations from APR. Revision ChangesPath 1.1 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/Shm.java Index: Shm.java === /* * * * The Apache Software License, Version 1.1 * * Copyright (c) 1999 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright *notice, this list of conditions and the following disclaimer in *the documentation and/or other materials provided with the *distribution. * * 3. The end-user documentation included with the redistribution, if *any, must include the following acknowlegement: * This product includes software developed by the *Apache Software Foundation (http://www.apache.org/). *Alternately, this acknowlegement may appear in the software itself, *if and wherever such third-party acknowlegements normally appear. * * 4. The names The Jakarta Project, Tomcat, and Apache Software *Foundation must not be used to endorse or promote products derived *from this software without prior written permission. For written *permission, please contact [EMAIL PROTECTED] * * 5. Products derived from this software may not be called Apache *nor may Apache appear in their names without prior written *permission of the Apache Group. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation. For more * information on the Apache Software Foundation, please see * http://www.apache.org/. * * [Additional notices, if required by prior licensing conditions] * */ package org.apache.jk.common; import java.io.*; import java.net.*; import java.util.*; import org.apache.tomcat.util.buf.*; import org.apache.tomcat.util.http.*; import org.apache.tomcat.util.threads.*; import org.apache.jk.core.*; import org.apache.jk.apr.*; /** Handle the shared memory objects. * * @author Costin Manolache */ public class Shm extends JkHandler { String jkHome; String file; // Apr data. private long memP; private long aprShmPoolP; private long aprShmP; private AprImpl apr; public Shm() { } public void setFile( String f ) { file=f; } /** */ public void setJkHome( String s ) { jkHome=s; } public void init() throws IOException { if( file==null ) { log.error(No shm file, disabling shared memory); return; } try { apr=(AprImpl)wEnv.getHandler(apr); if( apr==null ) { log.error( Apr unavailable, disabling shared memory ); return; } aprShmPoolP=apr.poolCreate( 0 ); aprShmP= apr.shmAttach( aprShmPoolP, file ); if( aprShmP== 0 ) {
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common ChannelJni.java
costin 02/04/17 15:37:50 Modified:jk/java/org/apache/jk/common ChannelJni.java Log: Clean up the jni handler - use plain JkHandler methods and mechanisms. The whole idea is to have a single, generic 'hook' mechanism used by all components - including jni. Revision ChangesPath 1.6 +67 -78 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelJni.java Index: ChannelJni.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelJni.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ChannelJni.java 16 Apr 2002 00:04:20 - 1.5 +++ ChannelJni.java 17 Apr 2002 22:37:50 - 1.6 @@ -77,14 +77,10 @@ * * @author Costin Manolache */ -public class ChannelJni extends Channel implements AprImpl.JniContextFactory { -private static org.apache.commons.logging.Log log= -org.apache.commons.logging.LogFactory.getLog( ChannelJni.class ); - +public class ChannelJni extends JkHandler { int receivedNote=1; -AprImpl apr=AprImpl.getAprImpl(); +AprImpl apr; - public ChannelJni() { // we use static for now, it's easier on the C side. // Easy to change after we get everything working @@ -93,11 +89,27 @@ public void init() throws IOException { // static field init, temp -log.info(init ); -apr.addJniContextFactory( channelJni, this ); +apr=(AprImpl)wEnv.getHandler(apr); +if( apr==null ) { +log.error(No apr, disabling jni channel ); +return; +} +apr.addJkHandler( channelJni, this ); +if( next==null ) { +if( nextName!=null ) +setNext( wEnv.getHandler( nextName ) ); +if( next==null ) +next=wEnv.getHandler( dispatch ); +if( next==null ) +next=wEnv.getHandler( request ); +if( log.isDebugEnabled() ) +log.debug(Setting default next + next.getClass().getName()); +} } -// XXX Not used +/** Receives does nothing - send will put the response + * in the same buffer + */ public int receive( Msg msg, MsgContext ep ) throws IOException { @@ -114,8 +126,6 @@ { byte buf[]=msg.getBuffer(); -JniEndpoint epData=(JniEndpoint)ep; - // send and get the response if( log.isInfoEnabled() ) log.info( Sending packet ); msg.end(); @@ -124,7 +134,7 @@ // Will process the message in the current thread. // No wait needed to receive the response // -int status=apr.sendPacket( epData.xEnv, epData.jkEndpointP, +int status=apr.sendPacket( ep.getJniEnv(), ep.getJniContext(), buf, msg.getLen() ); ep.setNote( receivedNote, msg ); @@ -133,8 +143,46 @@ return 0; } -public int receive( MsgContext ep, MsgAjp msg, long xEnv, long cEndpointP) -{ +public MsgContext createMsgContext() { +MsgContext mc=new MsgContext(); +mc.setMsg( 0, new MsgAjp()); +mc.setNext( this ); +return mc; +} + +/** Receive a packet from the C side. This is called from the C + * code using invocation, but only for the first packet - to avoid + * recursivity and thread problems. + * + * This may look strange, but seems the best solution for the + * problem ( the problem is that we don't have 'continuation' ). + * + * sendPacket will move the thread execution on the C side, and + * return when another packet is available. For packets that + * are one way it'll return after it is processed too ( having + * 2 threads is far more expensive ). + * + * Again, the goal is to be efficient and behave like all other + * Channels ( so the rest of the code can be shared ). Playing with + * java objects on C is extremely difficult to optimize and do + * right ( IMHO ), so we'll try to keep it simple - byte[] passing, + * the conversion done in java ( after we know the encoding and + * if anyone asks for it - same lazy behavior as in 3.3 ). + */ +public int invoke(Msg msg, MsgContext ep ) throws IOException { +System.err.println(ChannelJni.invoke: + ep ); +long xEnv=ep.getJniEnv(); +long cEndpointP=ep.getJniContext(); + +int type=ep.getType(); + +switch( type ) { +case JkHandler.HANDLE_RECEIVE_PACKET: +return receive( msg, ep ); +case JkHandler.HANDLE_SEND_PACKET: +return send( msg, ep ); +
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common ChannelSocket.java ChannelUn.java
costin 02/04/17 15:38:16 Modified:jk/java/org/apache/jk/common ChannelSocket.java ChannelUn.java Log: Update for the interface changes. Revision ChangesPath 1.8 +29 -10 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java Index: ChannelSocket.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelSocket.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- ChannelSocket.java27 Feb 2002 06:41:18 - 1.7 +++ ChannelSocket.java17 Apr 2002 22:38:16 - 1.8 @@ -94,7 +94,7 @@ * * @author Costin Manolache */ -public class ChannelSocket extends Channel { +public class ChannelSocket extends JkHandler { private static org.apache.commons.logging.Log log= org.apache.commons.logging.LogFactory.getLog( ChannelSocket.class ); @@ -180,6 +180,15 @@ if( serverTimeout 0 ) sSocket.setSoTimeout( serverTimeout ); +if( next==null ) { +if( nextName!=null ) +setNext( wEnv.getHandler( nextName ) ); +if( next==null ) +next=wEnv.getHandler( dispatch ); +if( next==null ) +next=wEnv.getHandler( request ); +} + // Run a thread that will accept connections. tp.start(); SocketAcceptor acceptAjp=new SocketAcceptor( this ); @@ -329,13 +338,6 @@ return pos; } -public MsgContext createEndpoint() { -MsgContext mc=new MsgContext(); -mc.setChannel(this); -mc.setWorkerEnv( wEnv ); -return mc; -} - boolean running=true; /** Accept incoming connections, dispatch to the thread pool @@ -345,7 +347,9 @@ log.debug(Accepting ajp connections on + port); while( running ) { try { -MsgContext ep=this.createEndpoint(); +MsgContext ep=new MsgContext(); +ep.setSource(this); +ep.setWorkerEnv( wEnv ); this.accept(ep); SocketConnection ajpConn= new SocketConnection(this, ep); @@ -367,7 +371,8 @@ log.warn(Invalid packet, closing connection ); break; } - + +ep.setType( 0 ); status= this.invoke( recv, ep ); if( status!= JkHandler.OK ) { log.warn(processCallbacks status + status ); @@ -380,6 +385,20 @@ } } + +public int invoke( Msg msg, MsgContext ep ) throws IOException { +int type=ep.getType(); + +switch( type ) { +case JkHandler.HANDLE_RECEIVE_PACKET: +return receive( msg, ep ); +case JkHandler.HANDLE_SEND_PACKET: +return send( msg, ep ); +} + +return next.invoke( msg, ep ); +} + public boolean isSameAddress(MsgContext ep) { Socket s=(Socket)ep.getNote( socketNote ); return isSameAddress( s.getLocalAddress(), s.getInetAddress()); 1.12 +38 -29 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java Index: ChannelUn.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/ChannelUn.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- ChannelUn.java16 Apr 2002 00:21:37 - 1.11 +++ ChannelUn.java17 Apr 2002 22:38:16 - 1.12 @@ -77,10 +77,10 @@ * * @author Costin Manolache */ -public class ChannelUn extends Channel { +public class ChannelUn extends JkHandler { String file; -ThreadPool tp=new ThreadPool(); +ThreadPool tp; String jkHome; String aprHome; @@ -126,26 +126,21 @@ } public void init() throws IOException { -apr=AprImpl.getAprImpl(); -if( aprHome==null jkHome != null ) { -File f=new File( jkHome ); -File aprBase=new File( jkHome, jk2/jni ); -if( aprBase.exists() ) { -aprHome=aprBase.getAbsolutePath(); -} -} -if( aprHome != null ) { -apr.setBaseDir( aprHome ); -} -try { -apr.loadNative(); - -apr.initialize(); -} catch( Throwable t ) { -log.error(Native code not initialized, disabling UnixSocket and JNI channels: + t.toString()); +apr=(AprImpl)wEnv.getHandler(apr); +if( apr==null )
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common HandlerDispatch.java HandlerRequest.java
costin 02/04/17 15:38:42 Modified:jk/java/org/apache/jk/common HandlerDispatch.java HandlerRequest.java Log: Update for the interface changes Revision ChangesPath 1.3 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerDispatch.java Index: HandlerDispatch.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerDispatch.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- HandlerDispatch.java 20 Feb 2002 23:39:58 - 1.2 +++ HandlerDispatch.java 17 Apr 2002 22:38:42 - 1.3 @@ -126,7 +126,7 @@ throws IOException { int type=msg.peekByte(); -msg.setTag( type ); +ep.setType( type ); if( type handlers.length || handlers[type]==null ) { 1.11 +1 -1 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java Index: HandlerRequest.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/HandlerRequest.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- HandlerRequest.java 8 Apr 2002 22:58:40 - 1.10 +++ HandlerRequest.java 17 Apr 2002 22:38:42 - 1.11 @@ -369,7 +369,7 @@ } // XXX add isSameAddress check -Channel ch=ep.getChannel(); +JkHandler ch=ep.getSource(); if( ch instanceof ChannelSocket ) { if( ! ((ChannelSocket)ch).isSameAddress(ep) ) { log.error(Shutdown request not from 'same address' ); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/common JkInputStream.java WorkerDummy.java
costin 02/04/17 15:38:59 Modified:jk/java/org/apache/jk/common JkInputStream.java WorkerDummy.java Log: Update for the interface changes Revision ChangesPath 1.7 +5 -3 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JkInputStream.java Index: JkInputStream.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/JkInputStream.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- JkInputStream.java9 Apr 2002 20:51:06 - 1.6 +++ JkInputStream.java17 Apr 2002 22:38:59 - 1.7 @@ -273,7 +273,7 @@ public int doRead(ByteChunk responseChunk ) throws IOException { log.info( JkInputStream: + pos + + blen + + available ); if( blen == pos ) { -receive(); +refillReadBuffer(); } responseChunk.setBytes( bodyBuff, pos, blen-pos ); return blen - pos; @@ -285,7 +285,8 @@ */ public boolean receive() throws IOException { -int err = mc.getChannel().receive(bodyMsg, mc); +mc.setType( JkHandler.HANDLE_RECEIVE_PACKET ); +int err = mc.getSource().invoke(bodyMsg, mc); if(err 0) { throw new IOException(); } @@ -332,7 +333,8 @@ if( log.isDebugEnabled() ) log.debug(refillReadBuffer + Thread.currentThread()); - mc.getChannel().send(bodyMsg, mc); +mc.setType( JkHandler.HANDLE_SEND_PACKET ); + mc.getSource().invoke(bodyMsg, mc); return receive(); } 1.6 +5 -4 jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java Index: WorkerDummy.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/common/WorkerDummy.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- WorkerDummy.java 3 Apr 2002 23:56:08 - 1.5 +++ WorkerDummy.java 17 Apr 2002 22:38:59 - 1.6 @@ -109,8 +109,9 @@ msg.appendBytes(null); msg.appendInt(0); - -ep.getChannel().send( msg, ep ); + +ep.setType( JkHandler.HANDLE_SEND_PACKET ); +ep.getSource().invoke( msg, ep ); // msg.dump(out: ); msg.reset(); @@ -119,13 +120,13 @@ msg.appendBytes( body ); -ep.getChannel().send(msg, ep); +ep.getSource().invoke(msg, ep); msg.reset(); msg.appendByte( HandlerRequest.JK_AJP13_END_RESPONSE ); msg.appendInt( 1 ); -ep.getChannel().send(msg, ep ); +ep.getSource().invoke(msg, ep ); return OK; } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/server JkCoyoteHandler.java
costin 02/04/17 15:39:26 Modified:jk/java/org/apache/jk/server JkCoyoteHandler.java Log: Update. Revision ChangesPath 1.11 +6 -3 jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java Index: JkCoyoteHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/server/JkCoyoteHandler.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- JkCoyoteHandler.java 10 Apr 2002 23:53:11 - 1.10 +++ JkCoyoteHandler.java 17 Apr 2002 22:39:26 - 1.11 @@ -178,7 +178,8 @@ msg.reset(); msg.appendByte( HandlerRequest.JK_AJP13_SEND_BODY_CHUNK); msg.appendBytes( chunk.getBytes(), chunk.getOffset(), chunk.getLength() ); -ep.getChannel().send( msg, ep ); +ep.setType( JkHandler.HANDLE_SEND_PACKET ); +ep.getSource().invoke( msg, ep ); return 0; } @@ -270,7 +271,8 @@ c2b.convert( hV ); msg.appendBytes( hV ); } -ep.getChannel().send( msg, ep ); +ep.setType( JkHandler.HANDLE_SEND_PACKET ); +ep.getSource().invoke( msg, ep ); } else if( actionCode==ActionCode.ACTION_RESET ) { if( log.isInfoEnabled() ) log.info(RESET ); @@ -286,7 +288,8 @@ msg.appendByte( HandlerRequest.JK_AJP13_END_RESPONSE ); msg.appendInt( 1 ); -ep.getChannel().send(msg, ep ); +ep.setType( JkHandler.HANDLE_SEND_PACKET ); +ep.getSource().invoke( msg, ep ); } else if( actionCode==ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) { -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/apr AprImpl.java
costin 02/04/17 15:43:58 Modified:jk/java/org/apache/jk/apr AprImpl.java Log: Added shm native calls. Cleanup the interfaces - now use the normal JkHandler interface for configuration. AprImpl must be loaded in the main classloader, with common-logging and jk.core in order to get JNI-channel to work ( that will be fixed later, it is also possible to get around the class loaders by pushing the objects via native calles instead of loading them with FindClass ) ( normal jni will work anyway ). For callbacks we use normal JkHandler and MsgContext - it coresponds to an apache hook and behaves in a similar way. ( ok, the concept is identical to a Valve for 4.0 people, with an Action for Remy, and close enough to an Interceptor for 3.3 people ). Revision ChangesPath 1.8 +109 -85 jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java Index: AprImpl.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- AprImpl.java 16 Apr 2002 00:21:37 - 1.7 +++ AprImpl.java 17 Apr 2002 22:43:58 - 1.8 @@ -2,23 +2,53 @@ import java.io.*; import java.util.*; +import org.apache.jk.core.*; /** Implements the interface with the APR library. This is for internal-use * only. The goal is to use 'natural' mappings for user code - for example * java.net.Socket for unix-domain sockets, etc. * */ -public class AprImpl { -static AprImpl aprSingleton=new AprImpl(); +public class AprImpl extends JkHandler { // This will be o.a.t.util.handler.TcHandler - lifecycle and config +static AprImpl aprSingleton=null; String baseDir; String aprHome; String soExt=so; -public static AprImpl getAprImpl() { -return aprSingleton; +boolean ok=true; +// Handlers for native callbacks +Hashtable jkHandlers=new Hashtable(); + +public AprImpl() { +aprSingleton=this; +} + +// Properties + +/** Native libraries are located based on base dir. + * XXX Add platform, version, etc + */ +public void setBaseDir(String s) { +baseDir=s; +} + +public void setSoExt(String s ) { +soExt=s; } +// XXX maybe install the jni lib in apr-home ? +public void setAprHome( String s ) { +aprHome=s; +} + +/** Add a Handler for jni callbacks. + */ +public void addJkHandler(String type, JkHandler cb) { +jkHandlers.put( type, cb ); +} + +// Apr generic utils /** Initialize APR */ public native int initialize(); @@ -29,6 +59,12 @@ public native long poolClear(long pool); +// Unix sockets +// XXX Will be 'apr sockets' as soon as APR supports unix domain sockets. +// For the moment there is little benefit of using APR TCP sockets, since +// the VM abstraction is decent. However poll and other advanced features +// are not available - and will be usefull. For the next release. + public native long unSocketClose( long pool, long socket, int type ); /** Create a unix socket and start listening. @@ -53,22 +89,76 @@ public native int unWrite( long pool, long unSocket, byte buf[], int off, int len ); -/** Native libraries are located based on base dir. - * XXX Add platform, version, etc +// Shared memory methods + +public native long shmAttach( long pool, String file ); + +public native long shmDetach( long pool, long shmP ); + +public native long shmDestroy( long pool, long shmP ); + +// java to C + +// Temp - interface will evolve + +/** Send the packet to the C side. On return it contains the response + * or indication there is no response. Asymetrical because we can't + * do things like continuations. */ -public void setBaseDir(String s) { -baseDir=s; -} +public static native int sendPacket(long xEnv, long endpointP, +byte data[], int len); + -public void setSoExt(String s ) { -soExt=s; -} +// Called from C +// XXX Check security, add guard or other protection +// It's better to do it the other way - on init 'push' AprImpl into +// the native library, and have native code call instance
cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_global.h jk_shm.h
costin 02/04/17 15:46:35 Modified:jk/native2/include jk_global.h jk_shm.h Log: Add a JK_OK constant - JK_TRUE is the reverse of APR_SUCCESS. I'll eventually to a regexp replacement - things are working, but in future we may run into problems with this. Revision ChangesPath 1.6 +3 -1 jakarta-tomcat-connectors/jk/native2/include/jk_global.h Index: jk_global.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_global.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_global.h 12 Apr 2002 21:49:03 - 1.5 +++ jk_global.h 17 Apr 2002 22:46:35 - 1.6 @@ -59,7 +59,7 @@ * Description: Global definitions and include files that should exist * * anywhere * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.5 $ * + * Version: $Revision: 1.6 $ * ***/ #ifndef JK_GLOBAL_H @@ -156,6 +156,8 @@ #define JK_WORKER_FILE_DEF (workers.properties) #define JK_LOG_LEVEL_DEF(emerg) +#define JK_OK (0) + #define JK_TRUE (1) #define JK_FALSE (0) 1.2 +4 -0 jakarta-tomcat-connectors/jk/native2/include/jk_shm.h Index: jk_shm.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_shm.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_shm.h 10 Apr 2002 23:44:56 - 1.1 +++ jk_shm.h 17 Apr 2002 22:46:35 - 1.2 @@ -117,6 +117,10 @@ */ int (*init)(struct jk_env *env, struct jk_shm *shm); +/** Detach from the shared memory segment + */ +int (*destroy)(struct jk_env *env, struct jk_shm *shm); + /** Get a shm slot. Each slot has different rules for synchronization, based on type. */ struct jk_shm_slot *(*getSlot)(struct jk_env *env, struct jk_shm *shm, char *name, int size); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/jni jk_jni_aprImpl.c
costin 02/04/17 15:51:02 Modified:jk/native2/jni jk_jni_aprImpl.c Log: Small fix in shmAttach. Started to add mutexes ( to support shm end not only ). Again ( see the comments in AprImpl ) - the interfaces are not even started, this is just the JNI code. AprImpl will have many native methods, with longs and other strange things - not to be called by any user code. Also note that we'll not support all APR functions - only what's missing in java. Revision ChangesPath 1.11 +23 -1 jakarta-tomcat-connectors/jk/native2/jni/jk_jni_aprImpl.c Index: jk_jni_aprImpl.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/jni/jk_jni_aprImpl.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_jni_aprImpl.c 15 Apr 2002 23:54:51 - 1.10 +++ jk_jni_aprImpl.c 17 Apr 2002 22:51:02 - 1.11 @@ -94,6 +94,9 @@ #include apr_shm.h #endif +#include apr_proc_mutex.h + + JNIEXPORT jint JNICALL Java_org_apache_jk_apr_AprImpl_initialize(JNIEnv *jniEnv, jobject _jthis) { @@ -189,7 +192,7 @@ JNIEXPORT jlong JNICALL Java_org_apache_jk_apr_AprImpl_shmAttach(JNIEnv *jniEnv, jobject _jthis, jlong poolJ, - jlong size, jstring fileJ) + jstring fileJ) { char *fname=(char *)(*jniEnv)-GetStringUTFChars(jniEnv, fileJ, 0); apr_pool_t *pool=(apr_pool_t *)(void *)(long)poolJ; @@ -289,6 +292,25 @@ } #endif + +/* interprocess mutexes */ + +JNIEXPORT jlong JNICALL +Java_org_apache_jk_apr_AprImpl_mutexCreate(JNIEnv *jniEnv, jobject _jthis, jlong pool, + jstring fileJ, + jint mechJ ) +{ +apr_proc_mutex_t *mutex; +char *fname; +apr_lockmech_e mech; +apr_pool_t *pool; +apr_status_t st; + +st=apr_proc_mutex_create( mutex, fname, mech, pool ); + +return (jlong)(long)(void *)mutex; +} + /* Unix sockets */ /* It seems apr doesn't support them yet, so this code will use the -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_shm.c
costin 02/04/17 15:52:14 Modified:jk/native2/common jk_shm.c Log: More work on the shm object. Revision ChangesPath 1.4 +85 -26jakarta-tomcat-connectors/jk/native2/common/jk_shm.c Index: jk_shm.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_shm.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_shm.c 12 Apr 2002 22:53:56 - 1.3 +++ jk_shm.c 17 Apr 2002 22:52:14 - 1.4 @@ -89,6 +89,9 @@ #include apr_shm.h +/* Inter-process synchronization - to create the slots */ +#include apr_proc_mutex.h + struct jk_shm_buffer { /** Incremented after each modification */ int generation; @@ -120,52 +123,42 @@ typedef struct jk_shm_private { apr_size_t size; apr_shm_t *aprShm; -apr_pool_t *aprPool; struct jk_shm_head *image; } jk_shm_private_t; static apr_pool_t *globalShmPool; -static int jk_shm_destroy(jk_env_t *env, jk_shm_t *shm) +static int jk2_shm_destroy(jk_env_t *env, jk_shm_t *shm) { jk_shm_private_t *shmP=shm-privateData; return apr_shm_destroy(shmP-aprShm); } -static int jk_shm_detach(jk_env_t *env, jk_shm_t *shm) +static int jk2_shm_detach(jk_env_t *env, jk_shm_t *shm) { jk_shm_private_t *shmP=shm-privateData; return apr_shm_detach(shmP-aprShm); } -static int jk_shm_attach(jk_env_t *env, jk_shm_t *shm) +static int jk2_shm_attach(jk_env_t *env, jk_shm_t *shm) { +jk_shm_private_t *shmP=shm-privateData; +return apr_shm_attach(shmP-aprShm, shm-fname, globalShmPool ); } /* Create or reinit an existing scoreboard. The MPM can control whether * the scoreboard is shared across multiple processes or not */ -static int jk_shm_createScoreboard(jk_env_t *env, jk_shm_t *shm) +static int jk2_shm_create(jk_env_t *env, jk_shm_t *shm) { apr_status_t rv; jk_shm_private_t *shmP=shm-privateData; -/* We don't want to have to recreate the scoreboard after - * restarts, so we'll create a global pool and never clean it. - */ -rv = apr_pool_create(globalShmPool, NULL); - -if (rv != APR_SUCCESS) { -env-l-jkLog(env, env-l, JK_LOG_ERROR, - Unable to create global pool for jk_shm\n); -return rv; -} - /* The config says to create a name-based shmem */ if ( shm-fname == NULL ) { env-l-jkLog(env, env-l, JK_LOG_ERROR, @@ -183,12 +176,67 @@ rv = apr_shm_create(shmP-aprShm, shmP-size, shm-fname, globalShmPool); if (rv) { +char error[256]; +apr_strerror( rv, error, 256 ); + env-l-jkLog(env, env-l, JK_LOG_ERROR, - shm.create(): error creating named scoreboard %s %d\n, - shm-fname, rv); + shm.create(): error creating named scoreboard %s %d %s\n, + shm-fname, rv, error ); +shmP-aprShm=NULL; return rv; } +return JK_OK; +} + +#define DEFAULT_SHM_SIZE 1024 * 1024 * 8 + +static int jk2_shm_init(struct jk_env *env, jk_shm_t *shm) { +apr_status_t rv; +jk_shm_private_t *shmP=shm-privateData; + +if( shm-fname==NULL ) { +env-l-jkLog(env, env-l, JK_LOG_ERROR, + shm.init(): No file\n); +return JK_FALSE; +} + +if( shmP-size == 0 ) { +shmP-size = DEFAULT_SHM_SIZE; +} + +/* We don't want to have to recreate the scoreboard after + * restarts, so we'll create a global pool and never clean it. + */ +rv = apr_pool_create(globalShmPool, NULL); + +if (rv != APR_SUCCESS) { +env-l-jkLog(env, env-l, JK_LOG_ERROR, + Unable to create global pool for jk_shm\n); +return rv; +} + +shmP-aprShm=NULL; + +/* Try to attach */ +rv=jk2_shm_attach( env, shm ); + +if( rv || shmP-aprShm==NULL ) { +char error[256]; +apr_strerror( rv, error, 256 ); +env-l-jkLog(env, env-l, JK_LOG_ERROR, + Unable to attach to %s %d %s\n, shm-fname, rv, error); +} + +rv=jk2_shm_create( env, shm ); + +if( rv || shmP-aprShm==NULL ) { +env-l-jkLog(env, env-l, JK_LOG_ERROR, + Unable to create to %s %d\n, shm-fname, rv); +return JK_FALSE; +} + +/* Get the base address, initialize it */ shmP-image = apr_shm_baseaddr_get( shmP-aprShm); if( shmP-image==NULL ) { env-l-jkLog(env, env-l, JK_LOG_ERROR, @@ -202,30 +250,41 @@ return JK_TRUE; } -static int jk2_shm_init(struct jk_env *env, jk_shm_t *shm) { -
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk.dsp
costin 02/04/17 15:55:39 Added: jk/native2/server/apache2 mod_jk.dsp Log: For those who prefer to use MSVC instead of ant :-) ( I know Nacho will be very disapointed, but I think it's the right thing to do ... ) Revision ChangesPath 1.1 jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.dsp Index: mod_jk.dsp === # Microsoft Developer Studio Project File - Name=apache - Package Owner=4 # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** DO NOT EDIT ** # TARGTYPE Win32 (x86) Dynamic-Link Library 0x0102 CFG=apache - Win32 Debug !MESSAGE This is not a valid makefile. To build this project using NMAKE, !MESSAGE use the Export Makefile command and run !MESSAGE !MESSAGE NMAKE /f mod_jk.mak. !MESSAGE !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f mod_jk.mak CFG=apache - Win32 Debug !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE apache - Win32 Release (based on Win32 (x86) Dynamic-Link Library) !MESSAGE apache - Win32 Debug (based on Win32 (x86) Dynamic-Link Library) !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName # PROP Scc_LocalPath CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF $(CFG) == apache - Win32 Release # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 0 # PROP BASE Output_Dir Release # PROP BASE Intermediate_Dir Release # PROP BASE Target_Dir # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 # PROP Output_Dir Release # PROP Intermediate_Dir Release # PROP Ignore_Export_Lib 0 # PROP Target_Dir # ADD BASE CPP /nologo /MD /W3 /O2 /D WIN32 /D NDEBUG /D _WINDOWS /FD /c # ADD CPP /nologo /MD /W3 /O2 /I ..\common /I $(JAVA_HOME)\include /I $(JAVA_HOME)\include\win32 /I $(APACHE2_HOME)\include /I $(APACHE2_HOME)\srclib\apr\include /I $(APACHE2_HOME)\srclib\apr-util\include /D NDEBUG /D WIN32 /D _WINDOWS /FdRelease\mod_jk /FD /c # ADD BASE MTL /nologo /D NDEBUG /mktyplib203 /win32 # ADD MTL /nologo /D NDEBUG /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d NDEBUG # ADD RSC /l 0x409 /d NDEBUG BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib advapi32.lib /nologo /dll /machine:I386 # ADD LINK32 libhttpd.lib libapr.lib libaprutil.lib kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /dll /machine:I386 /libpath:$(APACHE2_HOME)\Release /libpath:$(APACHE2_HOME)\srclib\apr\Release /libpath:$(APACHE2_HOME)\srclib\apr-util\Release /libpath:$(APACHE2_HOME)\lib !ELSEIF $(CFG) == apache - Win32 Debug # PROP BASE Use_MFC 0 # PROP BASE Use_Debug_Libraries 1 # PROP BASE Output_Dir Debug # PROP BASE Intermediate_Dir Debug # PROP BASE Target_Dir # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 # PROP Output_Dir Debug # PROP Intermediate_Dir Debug # PROP Ignore_Export_Lib 0 # PROP Target_Dir # ADD BASE CPP /nologo /MDd /W3 /GX /Zi /Od /D WIN32 /D _DEBUG /D _WINDOWS /FD /c # ADD CPP /nologo /MDd /W3 /GX /Zi /Od /I ..\..\include /I ..\include /I . /I $(JAVA_HOME)\include /I $(JAVA_HOME)\include\win32 /I $(APACHE2_HOME)\include /D _DEBUG /D WIN32 /D _WINDOWS /FdDebug\mod_jk /FD /c # ADD BASE MTL /nologo /D _DEBUG /mktyplib203 /win32 # ADD MTL /nologo /D _DEBUG /mktyplib203 /win32 # ADD BASE RSC /l 0x409 /d _DEBUG # ADD RSC /l 0x409 /d _DEBUG BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept # ADD LINK32 libhttpd.lib libapr.lib libaprutil.lib kernel32.lib user32.lib advapi32.lib wsock32.lib /nologo /dll /debug /machine:I386 /libpath:$(APACHE2_HOME)/Debug /libpath:$(APACHE2_HOME)\srclib\apr\Debug /libpath:$(APACHE2_HOME)\srclib\apr-util\Debug /libpath:$(APACHE2_HOME)\lib !ENDIF # Begin Target # Name apache - Win32 Release # Name apache - Win32 Debug # Begin Group Source Files # PROP Default_Filter cpp;c;cxx;rc;def;r;odl;idl;hpj;bat # Begin Source File SOURCE=..\..\common\jk_channel_apr_socket.c # End Source File # Begin Source File SOURCE=..\..\common\jk_channel_jni.c # End Source File # Begin Source File SOURCE=..\..\common\jk_channel_socket.c # End Source File # Begin Source File SOURCE=..\..\common\jk_config.c # End Source File # Begin Source File SOURCE=..\..\common\jk_config_registry.c # End Source File # Begin Source File
DO NOT REPLY [Bug 5853] - Unable to get request parameters in the Error page for form based login
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5853. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=5853 Unable to get request parameters in the Error page for form based login --- Additional Comments From [EMAIL PROTECTED] 2002-04-17 23:04 --- Using Tomcat 4.0.3: while executing a JSP page requesting parameters from the URL: request.getParameter() returns null while request.getQueryString() returns the correct query string. When started, our server performs the above instructions correctly for a while, but then ends up in a situation where these instructions fail. The only way to take the server out of this state is by restarting (clearing the work directory does not help). Restarting once may not always be enough. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Apache 2.0 - webapps
David Loy [EMAIL PROTECTED] wrote: Has anyone successfully been able to connect Apache 2.0 and Tomcat 4.0. The webapp interface has the following error when loading Apache: Cannot load /apache2/modules/mod_webapp.so into server: ld.so.1: /cdldevel2/loy/apache2/bin/httpd: fatal: relocation error: file /cdldevel2/loy/apache2/modules/mod_webapp.so: symbol ap_pstrdup: referenced symbol not found ..//apachectl start: httpd could not be started Any suggestions would be terrific! Use tomcat-user or write to me directly, anyhow, you're using a module built for Apache 1.3 with Apache 2.0... Rebuild Rebuild... Pier -- I think that it's extremely foolish to name a server after the current U.S. President. B.W. Fitzpatrick -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_worker_jni.c
costin 02/04/17 17:12:00 Modified:jk/native2/common jk_worker_jni.c Log: Few hacks to deal with the 3 versions of tomcat. I first tried to allow multiple class names to be specified, and the first one found to be used. That worked, but it seems 4.1 is blocking in the main thread. So I added a quick hack to call main in a separate thread ( that's also nice because Apache will not have to wait for all tomcat initializations when in-process ). Revision ChangesPath 1.9 +30 -3 jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c Index: jk_worker_jni.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_jni.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_worker_jni.c 13 Apr 2002 05:34:21 - 1.8 +++ jk_worker_jni.c 18 Apr 2002 00:12:00 - 1.9 @@ -69,12 +69,14 @@ #include jni.h /* default only, will be configurable */ -#define JAVA_BRIDGE_CLASS_NAME (org/apache/jk/server/JkMain) +#define JAVA_BRIDGE_CLASS_NAME (org/apache/jk/apr/AprImpl) struct jni_worker_data { jclass jk_java_bridge_class; jmethodID jk_main_method; char *className; +/* Hack to allow multiple 'options' for the class name */ +char **classNameOptions; char **args; int nArgs; }; @@ -129,7 +131,16 @@ jniWorker = pThis-worker_private; if( strcmp( name, class )==0 ) { -jniWorker-className = value; +if( jniWorker-className != NULL ) { +int i; +for( i=0; i4; i++ ) { +if( jniWorker-classNameOptions[i]==NULL ) { +jniWorker-classNameOptions[i]=value; +} +} +} else { +jniWorker-className = value; +} } else if( strcmp( name, ARG )==0 ) { jniWorker-args[jniWorker-nArgs]=value; jniWorker-nArgs++; @@ -189,7 +200,22 @@ (*jniEnv)-FindClass(jniEnv, jniWorker-className ); if( jniWorker-jk_java_bridge_class == NULL ) { -env-l-jkLog(env, env-l, JK_LOG_EMERG, +int i; +for( i=0;i4; i++ ) { +if( jniWorker-classNameOptions[i] != NULL ) { +env-l-jkLog(env, env-l, JK_LOG_INFO, + jni.validate() try %s \n, + jniWorker-classNameOptions[i]); +jniWorker-jk_java_bridge_class = +(*jniEnv)-FindClass(jniEnv, jniWorker-classNameOptions[i] ); +if(jniWorker-jk_java_bridge_class != NULL ) +break; +} +} +} + +if( jniWorker-jk_java_bridge_class == NULL ) { +env-l-jkLog(env, env-l, JK_LOG_ERROR, Can't find class %s\n, jniWorker-className ); /* [V] the detach here may segfault on 1.1 JVM... */ vm-detach(env, vm); @@ -309,6 +335,7 @@ _this-pool=pool; jniData-jk_java_bridge_class = NULL; +jniData-classNameOptions=(char **)pool-calloc(env, pool, 4 * sizeof(char *)); jniData-args = pool-calloc( env, pool, 64 * sizeof( char *)); jniData-nArgs =0; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans MBeanUtils.java ServerLifecycleListener.java
amyroh 02/04/17 17:13:07 Modified:catalina/src/share/org/apache/catalina/mbeans MBeanUtils.java ServerLifecycleListener.java Log: Add container parameter to destroyMBean(valve, container) to find the right valve mbean after removeValve() is called. Need its previously owning container info to unregister the correct mbean for a valve. Revision ChangesPath 1.34 +12 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java Index: MBeanUtils.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- MBeanUtils.java 16 Apr 2002 20:27:37 - 1.33 +++ MBeanUtils.java 18 Apr 2002 00:13:07 - 1.34 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.33 2002/04/16 20:27:37 amyroh Exp $ - * $Revision: 1.33 $ - * $Date: 2002/04/16 20:27:37 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/MBeanUtils.java,v 1.34 2002/04/18 00:13:07 amyroh Exp $ + * $Revision: 1.34 $ + * $Date: 2002/04/18 00:13:07 $ * * * @@ -77,6 +77,7 @@ import javax.management.modelmbean.InvalidTargetObjectTypeException; import javax.management.modelmbean.ModelMBean; import org.apache.catalina.Connector; +import org.apache.catalina.Contained; import org.apache.catalina.Container; import org.apache.catalina.Context; import org.apache.catalina.DefaultContext; @@ -109,7 +110,7 @@ * * @author Craig R. McClanahan * @author Amy Roh - * @version $Revision: 1.33 $ $Date: 2002/04/16 20:27:37 $ + * @version $Revision: 1.34 $ $Date: 2002/04/18 00:13:07 $ */ public class MBeanUtils { @@ -1653,9 +1654,10 @@ * * @exception Exception if an MBean cannot be deregistered */ -public static void destroyMBean(Valve valve) +public static void destroyMBean(Valve valve, Container container) throws Exception { +((Contained)valve).setContainer(container); String mname = createManagedName(valve); ManagedBean managed = registry.findManagedBean(mname); if (managed == null) { @@ -1665,6 +1667,11 @@ if (domain == null) domain = mserver.getDefaultDomain(); ObjectName oname = createObjectName(domain, valve); +try { +((Contained)valve).setContainer(null); +} catch (Throwable t) { +; +} mserver.unregisterMBean(oname); } 1.23 +8 -8 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java Index: ServerLifecycleListener.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- ServerLifecycleListener.java 16 Apr 2002 20:27:37 - 1.22 +++ ServerLifecycleListener.java 18 Apr 2002 00:13:07 - 1.23 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.22 2002/04/16 20:27:37 amyroh Exp $ - * $Revision: 1.22 $ - * $Date: 2002/04/16 20:27:37 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ServerLifecycleListener.java,v 1.23 2002/04/18 00:13:07 amyroh Exp $ + * $Revision: 1.23 $ + * $Date: 2002/04/18 00:13:07 $ * * * @@ -107,7 +107,7 @@ * * @author Craig R. McClanahan * @author Amy Roh - * @version $Revision: 1.22 $ $Date: 2002/04/16 20:27:37 $ + * @version $Revision: 1.23 $ $Date: 2002/04/18 00:13:07 $ */ public class ServerLifecycleListener @@ -626,7 +626,7 @@ for (int l = 0; l cValves.length; l++) { if (debug = 4) log(Destroying MBean for Valve + cValves[l]); -MBeanUtils.destroyMBean(cValves[l]); +MBeanUtils.destroyMBean(cValves[l], context); } } @@ -673,7 +673,7 @@ for (int k = 0; k eValves.length; k++) { if (debug = 3) log(Destroying MBean for Valve + eValves[k]); -MBeanUtils.destroyMBean(eValves[k]); +MBeanUtils.destroyMBean(eValves[k], engine); } } @@ -726,7 +726,7 @@
cvs commit: jakarta-tomcat-connectors/jk/java/org/apache/jk/apr AprImpl.java
costin 02/04/17 17:14:34 Modified:jk/java/org/apache/jk/apr AprImpl.java Log: The quick hack I mentioned in the previous commit. Now both 3.3 and 4.1 ( and I suppose 4.0 didn't changed since yesterday ) are working with all 3 channels. ( httpd -X for jni channel please - shm is not yet ready :-) That doesn't mean everything is fine - requests are forwarded but the response is 'no context' in 4.1 ( even if the standalone is working fine ). Still investigating. Revision ChangesPath 1.9 +70 -0 jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java Index: AprImpl.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/jk/apr/AprImpl.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- AprImpl.java 17 Apr 2002 22:43:58 - 1.8 +++ AprImpl.java 18 Apr 2002 00:14:34 - 1.9 @@ -1,6 +1,7 @@ package org.apache.jk.apr; import java.io.*; +import java.lang.reflect.*; import java.util.*; import org.apache.jk.core.*; @@ -206,6 +207,75 @@ } } +// Hack for Catalina who hungs the calling thread. +public static void main( String args[] ) { +System.err.println(Main); +try { +// Find the class +Class c=null; +int i=0; + +for( i=0; iargs.length; i++ ) { +String classN=args[i]; +if( -.equals( classN ) ) { +// end of options. +break; +} +if( c!=null ) continue; +try { +System.err.println(Try + classN); +c=Class.forName( classN ); +} catch( ClassNotFoundException ex ) { +continue; +} +} + +i++; +if( c==null ) { +System.err.println(No class found ); +return; +} + +if( args.length = i ) { +String newArgs[]=new String[ args.length - i ]; +System.out.println(Replacing args: + i + + args.length); +for( int j=0; jnewArgs.length; j++ ) { +newArgs[j]=args[i+j]; +System.out.println(ARG: + newArgs[j]); +} +args=newArgs; +} else { +System.out.println(No extra args: + i + + args.length); +args=new String[0]; +} + +System.err.println(Starting); +Thread startThread=new Thread( new TomcatStartThread(c, args)); +startThread.start(); +} catch (Throwable t ) { +t.printStackTrace(System.err); +} +} + +static class TomcatStartThread implements Runnable { +Class c; +String args[]; +TomcatStartThread( Class c, String args[] ) { +this.c=c; +this.args=args; +} + +public void run() { +try { +Class argClass=args.getClass(); +Method m=c.getMethod( main, new Class[] {argClass} ); +m.invoke( c, new Object[] { args } ); +} catch( Throwable t ) { +t.printStackTrace(System.err); +} +} +} + private static org.apache.commons.logging.Log log= org.apache.commons.logging.LogFactory.getLog( AprImpl.class ); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk.dsp
De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Enviado el: jueves 18 de abril de 2002 0:56 ( I know Nacho will be very disapointed, but I think it's the right thing to do ... ) I am, I am, :) it's sad but i will survive, but Why ? Saludos , Ignacio J. Ortega -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk.dsp
On Thu, 18 Apr 2002, Ignacio J. Ortega wrote: ( I know Nacho will be very disapointed, but I think it's the right thing to do ... ) I am, I am, :) it's sad but i will survive, but Why ? Why I added .dsp and Makefiles ? Because most people are used with 'make' or MSVC, and we have enough changes in the code to worry about. I'll continue to use ant - and test the makefile and dsp from time to time. BTW, did you got the windows version working ? Can you also test the JNI channel ? It should be working with 3.3 or 4.0, but not 4.1. Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
mod_jk2: 3 more issues
Getting close, all channels and workers seem to be in a good shape. 2 more things before we can freeze it: - Finish the shm object and get worker_lb to update automatically based on the shared memory ( plus tomcat to register itslef and a tool to add/remove/set workers ). - Port the IIS connector. - Test the jni connector in multiprocess mode. Any help ( including other platforms and testing ) is more then wellcome... Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat-connectors/jk/native2/server/apach e2 mod_jk.dsp
BTW, did you got the windows version working ? Can you also test the JNI channel ? It should be working with 3.3 or 4.0, but not 4.1. Apache or IIS? Apache is mostly compiling, but not got time to test it, i'm not very used to apache, i will need some advice to run the apache thing.. but AFAIK it should work already.. IIS.., well the differences between jk and jk2 are so high, my first try was lost in the way to adapt the existing ISAPI code, next i will try to use mod_jk2 as base to start, adding IIS things along the way.. BTW: In the process of rewriting isapi_redirector, and based on conversations we had in the past, i'm toward to refactor the isapi redirector , splitting it in 2 dlls, this way i think we can gain scalability with a very little effort, at the cost of a little more complicated installation, being the installation more than a pain already, i'm in doubt.. The new installation process, will install some dll as filter and another as extension, but the overall process will be more or less the same as is now.. modulo the new config of course.. :) Comments advice are very welcomed.. Saludos , Ignacio J. Ortega -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat-connectors/jk/native2/server/apach e2 mod_jk.dsp
On Thu, 18 Apr 2002, Ignacio J. Ortega wrote: IIS.., well the differences between jk and jk2 are so high, my first try was lost in the way to adapt the existing ISAPI code, next i will try to use mod_jk2 as base to start, adding IIS things along the way.. It's mostly a matter of removing stuff - most of the code moved to common/, it shouldn't be too much server-specific code. What you can do is start with jk_service_iis.c ( based on jk_service_apache13 ) - and move the few methods related with request. Then remove almost everything from isapi.c - all you need is to get ( from registry ? or env ? ) the location of tomcat ( I would try both - please note that you probably have it already in the tomcat service key - reusing that is the best choice !). That's it. Configuration should use workers2.properties, from tomcat.home/conf. If you find any extra code that could be usefull - try to move it in common/, but don't leave it in isapi. If you want to have fun - you can also implement jk_log_nt to send the logs to the iis-specific thing ( windows events ? ). BTW: In the process of rewriting isapi_redirector, and based on conversations we had in the past, i'm toward to refactor the isapi redirector , splitting it in 2 dlls, this way i think we can gain scalability with a very little effort, at the cost of a little more complicated installation, being the installation more than a pain already, i'm in doubt.. I don't think you need 2 dlls. Just one big dll including everything should be fine. ( don't forget the jni/ directory ). 2 files - yes, one with only initialization ( with the major goal of finding the conf/ dir ), one for service. ( unless there's a problem having a dll as both filter and handler ) Let me know if you need help - I will try to do some refactoring to extract the code dealing with the registry ( into common/jk_config_registry ) and let both tomcat and mod_jk2 use it. If you want I can do a quick refactoring and put the new stuff in - to get it started. Costin -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8235] New: - message.properties is missing in package Tyrex-0.9.7.0.jar
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8235. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8235 message.properties is missing in package Tyrex-0.9.7.0.jar Summary: message.properties is missing in package Tyrex- 0.9.7.0.jar Product: Tomcat 4 Version: 4.0 Beta 2 Platform: All OS/Version: All Status: NEW Severity: Blocker Priority: Other Component: Catalina AssignedTo: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] It always report us error message when use tomcat as Transaction Manager Server for two phase commit. resean is: message.properties is missing in package Tyrex-0.9.7.0.jar. -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
DO NOT REPLY [Bug 8235] - message.properties is missing in package Tyrex-0.9.7.0.jar
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8235. ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND INSERTED IN THE BUG DATABASE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8235 message.properties is missing in package Tyrex-0.9.7.0.jar --- Additional Comments From [EMAIL PROTECTED] 2002-04-18 02:52 --- Created an attachment (id=1609) Tyrex jar package contain message.properties -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: sip servlet API
On Wed, 17 Apr 2002, jean-francois jestin wrote: Date: Wed, 17 Apr 2002 15:44:13 +0200 From: jean-francois jestin [EMAIL PROTECTED] Reply-To: Tomcat Developers List [EMAIL PROTECTED] To: [EMAIL PROTECTED] Subject: sip servlet API Hello Guys, As you know, Anders Kristensen as leader of the JSR 116, the SIP Servlet expert group, is currently defining a new servlet API : the Sip Servlet API : http://jcp.org/jsr/detail/116.jsp. I would like to know if someone involved in the tomcat 4 design have already had a look to this specification and have ideas about the way to support such servlets in Tomcat. Does current Tomcat 4 architecture support such servlet (with of course some specific component development and in particular a sip connector) ? or such servlets support need a complete refactoring of current tomcat architecture ? I had some early-on mail conversations with some of the folks interested in this, but haven't seen the recent specs. In principle, the Catalina architecture should work for this purpose, with the probable need to provide customized implementations of org.apache.catalina.Connector and org.apache.catalina.Context. In practice, how easy or difficult this is depends a lot on how different SIP is from HTTP, and/or how different the internal APIs are to the existing servlet API. I suspect it will probably tend towards the easy end of the scale. Craig McClanahan -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets DefaultServlet.java
billbarker02/04/17 20:08:04 Modified:catalina/src/share/org/apache/catalina/core Tag: tomcat_40_branch ApplicationHttpRequest.java catalina/src/share/org/apache/catalina/servlets Tag: tomcat_40_branch DefaultServlet.java Log: Port fix for bug #8092 from the HEAD branch. Reported by: Andreas Junghans [EMAIL PROTECTED] Revision ChangesPath No revision No revision 1.10.2.1 +9 -6 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java Index: ApplicationHttpRequest.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -r1.10 -r1.10.2.1 --- ApplicationHttpRequest.java 22 Jul 2001 20:25:08 - 1.10 +++ ApplicationHttpRequest.java 18 Apr 2002 03:08:04 - 1.10.2.1 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v 1.10 2001/07/22 20:25:08 pier Exp $ - * $Revision: 1.10 $ - * $Date: 2001/07/22 20:25:08 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/core/ApplicationHttpRequest.java,v 1.10.2.1 2002/04/18 03:08:04 billbarker Exp $ + * $Revision: 1.10.2.1 $ + * $Date: 2002/04/18 03:08:04 $ * * * @@ -94,7 +94,7 @@ * keep these two classes in synchronization when making changes! * * @author Craig R. McClanahan - * @version $Revision: 1.10 $ $Date: 2001/07/22 20:25:08 $ + * @version $Revision: 1.10.2.1 $ $Date: 2002/04/18 03:08:04 $ */ class ApplicationHttpRequest extends HttpServletRequestWrapper { @@ -513,8 +513,11 @@ Enumeration names = request.getAttributeNames(); while (names.hasMoreElements()) { String name = (String) names.nextElement(); -Object value = request.getAttribute(name); -attributes.put(name, value); +if( ! ( Globals.REQUEST_URI_ATTR.equals(name) || +Globals.SERVLET_PATH_ATTR.equals(name) ) ) { +Object value = request.getAttribute(name); +attributes.put(name, value); +} } } No revision No revision 1.39.2.6 +5 -5 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java Index: DefaultServlet.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v retrieving revision 1.39.2.5 retrieving revision 1.39.2.6 diff -u -r1.39.2.5 -r1.39.2.6 --- DefaultServlet.java 3 Jan 2002 10:44:32 - 1.39.2.5 +++ DefaultServlet.java 18 Apr 2002 03:08:04 - 1.39.2.6 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.39.2.5 2002/01/03 10:44:32 remm Exp $ - * $Revision: 1.39.2.5 $ - * $Date: 2002/01/03 10:44:32 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/servlets/DefaultServlet.java,v 1.39.2.6 2002/04/18 03:08:04 billbarker Exp $ + * $Revision: 1.39.2.6 $ + * $Date: 2002/04/18 03:08:04 $ * * * @@ -122,7 +122,7 @@ * * @author Craig R. McClanahan * @author Remy Maucherat - * @version $Revision: 1.39.2.5 $ $Date: 2002/01/03 10:44:32 $ + * @version $Revision: 1.39.2.6 $ $Date: 2002/04/18 03:08:04 $ */ public class DefaultServlet @@ -1093,7 +1093,7 @@ // Checking If headers boolean included = -(request.getAttribute(Globals.REQUEST_URI_ATTR) != null); +(request.getAttribute(Globals.CONTEXT_PATH_ATTR) != null); if (!included !checkIfHeaders(request, response, resourceInfo)) { return; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: Apache 2.0 - webapps
Has anyone successfully been able to connect Apache 2.0 and Tomcat 4.0. The webapp interface has the following error when loading Apache: Cannot load /apache2/modules/mod_webapp.so into server: ld.so.1: /cdldevel2/loy/apache2/bin/httpd: fatal: relocation error: file /cdldevel2/loy/apache2/modules/mod_webapp.so: symbol ap_pstrdup: referenced symbol not found .//apachectl start: httpd could not be started Any suggestions would be terrific! Dowload the source and follow the instructions in INSTALL.txt and README.txt should work. As Apache 2.0 is out, I think we should think about to add pre-built binaries for Apache 2.0 to reduce confusions. Thanks David Punky _ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]