On May 19, 2015, at 4:51 PM, Paul Hoadley <pa...@logicsquad.net> wrote:

> Hi Ramsey,
> 
> On 20 May 2015, at 1:53 am, Ramsey Gurley <rgur...@smarthealth.com> wrote:
> 
>> On May 19, 2015, at 4:03 AM, Paul Hoadley <pa...@logicsquad.net> wrote:
>> 
>>> I’ve had a look at Ramsey’s ERPersistentSessionStorage.framework, and my 
>>> intention was to create something similar backed by memcached.  I got it 
>>> working to the proof-of-concept level on a trivial app, but using native 
>>> Java serialisation seems brittle.  (By which I mean it falls over pretty 
>>> fast when you throw a serialisation-based approach into a substantial 
>>> application.)
>> 
>> I’m curious about the "falls over pretty fast" part. What sort of problems 
>> do you have?
> 
> Serialization failures.  (To be clear, I’m talking about testing with my own 
> memcached-based approach, but it’s really only some very minor changes to 
> your work to use memcached instead of the database as the back-end.)  
> Initially it was my own classes, which I could fix, but then I started 
> hitting weirdness like this:
> 
>> Caused by: java.io.NotSerializableException: java.lang.reflect.Field
> 
> 
> It’s not obvious to me where that’s coming from, or how to fix it.  


Findbugs is really good at finding these. Install the plugin, run it on your 
code (and wonder code that you use), and look for the serialization issues it 
produces. It can be a bit tricky to find serialization errors if these 
non-serializable objects are stuffed inside a serializable object 
(NSArray<Field>). In any case, you can usually put an uncaught exception 
breakpoint in eclipse to stop the program on these exceptions so you can pick 
through the stack to find the culprit.

In my testing and WOWODC demo, I had it working well enough to run all page 
configurations of R2D2W and ERModern apps.


> I had also formed the impression (perhaps erroneously!) that you had found 
> serialization issues deeper inside the WebObjects frameworks that were going 
> to be difficult or impossible to fix.

The only major remaining issue I had was ECs serialization with related EOs. I 
had it mostly fixed in EOCustomObject in ERPersistentSessionStorage, but it 
would still pop up occasionally. A little jadclipse could go a long way here. 

Oh, and the session reaper puts something like a 2 week uptime limit on your 
apps if you used sessions that never expire. Just schedule restarts once a week 
or something for instances should work around that. I didn’t see any reason to 
replace the original wosessionstore super class just to fix that.

> 
>> Basically I wrote that framework to prove to myself that a component 
>> action/D2W app could be used as a “front end” app at scale and do a better 
>> job of it to boot. I succeeded in convincing myself that it was possible and 
>> left it there :-)
> 
> 
> What would it take to get you back into this?  Let’s start with a show of 
> hands: is anyone else interested in developing a robust solution to this 
> problem?

I’ve kinda moved on to other interests, but there’s little to stop you guys 
from doing it. I felt like I had it about 95% there.



 _______________________________________________
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