Hello -
I've got some issues, some errors that I haven't pinned down, and some
questions. This is pretty long.
First some simple questions: How does canBeReused really affect the servlet
cache? Because I have servlets with that set to 0, which show up in the Admin
Servlet Cache, and may be requested dozens of times, but the timestamp doesn't
change[. Also, how does the Servlet Cache interact with AppServer restarts? I
expected it to be cleared on restart, but apparently not? (I'm not talking
about PSPs here.)
Background: Using Webware 7b2, IIS5, Python 2.1, and FunFormKit, we have a set
of servlets that for odd reasons must have canBeReused=0. (Otherwise, awake is
not called after the first response cycle. Very odd, but changing canBeReused
has been our temporary/now-permanent solution.)
However, at irregular intervals these sets of Servlets (which are used on all
of our sites, they are the content management backend functions) start
immediately errorring with the following message:
Traceback (most recent call last):
File ".\WebKit\Application.py", line 388, in dispatchRequest
self.handleGoodURL(transaction)
File ".\WebKit\Application.py", line 535, in handleGoodURL
self.awake(transaction)
File ".\WebKit\Application.py", line 709, in awake
transaction.awake()
File ".\WebKit\Transaction.py", line 100, in awake
self._servlet.awake(self)
File "e:\...\staff\Content\SiteThing.py", line 8, in awake
File "e:\...\staff\Content\SiteContent.py", line 17, in awake
TypeError: unbound method awake() must be called with instance as first
argument
(The servlet hierarchy looks something like:
/staff/Content/index.py (has canBeReused=0)
-> SiteContent.py
-> SiteThing.py
-> add.py
-> edit.py
....
and the error may occur on SiteThing, add, edit, or any other subclass of
SiteContent)
This error will continue for every request until the AppServer is restarted.
Even then, usually for the next several AppServer restarts it will work for one
request and then start giving that error again. After a few minutes (whether we
leave the AppServer, or repeatedly restart it), an AppServer restart will fix
it and the problem may not come up for a few days.
Any thoughts? The awake portions of these base classes are pretty simple, here
is part of SiteContent.py:
class SiteContent(index):
def __init__(self):
index.__init__(self)
self._sectionID = ''
self._thingID=''
self._catID=''
self._formDef=''
def awake(self, trans):
index.awake(self, trans)
app = self.application()
trans = self.transaction()
req = self.request()
if not req.hasField('sectionID'):
app.forward(trans, self.dotUrl('staff/Content/index'))
self._error = None
Here is awake() of SiteThing.py:
class SiteThing(SiteContent):
def awake(self, trans):
SiteContent.awake(self, trans)
And index.py
def awake(self, trans):
self.setDots(trans, '../../')
SecureBackend.awake(self, trans)
Certainly part of problem right now is that we have no consistent way to
duplicate the problem, but I'm going to try to do that today.
I know someone mentioned the unbound method problem before, related to multiple
imports I believe. I've tried to figure out how this could be related to that,
but it would almost have to be outside our code (in ServletFactory or
Application?). Which makes me think it could have to do with canBeReused (since
these are the only servlets we have that set that to false). Lots of thoughts,
and not much idea.
Thanks,
Luke
-------------------------------------------------
This mail sent through IMP: http://horde.org/imp/
-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
Webware-discuss mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/webware-discuss