After putting out the 3.2.1 update last night, I turned my attention to a problem that’s been vexing me for well over a year. For those of you using the Shion Online service and accompanying iPhone app, the reliability of the service has been a persistent issue.
On the server side of things, the root of the problem has been an issue with the Java-based Openfire XMPP server taking up way too memory and getting into trouble once it exhausted the available system RAM. I put into place scheduled jobs for killing and restarting the process to clean up periodically, but the memory use would skyrocket after a short period.
Last night, I looked more into the problem and ran across a thread on the Openfire forums describing a memory leak associated with the Personal Eventing Protocol (PEP, a.k.a. XEP-163) that sounded exactly like the situation I’d been experiencing. I applied a suggested fix and the server load time has been reduced back to where I thought it should have always been.
I’m extremely pleased that this solution has worked out so far. If it continues to hold (and I’ll be watching over the next week), it removes the need for me to continue with the planned rearchitecting of the Shion network functionality and resume working on improving the stability and functionality of the various applications.
If you’re a user of the online service and can confirm my observations from your perspective (the service is snappier and more reliable), I’d appreciate it.
Happy holidays everyone!