ok, now my code looks like this:
But the problem remains the same, no inserted records, and the same timeout
transaction error message after outside client interaction with db.
private void testWithLmps(){
Connection myConnection = null;
try {
ServiceSelector selector = (ServiceSelector)
manager.lookup(DataSourceComponent.ROLE + "Selector");
this.datasource = (DataSourceComponent) selector.select("lmps");
myConnection = this.datasource.getConnection();
Statement stmt = myConnection.createStatement();
String query = "INSERT INTO question VALUES (0,
'aaaaaaaaaaaaaa?')";
stmt.execute(query);
System.out.println("EditNewsletters q = "+query);
} catch (SQLException ex) {
ex.printStackTrace();
} catch (ServiceException ex) {
ex.printStackTrace();
}finally{
if(myConnection != null){
try {
myConnection.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
On Wed, Jan 27, 2010 at 10:33 PM, Michael Wechner <[email protected]
> wrote:
> Andreas Hartmann wrote:
>
>> Am 27.01.10 16:35, schrieb Gintare Ragaisiene:
>>
>>> 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 :
>>>
>>>
>> 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]
>>> <mailto:[email protected]>')");
>>>
>>> String query = "SELECT * FROM area";
>>> ResultSet result = stmt.executeQuery(query);
>>> System.out.println("EditNewsletters result =
>>> "+result.getFetchSize());
>>>
>>
>> Is this code executed?
>>
>>
>>> stmt.close();
>>> myConnection.close();
>>>
>>
>> I'm not too familiar with JDBC, but I'd assume that the close() statements
>> should go into the finally clause to avoid exhaustion of the connection pool
>> if exceptions occur.
>>
>
> I can confirm this. You really need to make sure that every connection is
> being closed no matter what exception happened during the connection,
> because otherwise your system will be "blocked" quickly
>
> Cheers
>
> Michael
>
>
>>
>> BTW, your question is not really related to Lenya, maybe you get better
>> hints on a more appropriate mailing list (e.g., on the Cocoon user list).
>>
>> -- Andreas
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>