Is there a way to reload JIRA's Entity Engine without restarting the web server?

Dear JIRA's Administrators/Developers,

We have configured a database replication process for our reporting JIRA's instance. We have the need to reload the JIRA's Entity Engine upon the immediate replicated data. Is there a way to reload JIRA's Entity Engine without restarting the web server? Your help is greatly appreciated.

Sincerely,

Kenny

3 answers

1 accepted

1 vote

I can't answer this directly, but I've got a feeling there's another question behind it.

The question I can see lurking is "we've made changes to a Jira database outside Jira (by replicating data into the database), how do we get Jira to load that?"

The answer to that is "stop doing it, you will break your Jira". "Reloading the entity engine" is a non-starter, you've broken your system. If you must amend Jira data in the database, then you *must* stop Jira before doing it. Once complete, you almost always need to trigger a reindex (broad rule - if you've touched issue data, you must reindex the issues you've hit, and quite often ALL the issues if you want searches to work)

Could you explain your setup a little more? I'm a little confused because if you are just doing reports from a secondary replicated Jira database in read-only mode, then there's no need to reload anything - JIra doesn't care if you only read data...

Thanks for your response. Well, a better question would be, how would you recommend setting up a second JIRA's reporting instance (where the data from the main database instance is being replicated to the secondary reporting database instance) utilizing JIRA REST APIs? The REST APIs are communicating to the database throught Entity Engine. Since we replicate the data at the database level, the Entity Engine data objects are not being updated. Performing a web start restart would solve this issue. However, we're looking for a more elegant solution to reload the Entity Engine data objects, instead of a web server restart.

Thanks for your prompt response.

The main reason for our JIRA Database Replication design is to offload some of the traffic from the reporting tasks utilizing the REST APIs to the secondary JIRA Reporting (read-only) Server/Database. The database replication process is working nicely. However, when trying to invoke the REST APIs from the second instance, the old entity data object values are being cached at the Entity Engine level. A restart of the web server solved this problem. However, we would like a more elegant way to notify the second JIRA's Secondary Instance Entity Engine to reload the replicated data values from the database instead.

In other words, how would you recommend configuring a JIRA's Reporting Server Instance to divert the reporting traffic away from the main JIRA instance? Any help would be greatly appreciated.

Please advise.

Sincerely,

Kenny

Er, that simply won't work. Every time you replicate data from the main Jira to the reporting one, you will need to restart AND reindex the reporting one.

There's no way around this - the reporting Jira has caches and an index that you are breaking because it has no way of knowing that you're updating data in its database. Restarting the entity engine inside it won't help that much - the caches are littered through the system and you've not even considered the index.

Jira is not built to support what you're doing. Options:

  • Dump the REST access and report directly off the replicated database
  • Move your current approach to point-in-time - only replicate/restart/reindex overnight (say) and educate your users that "reports only work up to last night"
  • Report off your main Jira
  • Analyse your reports and do them within Jira - instead of heavy REST calls, draw the reporting inside the system

Thanks for your response. Well, a better question would be, how would you recommend setting up a second JIRA's reporting instance (where the data from the main database instance is being replicated to the secondary reporting database instance) utilizing JIRA REST APIs?

Anyone,

Any help would be much appreciated.

Thanks for your recommendations.

I'm sorry they aren't quite what you need. I've always said Jira is rather weak on reporting - the evidence is that large swathes of users keep coming up with all sorts of ways of doing it. Your trick is a nice idea, but sadly, broken by Jira's structure.

I've had varying degrees of success with all of the options I've mentioned, and they all work if you invest some thought in them (in fact, the failures have been mostly down to the users not really knowing what the question actually is - like "Deep Thought" and "42")

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 Thursday in Marketplace Apps

Tips on how to choose the best estimation method for your planning

Planning and grooming sessions all come with their own sets of rules. Team members meet to estimate stories or other work items, all according to an agreed-upon process. And with every session comes ...

71 views 0 11
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