Showing posts with label Transaction Isolation Level. Show all posts
Showing posts with label Transaction Isolation Level. Show all posts

Monday, December 16, 2019

WebSphere Application Server - DB2 RS Transaction Isolation Level is Default



In WebSphere, the default transaction level is set to something very restrictive.
It’s likely that they haven’t changed this in their app server configuration.
Have them check the webSphereDefaultIsolationLevel custom property on their data sources.


“If the database connection is obtained in a servlet, JSP, or session bean, TRANSACTION_REPEATABLE_READ is used by default.”
JDBC Isolation Level
              
DB2 Isolation Level
TRANSACTION_SERIALIZABLE      Repeatable Read (RR)
TRANSACTION_REPEATABLE_READ           Read Stability (RS)  Deafult
TRANSACTION_READ_COMMITTED          Cursor Stability (CS) What we want
TRANSACTION_READ_UNCOMMITTED    Uncommitted Read (UR)

“In WebSphere Application Server V6.1 and above, the webSphereDefaultIsolationLevel custom property can be set on a data source to change the default isolation level that is used even if indirect JNDI lookups and resource references are not used by the application.”

Procedure for changing this setting in WAS 8.5.5 can be found here:
https://www.ibm.com/support/knowledgecenter/en/SSWLGF_8.5.6/com.ibm.sr.doc/twsr_setwebspheredefaultisolationlevelproperty.html


Thursday, March 28, 2013

Detecting Transaction Isolation Level through Profiler Trace and other means on MS SQL Server 2005

I doubt that this comes up often, but I find myself in a bit of an argument about what isolation level will be used for transactions in our SQL Server database when the transaction is initiated by WebSphere.  There are various documents that indicate how WebSphere can over ride this value.

I decided to dig into this a bit further.

TRACE:

In doing so, I found that I could monitor our SQL Server DB to determine this.

I have only found two places where the transaction isolation level is appearing:
1 - Sessions:Existing Connection.Text Data
2 - In a deadlock trace as part of the XML output.

If anyone can find it elsewhere, I'd love to hear from you.  However, this makes sense, since this is more-or-less controlled at the session level.

QUERY:
If found that 
DBCC USEROPTIONS
would give me the *default* TIL for the db, but that if that TIL was altered by the session, it would not reflect that.

To get the TIL for *your session*, you can run the following query:

SELECT CASE transaction_isolation_level WHEN 0 THEN 'Unspecified' WHEN 1 THEN 'ReadUncomitted' WHEN 2 THEN 'Readcomitted' WHEN 3 THEN 'Repeatable' WHEN 4 THEN 'Serializable' WHEN 5 THEN 'Snapshot' END AS TRANSACTION_ISOLATION_LEVEL FROM sys.dm_exec_sessions

Credit to StackOverflow question and answer here: http://stackoverflow.com/questions/1038113/how-to-find-current-transaction-level 

Get Restart log using PowerShell

I'm often curious about a restart on a Windows server system. An easy way to get a list of the restart and what initiated it is to use t...