Michael,
Interesting!
We've had problems with lots of sessions not ending also.
The problem is intermittent and very hard to trace. To be honest I've not
noticed if the housekeeper process has ended, I'll keep an eye on my servers
and when they exhibit this problem I'll check the process!
Perhaps I can then add something that might shed some light on the issue.
Best
James.
On 21/8/07 23:15, "Michael Check" <[EMAIL PROTECTED]> wrote:
> To be clear, I don't think it is this abandon session code that is the
> problem. On our test server (indentical to the production server with
> the issue), restarting the server and calling a different site that
> calls the abandon session, but does not package it and write it to the
> database, a zombie is created immediately.
>
> The housekeeper is not running as it should.
>
> There are no errors in the error log.
>
> On 8/21/07, Michael Check <[EMAIL PROTECTED]> wrote:
>> Using A4D 402 and 4D 2004.5 server/client on OSX.3.9
>>
>> We have a site that members use to change their registrations and
>> personal data. This site, as far as we know, has been running OK for
>> about 6mo, but now has started to accumulate zombies and not clean
>> sessions correctly.
>>
>> We do have On Abandon Session code running that saves the session to a
>> blob and to their record. The record is unloaded after the query/save
>> happens.
>>
>> With zombies created, the Abandon Session code is not being run. And
>> therefore the sessions are not being saved. Ugh.
>>
>> We have log level 7 and have examined the error log to see if there
>> are syntax errors, there are none that we can see.
>>
>> So my questions are this:
>> * Can we jumpstart the housekeeper to clean up the sessions properly
>> * If so, is there ANY possibility that save session code will run and
>> save the data?
>> * How can we troubleshoot/solve this issue?
>>
>> FROM Active4D.a4l
>> method "On Session End"
>>
>> if (session has("sessionType"))
>> case of
>> :(session{"sessionType"}="PRDU")
>> PR_Lib.saveSession
>> PR_dataUpdate.clearGlobals
>> :(session{"sessionType"}="PR_APP")
>> PR_Lib.saveAPPSession
>> PR_application.clearAppGlobals
>> end case
>> end if
>>
>> end method
>>
>>
>> FROM PR_Lib.a4l
>> method "saveSession"
>> if(session{"state"}#"Read Only") //only save the session if
>> the
>> update wasn't already submitted
>> if(session{"Modified"})
>> C_blob($sessionBlob)
>>
>> $sessionBlob:=PR_SessionConvert.sessionToBlobObject
>>
>> query([WebPortal];[WebPortal]TypeID =
>> num(session{"personID"}))
>> if (records in selection([WebPortal])=0)
>> // get a new highest index number and
>> increment by 1
>>
>> // wait if another app id is being
>> retrieved
>> while
>> (semaphore("prdus_create.load"))
>> // wait
>> end while
>>
>> c_longint($id)
>>
>> READ ONLY([webportal])
>> SCAN
>> INDEX([webportal]webportalID;1;<)
>> $id:=[webportal]webportalid+1
>>
>> //create the new account
>> create record ([WebPortal])
>> [webportal]webportalID:=$id
>> [WebPortal]Created:=current date
>> [WebPortal]Type:="PRDUS"
>>
>> [WebPortal]TypeID:=num(session{"personID"})
>>
>> [WebPortal]TypeLabel:=session{"person"}{"last"}{1} + ", " +
>> session{"person"}{"first"}{1}+" ("+session{"peerReviewIDNum"}+")"
>> [WebPortal]Session:=$sessionBlob
>> [WebPortal]modified:=current date
>> save record ([WebPortal])
>>
>> clear semaphore("prdus_create.load")
>>
>> else
>>
>> if(a4d.utils.unlockAndLoad(->[WebPortal]))
>>
>> [WebPortal]Session:=$sessionBlob
>> [WebPortal]modified:=current
>> date
>> save record ([WebPortal])
>> end if
>> end if
>> unload record([WebPortal])
>> session{"Modified"}:=false
>> end if
>> end if
>> end method
> _______________________________________________
> Active4D-dev mailing list
> [email protected]
> http://mailman.aparajitaworld.com/mailman/listinfo/active4d-dev
> Archives: http://mailman.aparajitaworld.com/archive/active4d-dev/
_______________________________________________
Active4D-dev mailing list
[email protected]
http://mailman.aparajitaworld.com/mailman/listinfo/active4d-dev
Archives: http://mailman.aparajitaworld.com/archive/active4d-dev/