I try to update my application from active4d 4.0.0.rc7 to 4.0.2 (OS X 10.4.7, 4D 2004, ITK as Webserver) I can't update from your new shell, because there are a lot things a little bit different in my environment .

A4D Execute stream request always return 500 (An internal server error prevented the request from being fulfilled.) I did compare your 4d methods in he new shell, with the corresponding 4d methods in my environment, and did not find fundamental changes.
I did read the Release Notes too.

Is there something special you did change?

Yes, I made quite a few changes between rc7 and 4.0 release. Here are the changes in diff format:

--- A4D_Init.4d (revision 342)
+++ A4D_Init.4d (revision 1086)

-C_BOOLEAN(?A4D_ClientIsWebServer)
+C_BOOLEAN($1;$inStartWebServer)
+
+If (Count parameters=0)
+       $inStartWebServer:=True
+Else
+       $inStartWebServer:=$1
+End if
+
+C_BOOLEAN(?A4D_ClientIsWebServer;?A4D_ExitingDB)
?A4D_ClientIsWebServer:=False
+?A4D_ExitingDB:=False
C_STRING(255;?A4D_HostAddr)
C_LONGINT($err;$hostAddr;$dontCare;?A4D_ITKVersion)

-C_BOOLEAN(?A4D_IsWebServer)
+C_BOOLEAN(?A4D_IsWebServer;$isWebServer)
+?A4D_IsWebServer:=False
If (Application type=4D Client )
-       ?A4D_IsWebServer:=?A4D_ClientIsWebServer
+       $isWebServer:=?A4D_ClientIsWebServer
Else
-       ?A4D_IsWebServer:=Not(?A4D_ClientIsWebServer)
+       $isWebServer:=Not(?A4D_ClientIsWebServer)
End if
$err:=A4D Init
C_LONGINT(?A4D_HouseKeeperPID)
-If (?A4D_IsWebServer)
- ?A4D_HouseKeeperPID:=New process("A4D_HouseKeeper"; 32*1024;"A4D_HouseKeeper";*)
+If ($isWebServer)
+       C_LONGINT($housekeeperStack)
+ $housekeeperStack:=Num(A4D_GetParam ("A4D_Config";"HousekeeperStack";"128")) + ?A4D_HouseKeeperPID:=New process("A4D_HouseKeeper"; $housekeeperStack*1024;"A4D_HouseKeeper";*)
-       C_LONGINT($err;?A4D_ITK_Master;?A4D_ITK_Closer)
- $err:=A4D Set stream callbacks ("A4D_ITK_ReceiveCallback";"A4D_ITK_StatusCallback") - ?A4D_ITK_Master:=New process("A4D_ITK_Master"; 64*1024;"http_master") - ?A4D_ITK_Closer:=New process("A4D_ITK_Closer"; 64*1024;"http_closer")
+       If ($inStartWebServer)
+               C_LONGINT($err;?A4D_ITK_Master;?A4D_ITK_Closer)
+ $err:=A4D Set stream callbacks ("A4D_ITK_ReceiveCallback";"A4D_ITK_StatusCallback") + ?A4D_ITK_Master:=New process("A4D_ITK_Master"; 64*1024;"A4D_ITK_Master") + ?A4D_ITK_Closer:=New process("A4D_ITK_Closer"; 64*1024;"A4D_ITK_Closer")
+       End if
Else
        ?A4D_HouseKeeperPID:=0
End if
+
+??`Defer setting of flag to end of initialization so no requests are handled until then
+?A4D_IsWebServer:=$isWebServer



--- A4D_ITK_Master.4d   (revision 342)
+++ A4D_ITK_Master.4d   (revision 1086)

-C_LONGINT($numSlaves;$numStreams;$numSSLStreams;$pid;$IP;$port;$i;$j; $err) +C_LONGINT($numSlaves;$numStreams;$numSSLStreams;$slaveStack;$pid;$IP; $port;$i;$j;$err)
$IP:=A4D_IPToLongint (A4D_GetParam ("A4D_ITKConfig";"IP";"0.0.0.0"))
$port:=Num(A4D_GetParam ("A4D_ITKConfig";"Port";"80"))
$numSlaves:=Num(A4D_GetParam ("A4D_ITKConfig";"NumSlaves";"7"))
$numStreams:=Num(A4D_GetParam ("A4D_ITKConfig";"NumStreams";String(2* $numSlaves)))
+$slaveStack:=Num(A4D_GetParam ("A4D_ITKConfig";"SlaveStack";"128"))

For ($i;1;$numSlaves)
-?$pid:=New process("A4D_ITK_Slave";64000;"http_Slave_"+String($i))
+ $pid:=New process("A4D_ITK_Slave"; $slaveStack*1024;"A4D_ITK_Slave_"+String($i))
End for


--- A4D_ITK_Slave.4d    (revision 342)
+++ A4D_ITK_Slave.4d    (revision 1086)

-?If (A4D_PreStreamExecuteHook ($streamRef))
-??A4D_ITK_Server ($streamRef)  `Handle the incoming HTTP request(s)
+
+       If (?A4D_IsWebServer)
+               If (A4D_PreStreamExecuteHook ($streamRef))
+ A4D_ITK_Server ($streamRef)??`Handle the incoming HTTP request(s)
+               End if
+       End if
+

A4D_Startup and A4D_Shutdown changed considerably.

Regards,

   Aparajita
   www.aparajitaworld.com

   "If you dare to fail, you are bound to succeed."
   - Sri Chinmoy   |   www.srichinmoylibrary.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