Hi All,
I have a question regarding the correct value of the ComInitialization property.
We're using data pooling, and on the datamodule a TADOConnection component and TADOQuery (we're migrating to FireDAC soon, but have ADO for now).
I always believed that for an ISAPI DLL, IW does not do any COM initlization, since IIS will take care of that, so we've left COMInitialization set to ciNormal (and could probably also have left it as ciNone). See also http://codeverge.com/embarcadero.delphi....in/1047897
However, there's now a discussion because the manual (from 2002) says we should use ciMultiThreaded, as can be read in chapter 7.5 of http://downloads.atozed.com/intraweb/IntrawebManual.pdf
What's the official word about this? When using ADO in pooled data modules, should we use COMInitialization set to ciMultiThreaded? Or should we call CoInitializeEx ourselves? Or leave COMINitialization set to ciNormal or coNone? Experience quite a performance degradation with more than a few dozen concurrent requests (the pool is big enough, but the delay is not linear)...
Thanks for any insight.
Groetjes, Bob Swart
One more question: if we change the value of COMInitizatiion, while ISAPI DLl is already running (so we change it in code), will that have effect for any new incoming requests, or should we reload the ISAPI DLL instead?
I have a question regarding the correct value of the ComInitialization property.
We're using data pooling, and on the datamodule a TADOConnection component and TADOQuery (we're migrating to FireDAC soon, but have ADO for now).
I always believed that for an ISAPI DLL, IW does not do any COM initlization, since IIS will take care of that, so we've left COMInitialization set to ciNormal (and could probably also have left it as ciNone). See also http://codeverge.com/embarcadero.delphi....in/1047897
However, there's now a discussion because the manual (from 2002) says we should use ciMultiThreaded, as can be read in chapter 7.5 of http://downloads.atozed.com/intraweb/IntrawebManual.pdf
What's the official word about this? When using ADO in pooled data modules, should we use COMInitialization set to ciMultiThreaded? Or should we call CoInitializeEx ourselves? Or leave COMINitialization set to ciNormal or coNone? Experience quite a performance degradation with more than a few dozen concurrent requests (the pool is big enough, but the delay is not linear)...
Thanks for any insight.
Groetjes, Bob Swart
One more question: if we change the value of COMInitizatiion, while ISAPI DLl is already running (so we change it in code), will that have effect for any new incoming requests, or should we reload the ISAPI DLL instead?