Hi,
I have problem with communication with my MySQL database. The problem is
no inserted records in the db after INSERT close executed. When I connect
with outside client to the same db and try to act it gives me "Lock wait
timetout exceeded; try restart transaction". I have code :
public class EditNewsletters extends DocumentUsecase{
private DataSourceComponent datasource;
protected void initParameters() {
super.initParameters();
}
protected void prepareView()throws Exception{
super.prepareView();
String view_already_prepared =
this.getParameterAsString("EditNewsletters.view_already_prepared");
if(view_already_prepared == null){
//this.manageDbData();
this.testWithLmps();
this.setParameter("EditNewsletters.view_already_prepared",
"true");
}
}
protected void manageDbData(){
try {
ServiceSelector selector = (ServiceSelector)
manager.lookup(DataSourceComponent.ROLE + "Selector");
this.datasource = (DataSourceComponent)
selector.select("humana");
Connection myConnection = this.datasource.getConnection();
Statement stmt = myConnection.createStatement();
stmt.execute("INSERT INTO email VALUES (0, '[email protected]')");
String query = "SELECT * FROM area";
ResultSet result = stmt.executeQuery(query);
System.out.println("EditNewsletters result =
"+result.getFetchSize());
stmt.close();
myConnection.close();
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ServiceException ex) {
ex.printStackTrace();
}
}
private void testWithLmps(){
try {
ServiceSelector selector = (ServiceSelector)
manager.lookup(DataSourceComponent.ROLE + "Selector");
this.datasource = (DataSourceComponent) selector.select("lmps");
Connection myConnection = this.datasource.getConnection();
Statement stmt = myConnection.createStatement();
String query = "INSERT INTO question VALUES (0,
'aaaaaaaaaaaaaa?')";
stmt.execute(query);
myConnection.close();
System.out.println("EditNewsletters q = "+query);
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ServiceException ex) {
ex.printStackTrace();
}
}
protected void doExecute() throws Exception {
super.doExecute();
System.out.println("EditNewsletters doExecute()");
}
}
in cocoon.xconf :
<jdbc logger="core.datasources.humana" name="humana">
<pool-controller max="10" min="5"/>
<auto-commit>false</auto-commit>
<dburl>jdbc:mysql://localhost:3306/humana?useUnicode=true&characterEncoding=UTF-8</dburl>
<user>root</user>
<password>lau</password>
</jdbc>
plz, help
thanks