Hi,

FYI: this should be fixed in H2 version 1.3.169.

Regards,
Thomas



On Tue, Apr 3, 2012 at 9:21 AM, Jimmitry PAYET <[email protected]>wrote:

> The issue I expose here seems to has already been identified, and
> fixed in 1.3.162:
>
> "When using the exclusive mode, LOB operations could cause the thread
> to block. This also affected the CreateCluster tool (when using BLOB
> or CLOB data)."
>
> But I have tried in 165 releases, and I experience a
> similar issue. I have built a very simple test case showing the issue:
>
> 1. Following the cluster creation tutorial, I create two directories:
> server1 & server2
>
> 2. I run an H2 server on both:
>         java org.h2.tools.Server -tcp -tcpPort 9101 -baseDir server1
>         java org.h2.tools.Server -tcp -tcpPort 9102 -baseDir server2
>
> 3. I create a new database "test" on the first one, by executing the
> following statements:
>         create table Test(c1 number(5), c2 varchar(100), c3 CLOB);
>         insert into Test(c1, c2, c3) values (10, 'Hello',
> repeat('Hello', 10000));
>         insert into Test(c1, c2, c3) values (20, 'World',
> repeat('World', 10000));
>
> 4. I try to create a cluster, by running:
>         java org.h2.tools.CreateCluster
>           -urlSource jdbc:h2:tcp://localhost:9101/test
>           -urlTarget jdbc:h2:tcp://localhost:9102/test
>           -user sa
>           -serverList localhost:9101,localhost:9102
>
> 5. The command does not terminate. An empty "backup.sql" file is
> created in the current directory.
>
> 6. The JVM stack of the first server shows the following:
>
> "H2 TCP Server (tcp://10.1.12.107:9101) thread" prio=6 tid=0x18b80400
> nid=0x1064 waiting on condition [0x1947f000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep(Native Method)
>         at
> org.h2.engine.Session.waitIfExclusiveModeEnabled(Session.java:1101)
>         at org.h2.command.Command.executeQuery(Command.java:174)
>         at
> org.h2.jdbc.JdbcPreparedStatement.executeQuery(JdbcPreparedStatement.java:
> 96)
>         - locked <0x04883238> (a org.h2.engine.Session)
>         at org.h2.store.LobStorage.getInputStream(LobStorage.java:564)
>         - locked <0x047b8e30> (a org.h2.engine.Database)
>         at org.h2.value.ValueLobDb.getInputStream(ValueLobDb.java:288)
>         at org.h2.value.ValueLobDb.getReader(ValueLobDb.java:274)
>         at
> org.h2.command.dml.ScriptCommand.writeLobStream(ScriptCommand.java:
> 382)
>         at org.h2.command.dml.ScriptCommand.query(ScriptCommand.java:
> 265)
>         at org.h2.command.CommandContainer.query(CommandContainer.java:
> 82)
>         at org.h2.command.Command.executeQuery(Command.java:187)
>         - locked <0x047b8e30> (a org.h2.engine.Database)
>         at org.h2.server.TcpServerThread.process(TcpServerThread.java:
> 303)
>         at org.h2.server.TcpServerThread.run(TcpServerThread.java:146)
>         at java.lang.Thread.run(Thread.java:662)
>
> This issue seems to be very similar to the above one. It prevents me
> from using clustering with my actual database (containing LOB's).
> What is wrong there? Is there a workaround?
>
> Thanks!
>
> --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/h2-database/-/bWfyAUESxP4J.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/h2-database?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/h2-database?hl=en.

Reply via email to