Hi.
  I have the following application :
 
  Delphi 6, Ibx6.08. Client server application. Dcom Connection.
 
The Server is setup :
  1) Main Remote data module(rdmMain), with a TibDatabase and TIbTransaction. ciMultiInstance, tmApartment.
  2) Many child remote data modules. They have IbQueries pointing( at design time ) to the TIbDatabase
     of the main remote data module(rdmMain). ciInternal, tmApartment.
 
  According to the documentation, as the child remote data modules are internal, they can only be seen by
  the thread that created them.
 
 When I try to run this application, and connect multiple clients to the same app server, the program crashes.
 
 The problem (I think) is :
 
  1) When first client connects, one rdmMain is created( and added to the Screen global variable in
     Screen.DataModules as "MainRdm").
     When child rdms are read from the stream, the TibQueries read their database properties and set it
      to point to "MainRdm.Database").
 
  2) When the second client connects, another rdmMain is created( and added to the Screen global variable in
     Screen.DataModules as "MainRdm_1" -> changes the name ).
     When child rdms are read from the stream, the TibQueries read their database properties and set it
      to point to "MainRdm.Database", NOT "MainRdm_1").
 
  So, I end up with queries in the second COM object looking at a database in the first COM object. Which,
in theory, should be running in a different thread.
 
  Now, I already know a work around( setting the tibdatabase when the rdm is created ). What I'd like to know is :
 
  1) Is the way the Delphi code works correct ? Has it been changed in Delphi 7 or 8 ( ie : does the global list of
  datamodules consider which thread they are created in )?
 
  2) Are there any other things that will be global to all of the com objects created ? The "main" form comes to
   mind, is there anything else ? Which is the code that has to be made thread safe ?
 
 Thanks very much for the info
 
Regards
Paul McKenzie
Analyst Programmer
SMSS Ltd.
 
_______________________________________________
Delphi mailing list
[EMAIL PROTECTED]
http://ns3.123.co.nz/mailman/listinfo/delphi

Reply via email to