As millions of teenage girls (among others) ran to their nearest multiplex to check out the latest and greatest fantastical movie, I was sitting home watching the slow burn of memory used by our Coldfusion applications. We could see the missing toolbag in space, but not what was causing our server to meltdown. Needless to say it was a frustrating weekend. A few days later and all of the trouble appears to have paid off, for now, everything is back to running smoothly. There may still be a problem, but it’s even slower than before, which gives us at least some time to keep going through the code that could be problematic as well.
A week’s worth of reading and searching through other Coldfusion administrators’ trials and tribulations helped me learn a few new things about Coldfusion, such as how it will sometimes leak memory on its own, but usually through how the programmers have structured the newer cfc models. There seems to be a correlation between having persistent state variables that get placed into the application, sucking up memory and avoiding them. I’d rather be safe than sorry, so I went through and made a few changes to how Coldfusion objects are being instantiated. Rather than keeping the objects completely clean, I was sometimes referencing and setting session or application variables within the cfc object. I’ve changed code so that the object now is called with an instantiation method that is passed those important variables (like datasource names or session IDs etc).
We still have to see if everything is going to come together, but for now, things are looking good.