Ejabberd (v2.1.13) ODBC timeout - erlang

eJabberd Version 2.1.13
We set up an ejabberd server as part of our app about a year ago (Oct 2013). Shortly after going live we found issues with ejabberd messages locking up when we reached about 1,200 people online (not all of them were necessarily sending messages).
Following much head scratching the issue was traced to a known (unresolved) bug here: https://support.process-one.net/browse/EJAB-1583
In short, an ODBC timeout of 5secs causes a total messaging downtime of 150 seconds ... this rules out the easy fix of extending the timeout because a 7 sec timeout turns into 210 second downtime etc.
I've tried a lot of "experts" to try to find a solution, but it became apparent quite quickly that there are not many experts around. I'm wondering if anyone has encountered this problem and found a fix, or found ways of reducing the occurances.
The obvious answer is "upgrade", but this is a non-trivial exercise, and our key developer was poached about a year ago (we no longer have the internal expertise necessary).
In summary the questions are:
Are there any recommended configuration settings we can use to reduce this issue?
Does anyone know a genuine ejabbered expert they could refer us to?
Many thanks,
David

Not sure how to solve the issue with ODBC, especially not trough any settings that would refer to this. What you might need is custom patch, or actual code upgrade.
Always thought that process-one offers some services regarding ejabberd. Especially since it is theirs product.
I could also recommend Erlang Solutions which offers consulting, both in ejabberd and MongooseIM (their custom fork of ejabberd focused on performance).
And if you looking for someone full time postin offer at Erlang Central might be a good idea.

Related

About client/server Peachtree Accountant software

We plan to setup client and server for peachtree accounting system.
currently, we have software Sage Peachtree Quantum 2010 Accountant, so could we use this
software for making client and server?
Do you have any ideas regarding this issue?
If the Quantum still uses the pervasive database, it uses the server side database to lock the files, and is very active. Depending upon your latency of connection it may or may not work out. We used Peachtree Compete 2004 and were successful in connecting by VPN, with a mapped drive to the datapath, nut it was very slow, albeit the connections were very slow back then. So this is a no answer answer, just an encouragement to setup a VPN and give it a try. Our last current version is Peachtree apremium, and it will not run this way, nor will it run under terminal services, which is an alternate solution. However, I am told that the latest versions will run under terminal services, as we are considering upgrading to such. Sage's tech support is junk, so do not look directly to them for much help, however there are a lot of good VAR support companies that vary in competence and may be good for some assistance. Good luck.

JIRA - "Done" issues marked as "Unresolved"

I'm a bit of a novice using JIRA and I don't know why this is happening. Lately, whenever I mark an issue as "Done", the system won't update as it being "Closed" but rather keep them as "Unresolved". Why would this happen? I don't know what information I must provide to solve this issue, except that I'm using JIRA 6.1.3, self-hosted, and no extra plugins.
That issue is neither fully resolved nor necessarily related, but you might want to check into Fix apparent data integrity violation with closed issues not actually being closed (JRA-34222), in particular Andreas Knecht's comment, summarizing potential race conditions during workflow changes:
Yeah so bulk editing while doing workflow changes definitely has the potential to cause this sort of a problem. JIRA doesn't really lock down a project while doing workflow migrations AFAIK so this kind of thing can always happen if concurrent operations are happening during a migration.
It's a complicated problem with an even more complicated solution. For some reading on an analysis we did ages ago see [not accessible link to 'Concurrency+Problems+in+JIRA']. Also [not accessible link to 'Concurrency+bug']. It's a known problem, but the solution has huge performance implications for JIRA and will take considerable effort to implement and test.
The last comment from a Cisco employee seems to confirm Andreas' summary that this might be a generally applicable issue with JIRA for the time being:
JIRA 5.2.8 we have been having an issue like this for months. I can
not view it, but see also: JSP-161469
Recent investigation has correlated "Tried to reopen the IndexReader,
but it threw AlreadyClosedException." message as closely following the
execution of Jython scripts. [...]
Possible Remedy/Workaround
While not addressing the root cause, you an see from the screenshot attached by Michael Knight that Atlassian seems to have been able to fix the integrity issue at hand by Using the Database Integrity Checker:
This aptly named JIRA feature is useful in a number of situations, e.g.
Before migrating a project to a new workflow [emphasis mine]
An external program is modifying JIRA's database
Troubleshooting a server crash
Using such a tool is obviously not without risks itself, so please note that Atlassian strongly recommend[s] taking a backup of your data before correcting any data inconsistencies accordingly
Good luck!
Here is a very good confluence answer that explains why this happens and a few workarounds Confluence Answer to Done issues as Unresolved

Continuous Integration Server for Heroku RoR app

We need CI on Heroku for our RoR app.  
We want to use an add-on. I don't mind paying a few bucks to avoid complexity / distraction.
I see its basically Railsonfire vs. Tddium
What are the factors that we should consider in choosing to use one vs. the other?
A similar question was asked at the link below, but it appears that this was before the add-ons above were created.
Proper continuous integration and continuous deployment with Git and Heroku
Another option is CircleCi, which makes it incredibly easy, though it isn't yet in the Heroku add-on marketplace.
I personally believe speed is the major consideration. The speed at which your team moves is tied to how quickly you can get notifications, and a platform optimized for speed is going to make a major difference.
In addition, on slow platforms, tests may fail randomly (for example, Cucumber might fail if a button doesn't appear in 3 seconds, which may not happen soon enough on a slow platform).
I'm a founder of CircleCi, and we make an incredibly fast CI solution (faster than both services you mentioned). It's really easy to set up (one-click), though it's not in the Heroku marketplace (yet).
One consideration I'd give you to… uh… consider is support. I don't know anything about the Tddium team, but I do know that a couple months ago I tried Rails On Fire was blown away by the support. I asked some crazy questions (I do crazy things) and Florian responded in email and on Twitter right away with both help and suggestions.
Then, when I decided not to use the service because it couldn't support one edge-case feature, he implemented the feature! I hadn't been using it for a couple weeks and he wrote back to me personally to say "Hey, we finally got that feature you thought would be helpful."
I've used Hudson/Jenkins for years and know what you mean about complexity. But I also think that having someone on the other end is pretty key, and the RailsOnFire team, for now at least, do that quite well.

Can anyone recommend best practices for profiling Ruby on Rails software under Passenger/nginx combination in a live server environment?

I am attempting to determine what can possibly be the causative factor for 20+ second response times from a Rails 3 application located in EC2 using Elasticache. I have reason to believe the problem is in fact cache related, but I have no numbers to prove it. I'd like to get those numbers. For the sake of completeness, we're running the applications atop Ubuntu 12.04 .
Searching Google, I found nothing directly relevant to my situation, and no StackOverflow topics I could find were even remotely relevant to my situation. If anyone can point me to some documentation on the matter, I'd be quite appreciative. Thank you!
I've found the best tool for this to be New Relic.
http://newrelic.com/
I don't work for them and get no benefit from you trying them.
They have a free level that you can start with. If you go up to the non-free version you can literally trace all your requests through different models and into the database telling you how long the app spent in each section. It's a great tool for profiling.
Do you, by any chance have access to standard web logs including URLs and response times?
I faced a similar situation, searched the web, found nothing relevant, and eventually decided to roll my own, which I shared in this SO post:
Profiling a multi-tiered, distributed, web application (server side)
While it is far from perfect and may be too high level for some use-cases, it gave me a pretty quick and broad insight into where the application I was trying to profile is spending most of its time in, and what the slowest parts are. HTH.
The best parts of it are that:
It is 100% platform and programming language independent.
It is a 100% free software solution

Paid support for web-frameworks

This may sound strange but sometimes when your ASP.NET webapp isn't working and you can't tell why, you call Microsoft, pay them something like $300 and get about 1-3 weeks of 1-3 people looking at your configuration, memory dumps, sometimes code... but usually not the db, and with a fairly good percentage they help you fix your mistakes, without necessarily up-selling you.
I found that Novell would like to offer that for Mono. Everyone knows MySQL offers it for their clients, because it was part of the reason they got a truck of money to swing by one day to change the name-plate on the door.
I'm curious if anyone has found people for the support of these, and how they'd rate their experience:
Django
Rails
Grails
JRuby
Mono [ratings]
add your own.
I haven't ever looked for paid support for these open source technologies, but in general I would guess until there is significant market penetration there won't be a business case for 'dial in support' of an app built by a third party.
In general, you'll be looking for a niche technology expert consultant that will probably charge you an hourly rate to look at your problem.
For django - look at djangogigs.com, or post on rentacoder.com I suppose.
Each usually has an irc channel - you could also ask general questions there, or try to find someone for hire.
That niche is typically handled by 2 groups I believe
Software component developers. - I get a lot of my presentation layer support from DevExpress since I use their widgets for my GUIs for instance. In fact, typically I don't use a technology in an official capacity unless I have identified a dependable support channel.
The issue you raise with Microsoft is handle by abstracting your problem before reporting it. That's a common law with most commercial support channels: When an issue involves 2 vendors, they will blame each other! Your job is to first isolate the issue before or during reporting.
It's hard, I know, but that's why you get paid the big bucks :-)
Is to bring in an outside consultant that should be able to study your system and do what we described in part 1 ( above )

Resources