SET IMPLICIT_TRANSACTIONS ON -- How to do that permanently

I get deadlocks and the wiki states, that one has to SET IMPLICIT_TRANSACTIONS ON: https://confluence.atlassian.com/display/JIRAKB/Deadlock+when+running+JIRA+with+SQL+Server

But it seems this doesn't persist. How can I make that setting permanent in SQLServer?

EDIT: It is impossible to set that option at db level. It's only possible to set it as defaults for all users of the whole instance (i.e. server):

http://msdn.microsoft.com/en-us/library/ms190707(v=sql.90).aspx

http://msdn.microsoft.com/de-de/library/ms176031(v=sql.105).aspx

2 answers

1 accepted

One needs to configure the database in dbconfig.xml in the jira home directory and append ";autoCommit=false" to the url:

<url>jdbc:jtds:sqlserver://localhost:1433/jiradb;autoCommit=false</url>

http://sourceforge.net/p/jtds/patches/109/

Yes, it was a configuration in Atlassian's config files ;-)

Anyway, you can't deny that all documentation on Atlassian's side about that problem is wrong, even the (initial) support.

BTW: Thanks to Richie Gee [Atlassian] for investigating and finally solving that issue.

Ah, good, you found it - set it for the user. Not an application setting then, and nothing to do with the code.

Yes, a server setting in a config file, I know.

Atlassian support are very good, all credit to them :-)

0 vote

That's a MS-SQL Server question really. Start at http://msdn.microsoft.com/en-us/library/ms187807.aspx

Of course I did read that page before asking here.

And from all I read, I still think, that the described solution is wrong and that the setting is session-only and as such only useful if issued by the application (JIRA) itself.

No, that's the point - it's a database server setting, NOT the application.

The application could do it with the session, but then it would need more rights over the database than it needs for day-to-day running, and you'd have to do database specific coding. (i.e. bad security practice and bad coding practice)

I would agree with you, if it was possible to set that option permanently.

But sadly this isn't possible. Even Atlassian support got this wrong and replied with this article:

http://blog.techdreams.org/2007/11/implicit-transactions-onoff-sql-server.html

Which clearly says:

"5. [...] from now onwards all the new connections opened through Management Studio/Workbench starts an implicit transactions"

I edited the question to include my new findings. Is shows that it's impossible to set that option permanently on a db level.

That's why I say, that it's Atlassians responsibility to set that option at connection time or otherwise remove SQL-Server from the list of supported databases. Alternatively, Atlassian should require customers to use a dedicated instance for JIRA.

(I agree that SQL-Server is the worst db-alike shit in this universe, but in the current universe I have no choice).

Ok, it's not a database setting, it's a user one. http://msdn.microsoft.com/en-us/library/ms176031.aspx

I still don't think it's an Atlassian issue directly, even if you don't do it at a user level. If it needs to be set permanently, then it feels like it should be a driver setting.

I also wonder why only there's only one question about it in Answers - that implies your setup is pretty rare and there's something very different about what you've got compared with everyone else using Jira and SQL-Server - if that's the case, then having Atlassian implement somthing that could break all the other users is probably going to be a complete non-starter.

How could it break any other installations?

  1. Detect database
  2. If option needs to be set -> set it, otherwise do nothing

If you're still afraid then make it configurable => zero risk => another satisfied customer :-)

I guess other users either

  1. have dedicated instances just for JIRA
  2. don't know that it has to be set
  3. switch to a different database

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Published yesterday in Jira

5 ways you can make the most of Jira Software and Bitbucket Cloud

As part of the Bitbucket product team I'm always interested in better understanding what kind of impact the use of our tools have on the way you work. In a recent study we conducted of software devel...

42 views 0 4
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you