This also seems to be incorrect:

File: org.h2.schema.Sequence
 private void flushInternal(Session session) {
        final boolean metaWasLocked = database.lockMeta(session);
        // just for this case, use the value with the margin
        try {
            writeWithMargin = true;
            database.updateMeta(session, this);
        } finally {
            writeWithMargin = false;
        }
        if (!metaWasLocked) {
            database.unlockMeta(session);
        }
    }


I would think you'd only want to call database.unlockMeta when 
'metaWasLocked' == true

Why would you want to unlock something when it wasn't locked?


Patrick


On Wednesday, January 3, 2018 at 4:22:32 PM UTC-8, Patrick H wrote:
>
> Constructor,  public Database(ConnectionInfo ci, String cipher) where all 
> the URL options are parsed never parses for the 'LOCK_MODE' option. Thus 
> never changes the default value for Database.lockMode  which is  
> Constants.DEFAULT_LOCK_MODE (3).
>
>
> Patrick
>
>
>
> On Wednesday, January 3, 2018 at 3:17:31 PM UTC-8, Patrick H wrote:
>>
>> I believe this to be the problem.
>>
>>
>> File: MVTable.java
>> public boolean lock(Session session, boolean exclusive,
>>             boolean forceLockEvenInMvcc) {
>>         int lockMode = database.getLockMode();
>>         if (lockMode == Constants.LOCK_MODE_OFF) {
>>             return false;
>>         }
>>
>>
>> database.getLockMode() is returning '3' as opposed to '0'.
>>
>>
>> I'm trying to determine if LOCK_MODE=0 is passed to the database object. 
>>
>>
>>
>> Patrick
>>
>>
>> On Wednesday, January 3, 2018 at 11:33:54 AM UTC-8, Patrick H wrote:
>>>
>>> Hello,
>>>
>>> I am using:
>>>
>>> java -Xmx4096m -Xverify:none -cp %CLASSPATH%\h2-1.4.196.jar 
>>> org.h2.tools.RunScript -url 
>>> "jdbc:h2:nioMapped:~/%DB_NAME%;LOCK_MODE=0;TRACE_LEVEL_FILE=3;UNDO_LOG=0" 
>>> -user "admin" -password "admin" -script "D:/dev/sql/sqlscript.sql" 
>>>
>>> and "sqlscript.sql' has a hundred or more: RUNSCRIPT FROM 
>>> '<filename.sql>';
>>>
>>> Basically, I have a master run script running hundreds of sub-RUNSCRIPT. 
>>> The objective of my master/sub-scripts it to bulk load data.
>>>
>>> And when I review the log file, database.trace.db, it contains hundreds 
>>> of LOCKS.
>>>
>>> For example:
>>>
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock unlock SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock requesting for SYS
>>> 2018-01-03 11:04:28 lock: 1 exclusive write lock added for SYS
>>> ...
>>> ...
>>> ...
>>>
>>> Can anyone please explain why locks are still happening with LOCK_MODE=0?
>>>
>>>
>>> Thanks,
>>>
>>> Patrick
>>>
>>>

-- 
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 h2-database+unsubscr...@googlegroups.com.
To post to this group, send email to h2-database@googlegroups.com.
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