Hi David,
    try to change the connection URL to:
 
    jdbc:mysql://localhost/semantic?autoReconnect=true

Bye,
   Alvaro.
      

David Parry wrote:



Subject:
data-source connection keeps closing
From:
David Parry <[EMAIL PROTECTED]>
Date:
Thu, 6 Nov 2003 14:40:39 +0100
To:
[EMAIL PROTECTED]

After days of googling and trawling through the mail archives, I still  can't find any explanation for this... I'm trying to get a DataSource  that's been configured in struts-config.xml and use the connection in  my Model.

Every time I try to use the connection it says that it has closed  (before even getting the chance to create a statement!). The connection  that is returned sure enough has the correct URL, user, password &  driver, and independent tests have confirmed that mysql is running,  that permissions are acceptable for that user, it's accessible from  Java, blah blah...

I've looked through most of the examples listed on the struts resources  pages, but I can't seem to find anything that has a simple  direct-to-jdbc example. Currently I'm not in a position to be using  anything like Hibernate, etc, so all those examples are kinda not  helpful in my situation.

********
QUESTION: Does anyone have a simple canonical example of connecting to  a JDBC database (preferably MySQL) via struts?
********

I'm using Tomcat 4.1, MySQL 4.1.0, MySQL Connector 3.0.9 and struts 1.2.

Error is as follows:

14:21:44,750 DEBUG QueryAction:55 - dataSource =  [EMAIL PROTECTED]
14:21:45,561 DEBUG QueryAction:59 - myConnection =  [EMAIL PROTECTED]
14:21:45,636 DEBUG QueryAction:61 - queryModel =  [EMAIL PROTECTED]
14:21:45,677 DEBUG Model:109 - findNodes(null)
14:21:45,682 DEBUG Model:384 - readAll(node)
14:21:45,687 DEBUG Model:385 - connection =  [EMAIL PROTECTED]
14:21:45,712 ERROR Model:392 - SQL Exception
java.sql.SQLException: Connection is closed.
        at  org.apache.commons.dbcp.DelegatingConnection.checkOpen(DelegatingConnect ion.java:245)
        at  org.apache.commons.dbcp.DelegatingConnection.createStatement(DelegatingC onnection.java:170)
        at com.imc.semantic.Model.readAll(Model.java:389)


struts-config.xml:

  <data-sources>
    <data-source type="org.apache.commons.dbcp.BasicDataSource">
        <set-property property="driverClassName"  value="org.gjt.mm.mysql.Driver"/>
        <set-property property="url" value="jdbc:mysql://localhost/semantic"/>

        <set-property property="username" value="root"/>
        <set-property property="password" value=""/>
       
        <set-property property="maxActive" value="10" />
        <set-property property="maxWait" value="5000" />
        <set-property property="defaultAutoCommit" value="false" />
        <set-property property="defaultReadOnly" value="false" />
        <set-property property="validationQuery" value="SELECT COUNT(*) FROM  node" />
     </data-source>
  </data-sources>


and the Java code in the Action:

    public ActionForward execute(ActionMapping mapping,
                 ActionForm form,
                 HttpServletRequest request,
                 HttpServletResponse response)
            throws Exception {
       
        DataSource dataSource;
        QueryModel queryModel = null;
        Connection myConnection = null;
               
        try {
            dataSource = getDataSource(request);
//            dataSource = servlet.findDataSource(null);
            logger.debug("dataSource = " + dataSource);
           
            if (dataSource != null) {
                myConnection = dataSource.getConnection();
                logger.debug("myConnection = " + myConnection);
                queryModel = new QueryModel(myConnection);
                logger.debug("queryModel = " + queryModel);
            } else {
                throw new Exception("dataSource was null");
            }
        } catch (SQLException e) {
           getServlet().log("Connection.process", e);
        } finally {
            // enclose this in a finally block
            // to make sure the connection is closed
            try {
                if (myConnection != null) myConnection.close();
            } catch (SQLException e2) {
                getServlet().log("Connection.close", e2);
            }
         }
       

-------------------
David Parry

Pronoia: the irrational feeling that forces are working
behind your back to make your life better.


  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to