ich arbeite momentan mit CORBA und dabei wird die CORBA-Implementierung omniORB verwendet. Der CORBA-Client habe ich mit Python programmiert und die Kommunikation zwischen Server und Client funktioniert eigentlich gut. Manchmal aber wird die CORBA-Exception (CORBA.TRANSIENT(omniORB.TRANSIENT_CallTimedout, CORBA.COMPLETED_MAYBE) ) zurückgegeben. Mit Transient-Exception wird eigentlich gemeint, dass die Aktion wiederholt werden kann. Deswegen habe ich zuerst das Problem ungefähr wie folgt gelöst:
Code: Alles auswählen
Starttime = time.time()
while time.time() - Starttime < 10:
try:
result = (Anfrage von CORBA-Client zum CORBA-Server starten)
if result == True:
break
except Exception, e:
else:
print str(e)
Code: Alles auswählen
omniORB.installTransientExceptionHandler(None, self.ExceptionHandling)
def ExceptionHandling(self, cookie, retries, exc):
if retries == 5:
return False
else:
return True
meine Frage ist, ob jemand weiss, wie ich den Exception-Handler besser implementieren kann?
Danke