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/
