Ran server update to version 7. Running into database issues/errors

Need immediate assistance to get Jira up and running on new version.  Running into the following errors:

Error

Database

Error

Isolation level

What does this check do?

Checks if the SQL Server database is configured using the required isolation level.

Result

The database isolation level of READ_COMMITED_SNAPSHOT is OFF which is not supported by JIRA.

How can I resolve this?

Error

Collation

What does this check do?

Checks if the database and tables are configured using the required collation.

Result

The database collation 'SQL_Latin1_General_CP1_CI_AS' and table collation 'SQL_Latin1_General_CP1_CI_AS' are not supported by JIRA.

 

1 answer

0 votes

You need to turn the database flag on.  See the link you've already posted there, that has full instructions.

So following:

  1. Stop JIRA, as if it is still running it will block any change of the isolation level.
  2. Execute the below query, replacing JIRA-DATABASE with the database name to update the collation.

    ALTER DATABASE [JIRA-DATABASE] SET READ_COMMITTED_SNAPSHOT ON;
  3. Verify the below SQL returns 1, which is the expected isolation level.

    SELECT is_read_committed_snapshot_on FROM sys.databases WHERE name = '<JIRA-DATABASE>';
  4. Start JIRA, the isolation health check will now pass.

Can I change the collation type on the existing database or should I create a new database with the proper settings?  

Okay I created a new database, imported the old data to it and tried to connect it with the Jira config tool.  I am now running into an error saving the config (access denied)?

 

Could someone please give me a call so we can work through this quickly?  Thank You

So I'm still stuck.  New database...go to start Jira...Jira locks when trying to write to files.  Here is the output from the start Jira command:

 


at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:631)
at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstanc
e(BasicComponentParameter.java:118)
at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(Com
ponentParameter.java:136)
at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleM
emberInjector.java:78)
at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getPa
rameterArguments(ConstructorInjector.java:309)
at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInje
ctor.java:335)
at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDepende
ncyGuard.observe(AbstractInjector.java:270)
at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(
ConstructorInjector.java:364)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:9
1)
at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(Abs
tractBehavior.java:64)
at org.picocontainer.behaviors.Locked.getComponentInstance(Locked.java:4
0)
at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContain
er.java:698)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:646)
at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContai
ner.java:677)
at com.atlassian.jira.component.CachingMutablePicoContainer.getComponent
(CachingMutablePicoContainer.java:137)
at com.atlassian.jira.ComponentManager.getComponent(ComponentManager.jav
a:484)
at com.atlassian.jira.component.ComponentAccessorWorker.getComponent(Com
ponentAccessorWorker.java:25)
at com.atlassian.jira.component.ComponentAccessor.getComponent(Component
Accessor.java:160)
at com.atlassian.jira.startup.ClusteringChecklistLauncher.start(Clusteri
ngChecklistLauncher.java:37)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$postDbLaunch$2(
DefaultJiraLauncher.java:128)
at com.atlassian.jira.startup.DefaultJiraLauncher$$Lambda$16/2056107478.
run(Unknown Source)
at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.d
oNowOrEnqueue(DatabaseConfigurationManagerImpl.java:298)
at com.atlassian.jira.config.database.DatabaseConfigurationManagerImpl.d
oNowOrWhenDatabaseActivated(DatabaseConfigurationManagerImpl.java:194)
at com.atlassian.jira.startup.DefaultJiraLauncher.postDbLaunch(DefaultJi
raLauncher.java:121)
at com.atlassian.jira.startup.DefaultJiraLauncher.lambda$start$0(Default
JiraLauncher.java:90)
at com.atlassian.jira.startup.DefaultJiraLauncher$$Lambda$2/508002497.ru
n(Unknown Source)
at com.atlassian.jira.util.devspeed.JiraDevSpeedTimer.run(JiraDevSpeedTi
mer.java:31)
at com.atlassian.jira.startup.DefaultJiraLauncher.start(DefaultJiraLaunc
her.java:88)
at com.atlassian.jira.startup.LauncherContextListener.contextInitialized
(LauncherContextListener.java:79)
... 5 filtered
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: Unable to delete file: D:\Program Files\Atlassia
n\Application Data\JIRA\plugins\.osgi-plugins\felix\felix-cache\cache.lock
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1919)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1399)
at org.apache.commons.io.FileUtils.deleteDirectory(FileUtils.java:1331)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1910)
at org.apache.commons.io.FileUtils.cleanDirectory(FileUtils.java:1399)
... 186 more
2017-12-29 15:26:27,002 localhost-startStop-1 ERROR [c.a.j.web.dispatcher.J
iraWebworkActionDispatcher]

******************************************
JIRA startup failed, JIRA has been locked.
******************************************

29-Dec-2017 15:26:27.031 SEVERE [main] org.apache.catalina.valves.AccessLogValve
.open Failed to open access log file [D:\Program Files\Atlassian\JIRA\logs\acces
s_log.2017-12-29]
java.io.FileNotFoundException: D:\Program Files\Atlassian\JIRA\logs\access_log.
2017-12-29 (Access is denied)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
at org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:57
9)
at org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValv
e.java:609)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipel
ine.java:170)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.ja
va:931)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.
java:262)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardServic
e.java:439)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.
java:769)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

29-Dec-2017 15:26:27.047 INFO [main] org.apache.coyote.AbstractProtocol.start St
arting ProtocolHandler ["http-nio-8080"]
29-Dec-2017 15:26:27.056 INFO [main] org.apache.catalina.startup.Catalina.start
Server startup in 18030 ms

Ran the command back on the original database.  It ran successfully.  Was able to start Jira but now it acts like no data is there.  I pointed it to the xml backup file I created before I started and it is giving me the following error:  

Error importing data: java.lang.IllegalStateException: Could not find column 'EXCLUDE_ISSUE_DETAILS' in previously parsed query!

Why did you re-import the data?  The doc says stop Jira, set the flag correctly and restart. 

I don't understand what you are doing, or why, at this point.  You have asked us about one error, which has a simple fix, then you appear to have run off and done a whole load of other stuff and broken something else.

Nic, first off, thank you for the replies to this.  I do appreciate it.

Before I ran this update I was under the impression that support was going to assist me.  I didn't realize this would be moved to community support.

The error I posted came after the update.  I have cleared that flag but now when I launch the portal, it appears that no data is there (acts like a fresh setup).  I will hold off making any additional changes until you suggest them.    I took backups of the home directory and database (SQL Server) before I started this.  If I would have known this issue would have come up I never would have attempted the update.  

I welcome any and all help on this.  It is a time sensitive application that I need to get operational soon.

Thank You in advance,

Jeff Kramer

Ok, that clarifies what you've done, thanks!

If Jira is acting like a new install, then it's not able to find any of the old data.

Changing the transactional flag would not do anything to your data to cause this, so it suggests that running Jira without it has damaged your database, or you've pointed it to a new empty dataset somehow (with the config tool?)

I might be tempted to start again - get a clean install working with an empty database, ensuring the transactional flag is correct to begin with.  Then stop it, copy your home directory back up into place (with the exception of the new dbconfig.xml file - you need the new version of that), restore the database over the top of the cleanly installed database, and then restart the Jira.

I was using the config tool to point it towards a database because the collation setting on the existing one wasn't one of the two suggested on the help doc: https://confluence.atlassian.com/adminjiraserver/connecting-jira-applications-to-sql-server-2012-938846858.html

I'm okay to start again if that is the best path forward.  Should I just run that installer again?  Point it to a fresh new database?

Just so I don't make this worse.

1. Run installer for version 7 again.  Install it as a new database.

2. Ensure transactional flag is correct.

3. Stop Jira (I've been using the stopjira command in the bin folder, that is correct right?)

4.  Copy home directory back up into place.  Basically copy the entire directory on top of the installed one minus the dbconfig.xml file?  I just want to be sure on this step and the next step...I think this is where I run into issues.

5. Restore the database over the top of cleanly installed database.  Would I be following these steps:  https://confluence.atlassian.com/adminjiraserver071/restoring-data-from-an-xml-backup-802592998.html  

Would this restore option update the "clean database" created in step 1?  

Sorry again for all the questions.  

Okay, I went ahead and reinstalled version 7 into a fresh directory (called it JIRAnew).  At the end of the installation it tried to bring up the portal page.  It never came up.  In the config.bat function...I try to run it to see where things are configured and I get a WRONG JVM Version!  JIRA Requires at least 1.8 to run error?  

Making some progress this morning.  I got the Java error fixed (found an answer in here).  I created a fresh database and ran the install.  Once Jira completely starts...I'll verify no issues...then shut it down and copy over home directory minus the dbconfig file.  

I'm still a little unclear on the "restore the database over the top of the cleanly installed database" step.  Is there an instruction for this step?

It was a little vague, sorry.

Generally, to take a database backup, you do something like "pgdump <server> <user> <password> <name of database>". 

That gives you a file that you can do something like "pg-load-database-from dump <server> <user> <password> <name of database>", which replaces all the data in the existing database with what is in the dump file.  It destroys the target, but loads all the old data into it.

You'dneed to look at your database docs to see what the best option there is.

Nic,

Thanks again for all the help.  I managed to complete this update (whew!).  I basically followed those steps but used the XML update to restore everything back.  I did end up having to update an add on that was causing some issues (Structure) but once I got that updated, things worked well.

The only outstanding item right now (and I have another question posted on this) has to do with deleting the old Service and manually creating a new service that autostarts my new Jira install on OS boot up.  I need a delete service option that doesn't involve uninstalling Jira.  :)

Suggest an answer

Log in or Sign up to answer
Community showcase
Published Mar 05, 2018 in Jira Software

Jack Graves: Real Ale enthusiast with a knack for Jira Software implementation

@Jack Graves [AC] first caught our eye with his incredible breakdown of what, in his opinion, can make or break a Jira software implementation. (Read his thoughts on this thread)! In this follow...

96,840 views 4 14
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