balld 00/06/07 12:45:53
Modified: . changes.xml
src/org/apache/cocoon/processor/sql SQLProcessor.java
Log:
added connection cache to sql processor
Revision Changes Path
1.82 +4 -1 xml-cocoon/changes.xml
Index: changes.xml
===================================================================
RCS file: /home/cvs/xml-cocoon/changes.xml,v
retrieving revision 1.81
retrieving revision 1.82
diff -u -r1.81 -r1.82
--- changes.xml 2000/06/07 19:40:40 1.81
+++ changes.xml 2000/06/07 19:45:47 1.82
@@ -4,7 +4,7 @@
<!--
History of Cocoon changes
- $Id: changes.xml,v 1.81 2000/06/07 19:40:40 balld Exp $
+ $Id: changes.xml,v 1.82 2000/06/07 19:45:47 balld Exp $
-->
<changes title="History of Changes">
@@ -16,6 +16,9 @@
</devs>
<release version="@version@" date="@date@">
+ <action dev="DB" type="fix" due-to="Peter Seiderer" due-to-email="[EMAIL
PROTECTED]">
+ Added connection cache to sql processor
+ </action>
<action dev="DB" type="fix" due-to="Jeremy Quinn" due-to-email="[EMAIL
PROTECTED]">
Disabled "created by cocoon" comment for HTTP HEAD requests.
</action>
1.13 +20 -5
xml-cocoon/src/org/apache/cocoon/processor/sql/SQLProcessor.java
Index: SQLProcessor.java
===================================================================
RCS file:
/home/cvs/xml-cocoon/src/org/apache/cocoon/processor/sql/SQLProcessor.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SQLProcessor.java 2000/05/12 17:27:45 1.12
+++ SQLProcessor.java 2000/06/07 19:45:50 1.13
@@ -62,7 +62,7 @@
* A processor that performs SQL database queries.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Donald Ball</a>
- * @version $Revision: 1.12 $ $Date: 2000/05/12 17:27:45 $
+ * @version $Revision: 1.13 $ $Date: 2000/06/07 19:45:50 $
*/
public class SQLProcessor extends AbstractActor implements Processor, Status
{
@@ -98,6 +98,8 @@
*/
public Document process(Document document, Dictionary parameters) throws
Exception {
HttpServletRequest request =
(HttpServletRequest)parameters.get("request");
+ Hashtable connections = new Hashtable();
+ Connection conn = null;
try {
ConnectionDefs cdefs = new ConnectionDefs(document);
NodeList query_nodes = document.getElementsByTagName("query");
@@ -136,13 +138,28 @@
}
}
}
- Connection conn =
cdefs.getConnection(query_props.getProperty("connection"));
+
+ String conn_name = query_props.getProperty("connection");
+ if (connections.containsKey(conn_name)) {
+ conn = (Connection) connections.get(conn_name);
+ } else {
+ conn = (Connection) cdefs.getConnection(conn_name);
+ connections.put(conn_name, conn);
+ }
+
processQuery(document,parameters,query_element,query_props,conn);
}
} catch (Exception e) {
e.printStackTrace();
}
+ Enumeration conn_list = connections.elements();
+ while(conn_list.hasMoreElements()) {
+ Connection c = (Connection) conn_list.nextElement();
+ c.close();
+ }
+ connections.clear();
+
return document;
}
@@ -302,9 +319,7 @@
if (!auto_commit) {
conn.rollback();
}
- } finally {
- conn.close();
- }
+ }
}
/**