Hi,

Well according to the trace file, you have called "conn.rollback()" instead
of "conn.rollback(sp)".

If you don't find the problem, you would need to provide a simple,
reproducible test case (just one Java class with a main method and JDBC API
calls, no dependencies).

Regards,
Thomas


On Tuesday, May 3, 2016, Niko Paltzer <[email protected]> wrote:

> Hi Thomas,
>
> I did the logging you suggested and the result is attached.
>
> My observations:
>
> In lines 4351-4353 it says:
> /**/stat79.execute("savepoint test_savepoint");
> 05-03 16:52:54 jdbc[4]:
> /*SQL */savepoint test_savepoint;
>
> But when doing the rollback (lines 4389-4398) the savepoint is not logged:
> /**/conn37.rollback();
> 05-03 16:52:54 index: TEST_DATA remove ( /* key:2 */ 2)
> 05-03 16:52:54 pageStore: log - s: 4 table: 15 row: ( /* key:2 */ 2)
> 05-03 16:52:54 index: TEST_DATA remove ( /* key:1 */ 1)
> 05-03 16:52:54 pageStore: updateRecord page[521] data leaf table:15 TEST
> entries:0 parent:0 keys:null offsets:null
> 05-03 16:52:54 pageStore: log - s: 4 table: 15 row: ( /* key:1 */ 1)
> 05-03 16:52:54 pageStore: log commit s: 4
> 05-03 16:52:54 lock: 4 exclusive write lock unlock TEST
> 05-03 16:52:54 jdbc[4]:
> /*SQL t:1*/ROLLBACK;
>
> Does that mean, that Execute Query does not pass this information to the
> driver and just executes a "rollback" instead of "rollback to savepoint
> test_savepoint"?
>
> Thanks again.
>
> Best, Niko
>
> On Tuesday, May 3, 2016 at 7:45:46 AM UTC+2, Thomas Mueller wrote:
>>
>> Hi,
>>
>> I don't know what the problem could be, but maybe you could find out
>> yourself if you enable "JDBC method call logging", by appending
>> ";trace_level_system_out=3" to the database URL. This will log all method
>> calls to system out. If use ";trace_level_file=3" to log to a file (next to
>> the database file).
>>
>> Regards,
>> Thomas
>>
>>
>> On Monday, April 11, 2016, Niko Paltzer <[email protected]> wrote:
>>
>>> Hi,
>>>
>>> please consider the following example:
>>>
>>>
>>> DROP TABLE TEST;
>>>
>>> CREATE TABLE TEST(ID NUMERIC(15) NOT NULL);
>>>
>>> insert into test values (1);
>>>
>>> savepoint test_savepoint;
>>>
>>> insert into test values (2);
>>>
>>> rollback to savepoint test_savepoint;
>>>
>>> select * from test;
>>>
>>>
>>> If I execute it with the H2 console, I get the expected result: One row
>>> with value 1.
>>>
>>> If I execute the same snippet with Execute Query (www.executequery.org),
>>> using org.h2.Driver from h2-1.3.176.jar (h2.1.4.191.jar resp.), then the
>>> result is empty.
>>>
>>> I disabled auto-commit in both cases.
>>>
>>> Do you have any idea why this difference occurs?
>>>
>>> Thanks a lot!
>>>
>>> Best, Niko Paltzer
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "H2 Database" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/h2-database.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>> --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected]
> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
> .
> To post to this group, send email to [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>.
> Visit this group at https://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to