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/