Hi,

This behavior is normal and expected -- it's one of the main
differences between BINARY and BLOB types.
See the documentation: http://www.h2database.com/html/datatypes.html#binary_type

Cheers,
Sam Van Oort
On Jan 19, 10:56 am, rmuller <[email protected]> wrote:
> Hi,
>
> If i store binary data (actual photo's) into H2 in *one* transaction i
> run into memory problems when using VARBINARY. If i use BLOB's
> everything goes well. See code sample. Is this a H2 issue or do I miss
> a configuration option?
>
>         final Properties props = new Properties();
>         props.setProperty("USER", "admin");
>         props.setProperty("PASSWORD", "admin");
>         props.setProperty("MAX_MEMORY_UNDO", "100");
>
>         Class.forName("org.h2.Driver");
>         final Connection c = DriverManager.getConnection("jdbc:h2:./
> test", props);
>         c.setAutoCommit(false);
>
>         final Statement stm = c.createStatement();
>         //stm.executeUpdate("create table TEST (id IDENTITY, data
> BLOB)");  // OK
>         stm.executeUpdate("create table TEST (id IDENTITY, data
> VARBINARY)"); // OOM
>         stm.close();
>
>         final PreparedStatement pstm = c.prepareStatement(
>             "INSERT INTO test (data) VALUES (?)");
>
>         // H2 keeps the undo log in memory by default, MAX_MEMORY_UNDO
> must be set
>         // to a low value if memory is limited
>         // When using VARBINARY and -Xmx128M OoM always occurs
>         int count = 0;
>         while (++count < 100) {
>             pstm.setBytes(1, new byte[1024 * 1024]);
>             pstm.executeUpdate();
>         }
>
>         c.commit();
>         c.close();
>
> Regards,
>
> Ronald
-- 
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