Subject | Re: [Firebird-Java] Transaction parameters + Jaybird |
---|---|
Author | Roman Rokytskyy |
Post date | 2011-01-26T08:34:39Z |
25.01.2011 23:33, Alec Swan написав(ла):
override for the built-in mapping between JDBC isolation levels and TPB
constants of Firebird. So, whenever the application calls
connection.setTransactionIsolation(
Connection.TRANSACTION_READ_COMMITTED);
the specified mapping will be used. You can also specify mappings for
other isolation levels as well.
isc_tpb_mapping.properties file, the REPEATABLE READ is mapped to
isc_tpb_concurrency.
specific properties via setters and getters, that makes the
configuration somewhat more readable. Also it has so called "connection
tracking", which simplifies debugging of the faulty applications. The
pool logs the places where connection was allocated and where it was
closed, and if there is an attempt to close it for a second time, it
will print the appropriate stack traces.
But that's it.
Our pool was written when the c3p0 and dbcp pools were in pretty initial
state. Time passed, they have advanced their code bases, so there is no
really good reasons not to use them now.
Roman
>> Connection connection =Yes. In fact, what you specify in the connection parameters is an
> DriverManager.getConnection("jdbc:firebirdsql:localhost/3050:c:/example.fdb?"+
>>
> "TRANSACTION_READ_COMMITTED=isc_tpb_read_committed,"+"isc_rec_version,isc_tpb_read,isc_tpb_nowait",
> "SYSDBA", "masterkey");
>
> Does Jaybird support java.sql.Connection#setTransactionIsolation(int level)
> standard JDBC call? In other words, will the following code result in
> transaction isolation level to be set to REPEATABLE_READ on the Jaybird
> connection?
override for the built-in mapping between JDBC isolation levels and TPB
constants of Firebird. So, whenever the application calls
connection.setTransactionIsolation(
Connection.TRANSACTION_READ_COMMITTED);
the specified mapping will be used. You can also specify mappings for
other isolation levels as well.
> ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();The default mapping of Jaybird is specified in
> comboPooledDataSource.setJdbcUrl("jdbc:firebirdsql:embedded:c:/example.fdb?lc_ctype=UTF8");
> comboPooledDataSource.setUser(FirebirdDatabaseManager.FIREBIRD_USER_NAME);
> comboPooledDataSource.setPassword(FirebirdDatabaseManager.FIREBIRD_PASSWORD);
> comboPooledDataSource.setPreferredTestQuery("select current_timestamp from
> rdb$database");
>
> Connection connection = comboPooledDataSource .getConnection();
> connection.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ);
isc_tpb_mapping.properties file, the REPEATABLE READ is mapped to
isc_tpb_concurrency.
> A side question is if there is any benefit of using FBWrappingDataSourceThe only advantage that I can think of, is that it exposes the Firebird
> over c3p0 ComboPooledDataSource?
specific properties via setters and getters, that makes the
configuration somewhat more readable. Also it has so called "connection
tracking", which simplifies debugging of the faulty applications. The
pool logs the places where connection was allocated and where it was
closed, and if there is an attempt to close it for a second time, it
will print the appropriate stack traces.
But that's it.
Our pool was written when the c3p0 and dbcp pools were in pretty initial
state. Time passed, they have advanced their code bases, so there is no
really good reasons not to use them now.
Roman