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.
