ADO.NET documentation shows the possibility of setting the transaction level for a SQL transaction to Chaos. It sounds unpleasant, but if the feature is there, presumably it has some legitimate use.

The SET TRANSACTION ISOLATION LEVEL command in BOL (ah! see, I can use google and BOL) nothing seems to be named "chaos" and ADO.NET does have 5 modes that match up nicely to documented levels in addition to "chaos"

What or who is this Chaos level for? (And why does it have an unfriendly name?)

Refs: The ADO.NET enum


According to the DB2 documentation, it is a weird isolation level, where changes are committed to the database as soon as you execute them (for others to see).

It doesn't say explicitly, but, there is no roll-back, either, as far as I can tell. Basically, it means no transaction at all. "You say 'transaction', but, I don't really care". Thus -> chaos.

Actually, I found in some e-mail list that "Chaos" actually maps to "*NONE" transaction level in "DB2 for i".

| improve this answer | |
  • Chaos is Degree 0 isolation as explained by Reuter and Gray in their Transactional Processing theory. If you think that Read Uncommitted really relates to the isolation of data being read (and incidentally isn't the same as chaos). Chaos (like any other degree of isolation) has many properties -one of the most interesting of which is its ability to violate Degree 3 (serializable repeatable read). The bottom line is that Chaos should only be used in the right context (i.e. I'd suggest running only in complete isolation for data sets that do not require rollback). – Mark Broadbent Apr 20 '16 at 9:18

You can't use it against SQL Server.

It was in DTS:

And is in SSIS:

More references, originally added by Nick Chammas in a comment:

| improve this answer | |

DB2 has a transaction isolation level called "Chaos":

DB2Connection.ConnectionString property - IBM Knowledge Center

Perhaps it's meant to be used for that. I'm really not sure, but I would assume it means no definable transaction isolation.

| improve this answer | |
  • 2
    Appears to be for System i only. Do you know what it means? I can't find much info about it, it says no commit so I assume it means that each statement is committed instantly. But this seems orthogonal to isolation level, so there is probably something else – Lennart Aug 8 '15 at 1:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.