keeping a COM server alive

X

xeoicq

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)
 
D

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.
 
S

Steve Holden

Do said:
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 (e-mail address removed) as
a list where the readers will be more directly in tune with your needs.

regards
Steve
 
D

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top