RE: keeping a COM server alive

2005-02-17 Thread Stefan Schukat
Hi, 

there is no real solution if you are using a standard local server.
The server is as a COM object reference counted. So if the
reference count reaches 0 (no client) it will shutdown itself which
is done by design. If you want a different behavior you should write
either a service which exports COM objects and is started by the
operating system or a Python script which you start by hand, 
registers the class factories and then does not shut down.

Stefan

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED] Behalf Of
 [EMAIL PROTECTED]
 Sent: Monday, February 14, 2005 12:53 PM
 To: python-list@python.org
 Subject: keeping a COM server alive
 
 
 I have implemented a local COM Server with win32com framework 
 where all
 clients
 use the same global object (test_obj). So far it works, but when the
 last client
 is closed the gobal object is deleted because the pythonw.exe is
 closed. When I
 create a new client a new pythonw process is started. I need that the
 new client
 gets the same global object. How can I prevent the Python COM
 enviornment
 (pythonw.exe) to close when no client exist. I figured out a
 workaround, but
 there must be real solution to the problem.
 
 
 
 The code looks like:
 
 class test:
 ...
 
 test_obj=test()
 
 
 class test_F:
 
 _reg_clsid_ = ...
 _reg_progid_ = test.cl
 _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
 _public_methods_ = ...
 
 
 def __init__(self):
 self.delegate=test_obj
 
 ...
 
 
 Workaround to keep the local server alive
 if not __name__=='__main__':
 import win32com.client
 dummy=win32com.client.Dispatch(test.cl)
 ##
 
 
 if __name__=='__main__':
 import win32com.server.register
 win32com.server.register.UseCommandLine(test_F, debug=0)
 
 -- 
 http://mail.python.org/mailman/listinfo/python-list
 
--
http://mail.python.org/mailman/listinfo/python-list


Re: keeping a COM server alive

2005-02-17 Thread [EMAIL PROTECTED]
Hi,

thanks, I 'll post the problem in python-win32@python.org ...

   Frank

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: keeping a COM server alive

2005-02-15 Thread Steve Holden
Do Re Mi chel La Si Do wrote:
Hi !
I had also make a Python-COM-server.
But, when I launch several clients, I obtain several instances of my
COM-server.
Finally, there are advantages and disadvantages in this established fact.
But I can't use this way for to exchange data between several clients. For
that, I use a TCP local server.
There are settings you can establish to determine the interactions 
between the COM server and its clients (threading model, in-process or 
out-of-process, etc).

If you don't get an answer on this list, try python-win32@python.org as 
a list where the readers will be more directly in tune with your needs.

regards
 Steve
--
http://mail.python.org/mailman/listinfo/python-list


Re: keeping a COM server alive

2005-02-15 Thread Do Re Mi chel La Si Do
Hi !

Sorry, but I receive the mailing list, I had readed THE book (Prog...Win32),
I questioned M.Hammond, I traversed the archives...
But I have no solution.

And, also, a COM server which answers several clients is very smart to
design; in particular because of the temporal re-entry  (re-entrance ?)

@-salutations
-- 
Michel Claveau



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: keeping a COM server alive

2005-02-14 Thread Do Re Mi chel La Si Do
Hi !

I had also make a Python-COM-server.
But, when I launch several clients, I obtain several instances of my
COM-server.

Finally, there are advantages and disadvantages in this established fact.
But I can't use this way for to exchange data between several clients. For
that, I use a TCP local server.

@-salutations
-- 
Michel Claveau



note : the same problem come with Microsoft's dictionnary COM server.




-- 
http://mail.python.org/mailman/listinfo/python-list