Can query rules, data stores, and the other Appian out of the box supported data

Can query rules, data stores, and the other Appian out of the box supported database features use an Oracle data source that has its transaction isolation set to TRANSACTION_SERIALIZABLE?

Is the out of the box database functionality limited to the defaulted transaction isolation value of TRANSACTION_READ_COMMITTED? #database #oracle ...

OriginalPostID-61747

OriginalPostID-61747

  Discussion posts and replies are publicly visible

  • Hi Jorge, Can you give me some more information about what you're trying to achieve? Are you talking about the primary data source or a business data source?

    We certify the database support with the TRANSACTION_READ_COMMITTED transaction isolation level as given in the documentation (forum.appian.com/.../Configuring_Relational_Databases) for a couple of reasons.

    First, Oracle creates tables with an INITRANS setting of 1 by default, which causes an error (ORA-08177) when creating the schema from a Data Store using a connection with a transaction isolation setting of SERIALIZABLE because an INITRANS setting of 3 is required for that transaction isolation level. Even if you worked around that by creating your schemas manually with INITRANS of 3 and then just verifying them via the Data Store interface, you'd run into the second issue.

    The second issue is that in our testing we found that having a transaction isolation setting of SERIALIZABLE did not perform well with multiple concurrent reads and writes to the same table. It ended up in a high number of deadlocks. This problem was not specific to Oracle. We saw it with the other supported database vendors as well.
  • This question came from one of our Database Engineers and wanted to know if Appian would support it. I was only thinking that it would be used against business data source, because we wouldn't control or have a completely understanding of when Appian would read/write from the primary data source. Anyway, thanks for the information and I'll pass it along.
  • I added a note to the page Brett links above indicating why we have it set to TRANSACTION_READ_COMMITTED based on the second issue since that can occur with all supported database vendors.