[omniORB] Problem with Zope and omniORB4

Андрей Пучин nash@garant.ru
Mon, 13 May 2002 15:35:03 +0400


Hi!

Could anybody help with next problem?

I have:
  Zope-2.5.0 under Windows XP
  Python 2.1.3
  Zope Product (ZP)
  omniORB40 with omniORBpy
  APPSERVER (C++, TAO)


ORB initialized through calling ZP.method (set global variables), it looks like:

poa, orb, poaManager = None

class A:
    def login(self, login, passwd):
        global orb, poa, poaManager
        if (not orb and not poa and not poaManager):
            orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
            poa = orb.resolve_initial_references("RootPOA")
            poaManager = poa._get_the_POAManager()
            poaManager.activate()

at the another method i try to create an object reference to object of class ProgressIndicator
   pi = ProgressIndicator()
   pi_ref = pi._this()

in multithread mode and at more than 10 concurrent connections
pi._this() leads ZOPE to crash (It stop responding)

in single thread mode all is OK

What can be wrong??

thanks,
Andrew


class ProgressIndicator(GCD__POA.ProgressIndicator):
    def __init__(self):
        self.current = 0
        self.count = 0
        self.ICancel = None

    def __del__(self):
        print "PI::DELETE"

    def start_process(self, maxCount, ICancel):
        self.current = maxCount
        self.ICancel = ICancel

    def set_current(self, curCount):
        print "PI::CURRENT"

    def finish_process(self, result):
        self.count = result.value()
        self.current = 100