You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Christian Lipp <c....@xion.at> on 2008/03/05 14:32:47 UTC

RE: Isolation level

Thank you Armin!

I am using DB2 and I failed to use something like "jdbc.TransactionLevel"
nor could I find anything on the docs for DB2.
So I am going to implement it, as long as anyone on this list know a setting
for DB2?

Thanks, CL


-----Original Message-----
From: Armin Waibel [mailto:arminw@apache.org] 
Sent: Mittwoch, 20. Februar 2008 14:47
To: OJB Users List
Subject: Re: Isolation level

Hi Christian,

Christian Lipp wrote:
> Hi Armin,
> 
> thank you for  quick answer and sorry for my long delay.
> 
> We are using an older OJB version (1.0.1.x), so I thought I cannot use 
> your recommendation and wanted to perform a backport now.
> I got the actual OJB now and examined it, but also couldn't find an 
> attribute in the jdbc-connection-descriptor (I checked the
repository.dtd).
> 
> So I asume I have to implement the JDBC transaction level as attribute 
> for jdbc-connection-descriptor into OJB or do I miss something?

Some databases support transaction-isolation settings by append a property
in the database URL - e.g. maxDB:
dbalias="//localhost/ojb?isolation=TRANSACTION_READ_COMMITTED

Additionally you can specify connection/database properties as custom
attributes with prefix "jdbc.".

<jdbc-connection-descriptor
     ....
  >
     <attribute attribute-name="jdbc.xyz" attribute-value="zxy" />
</jdbc-connection-descriptor>

OJB will set these properties (with jdbc.* prefix) when create the
connection:
Connection con = DriverManager.getConnection(url, properties);


> 
> Could someone point me in the right direction for this implementation? I
> assume I have to read the attribute and apply it in the function
> PlatformDefaultImpl.initializeJdbcConnection.
>

If your database doesn't support isolation setting shown above, you can 
indeed extend a existing Platform class and override 
#initializeJdbcConnection. Within this method you can easily get custom 
attributes using:

<jdbc-connection-descriptor
   platform="org.apache.ojb.broker.platforms.PlatformMyOwnImpl"
   ....
  >
    <attribute attribute-name="isolation" attribute-value="READ_COMMITED" />
</jdbc-connection-descriptor>

class PlatformMyOwnImpl extends PlatformMySQLImpl{
...
public void initializeJdbcConnection(Connection conn)
{
   String isolation = jcd.getAttribute("isolation", null);
...
}
}

All shown solutions will work with latest OJB source
http://www.mail-archive.com/ojb-user%40db.apache.org/msg16078.html
I don't check the older versions.

regards,
Armin

> Thanks in advance, CL
> 
> -----Original Message-----
> From: Armin Waibel [mailto:arminw@apache.org] 
> Sent: Freitag, 25. Jänner 2008 03:03
> To: OJB Users List
> Subject: Re: Isolation level
> 
> Hi Christian,
> 
> Christian Lipp wrote:
>> I am still looking for an solution for my lock level settings and 
>> therefore I am digging through the OJB source.
>>
>> What I am not sure at the moment is if the setting of the 
>> isolation-level is generally ignored in OJB?
>> <descriptor-repository version="1.0" isolation-level="read-comitted">
>>
>> I couldn't find the place in the OJB code where the isolation level is 
>> set to the DescriptorRepository and later to the connection.
>> In my optionion the isolation-level in the XML file is ignored.
>>
>> Could someone point me in the right direction?
> 
> Out of the box the isolation-level setting is only used by the ODMG-api
> which use pessimistic locking by default.
> http://db.apache.org/ojb/docu/guides/lockmanager.html#Pessimistic-Locking
> The PB-api doesn't use pessimistic locking, thus it will ignore these
> settings.
> 
> The database transaction levels are completely independent from the
> isolation-level setting in OJB. So you can use different database
> transaction levels (e.g. as property in the dbalias attribute in the
> jdbc-connection-descriptor)
> 
> regards,
> Armin
> 
>> Thanks in advance,
>> CL
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>> For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org