Re: WOSession serialisation redux
Re: WOSession serialisation redux
- Subject: Re: WOSession serialisation redux
- From: Ramsey Gurley <email@hidden>
- Date: Tue, 19 May 2015 18:21:52 -0700
On May 19, 2015, at 4:51 PM, Paul Hoadley <email@hidden> wrote:
> Hi Ramsey,
>
> On 20 May 2015, at 1:53 am, Ramsey Gurley <email@hidden> wrote:
>
>> On May 19, 2015, at 4:03 AM, Paul Hoadley <email@hidden> 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 (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden