Author: pero
Date: Mon Aug 13 11:12:51 2007
New Revision: 565463
URL: http://svn.apache.org/viewvc?view=rev&rev=565463
Log:
Improve large-file support (more then 4 Gb) at all AccessLogValves.
Modified:
tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/AccessLogValve.java
tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/ExtendedAccessLogValve.java
tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/FastCommonAccessLogValve.java
tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/JDBCAccessLogValve.java
tomcat/container/tc5.5.x/webapps/docs/changelog.xml
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/AccessLogValve.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/
catalina/src/share/org/apache/catalina/valves/AccessLogValve.java?
view=diff&rev=565463&r1=565462&r2=565463
===================================================================
==
=========
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/AccessLogValve.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/AccessLogValve.java Mon Aug 13 11:12:51 2007
@@ -120,7 +120,7 @@
* Construct a new instance of this class with default
property values.
*/
public AccessLogValve() {
-
+
super();
setPattern("common");
@@ -599,8 +599,7 @@
result.append(space);
- int length = response.getContentCount();
-
+ long length = response.getCoyoteResponse
().getBytesWritten() ;
if (length <= 0)
value = "-";
else
@@ -805,13 +804,15 @@
value = "127.0.0.1";
}
} else if (pattern == 'b') {
- int length = response.getContentCount();
+ //int length = response.getContentCount();
+ long length = response.getCoyoteResponse
().getBytesWritten() ;
if (length <= 0)
value = "-";
else
value = "" + length;
} else if (pattern == 'B') {
- value = "" + response.getContentLength();
+ //value = "" + response.getContentLength();
+ value = "" + response.getCoyoteResponse
().getBytesWritten();
} else if (pattern == 'h') {
value = request.getRemoteHost();
} else if (pattern == 'H') {
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/ExtendedAccessLogValve.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/
catalina/src/share/org/apache/catalina/valves/
ExtendedAccessLogValve.java?
view=diff&rev=565463&r1=565462&r2=565463
===================================================================
==
=========
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/ExtendedAccessLogValve.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/ExtendedAccessLogValve.java Mon Aug 13 11:12:51
2007
@@ -584,7 +584,7 @@
else if (FieldInfo.SPECIAL_TIME==fieldInfos
[i].location)
result.append(timeFormatter.format(date));
else if (FieldInfo.SPECIAL_BYTES==fieldInfos
[i].location) {
- int length = response.getContentCount();
+ long length = response.getCoyoteResponse
().getBytesWritten() ;
if (length > 0)
result.append(length);
else
@@ -744,7 +744,7 @@
FieldInfo.X_LOC_REQUESTEDSESSIONIDVALID) {
return wrap
(""+request.isRequestedSessionIdValid());
} else if
(fieldInfo.location==FieldInfo.X_LOC_CONTENTLENGTH) {
- return wrap(""+request.getContentLength());
+ return wrap(""+request.getCoyoteRequest
().getContentLengthLong());
} else if (fieldInfo.location==
FieldInfo.X_LOC_CHARACTERENCODING) {
return wrap(request.getCharacterEncoding());
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/FastCommonAccessLogValve.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/
catalina/src/share/org/apache/catalina/valves/
FastCommonAccessLogValve.java?
view=diff&rev=565463&r1=565462&r2=565463
===================================================================
==
=========
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/FastCommonAccessLogValve.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/FastCommonAccessLogValve.java Mon Aug 13 11:12:51
2007
@@ -523,8 +523,8 @@
result.append(space);
- int length = response.getContentCount();
-
+ long length = response.getCoyoteResponse().getBytesWritten
() ;
+
if (length <= 0)
value = "-";
else
Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/JDBCAccessLogValve.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/
catalina/src/share/org/apache/catalina/valves/
JDBCAccessLogValve.java?view=diff&rev=565463&r1=565462&r2=565463
===================================================================
==
=========
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/JDBCAccessLogValve.java (original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/
catalina/valves/JDBCAccessLogValve.java Mon Aug 13 11:12:51 2007
@@ -93,6 +93,10 @@
* INDEX (userAgent)
* );
* </pre>
+ * <p>Set JDBCAccessLogValve attribute
useLongContentLength="true" as you have more then 4GB outputs.
+ * Please, use long SQL datatype at access.bytes attribute.
+ * The datatype of bytes at oracle is <i>number</i> and other
databases use <i>bytes BIGINT NOT NULL</i>.</p>
+ *
* <p>
* If the table is created as above, its name and the field names
don't need
* to be defined.
@@ -115,7 +119,6 @@
//
-----------------------------------------------------------
Constructors
-
/**
* Class constructor. Initializes the fields with the default
values.
* The defaults are:
@@ -162,7 +165,12 @@
// -----------------------------------------------------
Instance Variables
-
+ /**
+ * Use long contentLength as you have more 4 GB output.
+ * @since 5.5.25
+ */
+ protected boolean useLongContentLength = false ;
+
/**
* The connection username to use when trying to connect to
the database.
*/
@@ -419,6 +427,12 @@
this.resolveHosts = new Boolean(resolveHosts).booleanValue
();
}
+ /**
+ * @param useLongContentLength the useLongContentLength to set
+ */
+ public void setUseLongContentLength(boolean
useLongContentLength) {
+ this.useLongContentLength = useLongContentLength;
+ }
// ---------------------------------------------------------
Public Methods
@@ -449,7 +463,8 @@
String query="";
if(request != null)
query = request.getRequestURI();
- int bytes = response.getContentCount();
+ long bytes = response.getCoyoteResponse().getBytesWritten
() ;
+
if(bytes < 0)
bytes = 0;
int status = response.getStatus();
@@ -465,7 +480,14 @@
ps.setTimestamp(3, new Timestamp
(getCurrentTimeMillis()));
ps.setString(4, query);
ps.setInt(5, status);
- ps.setInt(6, bytes);
+
+ if(useLongContentLength) {
+ ps.setLong(6, bytes);
+ } else {
+ if (bytes > Integer.MAX_VALUE)
+ bytes = -1 ;
+ ps.setInt(6, (int) bytes);
+ }
if (pattern.equals("combined")) {
String virtualHost = "";
Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/
docs/changelog.xml?view=diff&rev=565463&r1=565462&r2=565463
===================================================================
==
=========
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Mon Aug 13
11:12:51 2007
@@ -37,7 +37,7 @@
Correct j.u.l log levels in JULI docs. (rjung)
</docs>
<update>
- Update to Commons Modeler 2.0.1, fix embed release
starting issue (pero)
+ Update to Commons Modeler 2.0.1, fix embed release
starting issue. (pero)
</update>
</changelog>
</subsection>
@@ -76,6 +76,9 @@
<fix>
<bug>42944</bug>: Correctly handle servlet mappings that
use a '+'
character as part of the url pattern. (markt)
+ </fix>
+ <fix>
+ Improve large-file support (more then 4 Gb) at all
AccessLogValves. (pero)
</fix>
</changelog>
</subsection>
-------------------------------------------------------------------
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]