Thank you Stefan, Johann, and the community for making the switch from 
mod_Webobjects.so adaptor to the built-in Apache mod_proxy module. 

It helped us out this week to dig up Stefan’s 2015 video presentation on this 
topic, utilize the ERXApplication cookie generation, and the migration tab in 
Java Monitor. 

The reason for us to make the switch was because Apache had become unstable. It 
was having numerous segmentation faults. We were using the latest available 
Apache 2.4.x for Amazon Linux along with freshly compiled from source WO 
Adaptor taken from latest WOnder repo. Whenever httpd wet-the-bed, we’d lose 
communication with an app instance. It seems there was no rhyme or reason to 
what was causing it to crash. It did seem that when we downloaded user files 
(passed from disk to web browser through fileInputStreams) that we’d be more 
likely to see a segmentation fault anywhere from 5 to 7 request-response loops 
later (navigating the app, clicking links). File sizes ranged from somewhat 
small like 4 megs up to about 250 megs.  

It was almost as if the WO adaptor was getting corrupted. Apache would give 
errors about unreadable headers that looked like a stream of binary data and 
then shortly after segmentation fault. 

Tonight we’re going live with mod_proxy. A bit worried but also happy. It’s 
amazing how much faster file uploads and downloads are. The compiled WebObjects 
adaptor must have had a small packet size that slowed things down. 

One thing to note, I believe the ProxyPass key-value pair of "nofailover=On” 
actually should be set to “Off” — I read the Apache documentation of what it’s 
supposed to do and I think the documentation is wrong. When we cut-and-pasted 
the migration from the last tab in JavaMonitor it said “On” which seemed right 
until we tested it. When app instances go down you won’t get re-routed to 
another good instance with “On” it must be “Off.” 

To round-robin, I needed to clear the cookie completely before refreshing the 
browser. I guess there’s no way around that. Users will have semi-permanent 
affinity with a particular app instance. New users get a true round-robin 
instance. Actually we go through phased deployments every week so people will 
have semi-permanent instance affinity for one week :-) 

This is a smart solution. Feels good to drop the mod_WebObjects.so and probably 
can drop wotaskd too. Less is more. And what’s left is better tested and easy 
to upgrade to Apache 2.6 (whenever that is). 

Hugs and chest bumps all around. Thank you all,
— Aaron
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to