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

Kenny Ha April 29, 2013

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
Answer accepted
Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 29, 2013

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...

Kenny Ha April 29, 2013

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.

Kenny Ha April 29, 2013

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

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 29, 2013

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
0 votes
Kenny Ha April 29, 2013

Thanks for your recommendations.

Nic Brough -Adaptavist-
Community Leader
Community Leader
Community Leaders are connectors, ambassadors, and mentors. On the online community, they serve as thought leaders, product experts, and moderators.
April 29, 2013

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")

0 votes
Kenny Ha April 29, 2013

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?

Kenny Ha April 29, 2013

Anyone,

Any help would be much appreciated.

Suggest an answer

Log in or Sign up to answer