After some testing, I'm trying to resuscitate a thread from a few weeks
ago...

Initially, I had commented on how some of our larger web pages seemed to
be "choking out" other web pages - not letting other requests through to
the server. I followed through on some suggestions concerning sprinkling
IDLE commands through some methods, but this case deals with an
interpreted database.

Here's one situation: an A4D page which calls a rather long native 4D
method is executed (this method does not contain any plugin calls - in
fact, in one of my test cases, it was as simple as just looping for 20
seconds). This method takes ~20 seconds to execute, during which time no
other connections to the server can be made. Now, I seem to recall a
previous post where it was mentioned that Active4D is an "extremely good
citizen" and yields to the 4D scheduler after every line of (Active4D)
code is executed. So, in this case, would it be that the scheduler is
invoked, "TestMethod" is called, 20 seconds elapse, then the scheduler
is called again? Is there any transfer of the scheduler's duties to the
4D engine itself? Not knowing much about how 4D uses the scheduler, I'm
groping about a bit blindly here, but it seems that there is no callback
during the 20 seconds of the native method execution.

A second situation: same as above, except that the A4D page calls a
highly recursive A4L method. Other requests appear to hang until the
initial request has finished executing. Is the scheduler invoked on code
within this library method, or only before and after the initial method
call?

Here's a situation that resolves correctly: "TestMethod" is called via
an "execute on server" from "TestMethod2". TestMethod2 is called from an
Active4D page. "TestMethod" is spawned off and executes fine. All other
requests to the server are processed appropriately. 

We are running 4D 2004.3 and Active4D 4 rc4, but have noticed this back
in the ol' A4D v3 days as well. Any and all suggestions appreciated!

Oh, and for anyone running 2004.3, there's a new option for the SET
DATABASE PARAMETER (I think it's "34") command that lets you do in-depth
logging of every 4D command/plugin call that is made during execution
and write it out to a log file. Very cool for low-level debugging and
those pesky "4DServer.exe has generated errors and will be closed ..."
errors :-)

As always, thanks for the help.

- Clayton 

Clayton L. Donahue
The Healthcare Management Council, Inc
PH: (781) 449-5287
[EMAIL PROTECTED]
www.hmccentral.com <outbind://44/www.hmccentral.com> 

_______________________________________________
Active4D-dev mailing list
[email protected]
http://mailman.aparajitaworld.com/mailman/listinfo/active4d-dev
Archives: http://mailman.aparajitaworld.com/archive/active4d-dev/

Reply via email to