Hi,
Sometimes we have noticed that executing a query which calls a user-defined
table takes longer as expected when multiple instances calls this.
We have got a multi threaded server application which has got multiple
database connections to different database files using the properties:
FILE_LOCK=FILE;MV_STORE=FALSE .
We have something like the example:
import org.h2.tools.SimpleResultSet;
...
public static ResultSet simpleResultSet() throws SQLException {
SimpleResultSet rs = new SimpleResultSet();
rs.addColumn("ID", Types.INTEGER, 10, 0);
rs.addColumn("NAME", Types.VARCHAR, 255, 0);
rs.addRow(0, "Hello");
rs.addRow(1, "World");
return rs;
}
CREATE ALIAS SIMPLE FOR "org.h2.samples.Function.simpleResultSet";
CALL SIMPLE();
To prevent concurrency issues I added the synchronized keyword to the
method like this:
public *synchronized* static ResultSet simpleResultSet() throws SQLException
I am not able to reproduce the problem in a test case at the moment, but we
see that execting the query with synchronized takes longer than without
synchronized.
Does someone have got an explanation for this?
Is it a bad idea of me to prevent concurrency issues using the synchronized
keyword?
Or do you think it is not possible that there are 2 instances executing a
query which calls the user-defined table at the same time?
--
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/d/optout.