Hi,

H2 doesn't "miss the unlock". I'm sure this is not a problem in the
database. It is clearly a problem on your side.

Regards,
Thomas


On Sat, Nov 2, 2013 at 4:27 PM, marcolopes <[email protected]> wrote:

> Thomas, this only happens if the user misses the "login"...
>
> 1) Backup the **closed** database
> 2) Login is attempted and fails
> 3) Database is closed (well, i issue the datanucleus PFM.close that shoud
> close ALL connections / poolmanager)
> 4) Back to step 1 - and that is where it might be problematic, as i don't
> really know if the database is closed or H2 just misses the unlock...
>
>
> On Saturday, November 2, 2013 2:54:53 PM UTC, Thomas Mueller wrote:
>
>> Hi,
>>
>> Copying the database file while the database is open is not a good idea.
>> It will work in most cases, but not in all cases (for example if the
>> transaction log is rolled over while the backup is in progress). When it
>> doesn't work, the database will be corrupt. Don't blame us for that.
>>
>> If you want to backup the database while it is open, use the "backup" SQL
>> statement. Otherwise you need to close the database.
>>
>> Regards,
>> Thomas
>>
>>
>> On Sat, Nov 2, 2013 at 3:51 PM, Noel Grandin <[email protected]> wrote:
>>
>>> Then it sounds like the problem is with datanucleus not closing it's
>>> connection to the db. Perhaps it needs some special call or parameter to
>>> tell it that?
>>> Or are you using db_close_delay in your db URL? Which would also cause
>>> the db to not close when the last connection is closed.
>>> Or maybe you are using a connection pool which may also need to be shut
>>> down.
>>>
>>>
>>> On Saturday, 2 November 2013, marcolopes wrote:
>>>
>>>> Thomas, i know what's going on...
>>>>
>>>> 1) The first backup is made
>>>> 2) The database is opened (i'm using Datanucleus persistence, so, no
>>>> control from my code)
>>>> 3) A database LOCK file is created
>>>> 4) I close the "Persistence Manager Factory" but the LOCK file is not
>>>> released... (it is released only when i terminate the java app)
>>>> 5) Subsequent backups attempts cause org.h2.jdbc.JdbcSQLException:
>>>> Cannot change the setting "backup" when the database is already open
>>>> [90133-169]
>>>>
>>>> On Saturday, November 2, 2013 9:14:22 AM UTC, Thomas Mueller wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I don't know what you do exactly, but I can not reproduce it. Could
>>>>> you provide a simple, reproducible test case? My test case is: I create a
>>>>> database "test". After that there is a file called "test.h2.db". Then I
>>>>> backup this file 4 times, and that works, and no .lock.db files are 
>>>>> created.
>>>>>
>>>>> *public* *class* Test {
>>>>>
>>>>>     *public* *static* *void* main(String... args) *throws* Exception {
>>>>>
>>>>>         Backup.execute("~/temp/backup1.zip", "~/temp", "test", *true*
>>>>> );
>>>>>
>>>>>         Backup.execute("~/temp/backup2.zip", "~/temp", "test", *false*
>>>>> );
>>>>>
>>>>>         Backup.execute("~/temp/backup3.zip", "~/temp", "test", *true*
>>>>> );
>>>>>
>>>>>         Backup.execute("~/temp/backup4.zip", "~/temp", "test", *false*
>>>>> );
>>>>>
>>>>>     }
>>>>>
>>>>> }
>>>>>
>>>>> I would expect from you a similar test case then the one above.
>>>>>
>>>>> Regards,
>>>>> Thomas
>>>>>
>>>>>
>>>>> On Fri, Nov 1, 2013 at 7:14 PM, marcolopes <[email protected]> wrote:
>>>>>
>>>>>> The database is **closed**!
>>>>>>
>>>>>> The problem is that, on the first backup execution a LOCK is
>>>>>> created... and all subsequent backup attempts fail.
>>>>>>
>>>>>>
>>>>>> On Friday, November 1, 2013 5:52:55 PM UTC, Thomas Mueller wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> What do you try to do? If the database is open, you should probably
>>>>>>> use the BACKUP SQL statement, not the Backup standalone tool.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Thomas
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Fri, Nov 1, 2013 at 6:39 PM, marcolopes <[email protected]> wrote:
>>>>>>>
>>>>>>>> I don't really understand the behavior of this parameter on the
>>>>>>>> *Backup.execute* method.
>>>>>>>>
>>>>>>>> I thought it would disable the possible "log info", but, inspecting
>>>>>>>> the code, it goes beyond that.
>>>>>>>>
>>>>>>>> The problem with the current approach is: if quiet=false, there is
>>>>>>>> an attempt to LOCK the database... and the LOCK file remains until the 
>>>>>>>> JAVA
>>>>>>>> session is terminated... so, another subsequent attempt to BACKUP a 
>>>>>>>> **yet
>>>>>>>> closed** but now locked database, fails!
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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 http://groups.google.com/group/h2-database.
>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>
>>>>>>>
>>>>>>>  --
>>>>>> 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 http://groups.google.com/group/h2-database.
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>
>>>>>  --
>>>> 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 http://groups.google.com/group/h2-database.
>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>
>>>  --
>>> 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 http://groups.google.com/group/h2-database.
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>>  --
> 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 http://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
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 http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to