public Plugin getPlugin(string name) { lock (this) { if (_communicator == null) { throw new CommunicatorDestroyedException(); } Plugin p = findPlugin(name); if (p != null) { return(p); } NotRegisteredException ex = new NotRegisteredException(); ex.id = name; ex.kindOfObject = _kindOfObject; throw ex; } }
private void updateLocatorRegistry(LocatorInfo locatorInfo, ObjectPrx proxy) { if (_id.Length == 0 || locatorInfo == null) { return; // Nothing to update. } // // Call on the locator registry outside the synchronization to // blocking other threads that need to lock this OA. // LocatorRegistryPrx locatorRegistry = locatorInfo.getLocatorRegistry(); if (locatorRegistry == null) { return; } try { if (_replicaGroupId.Length == 0) { locatorRegistry.setAdapterDirectProxy(_id, proxy); } else { locatorRegistry.setReplicatedAdapterDirectProxy(_id, _replicaGroupId, proxy); } } catch (AdapterNotFoundException) { if (instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "object adapter"; ex1.id = _id; throw ex1; } catch (InvalidReplicaGroupIdException) { if (instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the replica group `" + _replicaGroupId + "' is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "replica group"; ex1.id = _replicaGroupId; throw ex1; } catch (AdapterAlreadyActiveException) { if (instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter endpoints are already set"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } ObjectAdapterIdInUseException ex1 = new ObjectAdapterIdInUseException(); ex1.id = _id; throw; } catch (ObjectAdapterDeactivatedException) { // Expected if collocated call and OA is deactivated, ignore. } catch (CommunicatorDestroyedException) { // Ignore } catch (LocalException e) { if (instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append(e.ToString()); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } throw; // TODO: Shall we raise a special exception instead of a non obvious local exception? } if (instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("updated object adapter `" + _id + "' endpoints with the locator registry\n"); s.Append("endpoints = "); if (proxy != null) { Ice.Endpoint[] endpoints = proxy.ice_getEndpoints(); for (int i = 0; i < endpoints.Length; i++) { s.Append(endpoints[i].ToString()); if (i + 1 < endpoints.Length) { s.Append(":"); } } } instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } }
private void updateLocatorRegistry(LocatorInfo locatorInfo, ObjectPrx proxy) { if(_id.Length == 0 || locatorInfo == null) { return; // Nothing to update. } // // Call on the locator registry outside the synchronization to // blocking other threads that need to lock this OA. // LocatorRegistryPrx locatorRegistry = locatorInfo.getLocatorRegistry(); if(locatorRegistry == null) { return; } try { if(_replicaGroupId.Length == 0) { locatorRegistry.setAdapterDirectProxy(_id, proxy); } else { locatorRegistry.setReplicatedAdapterDirectProxy(_id, _replicaGroupId, proxy); } } catch(AdapterNotFoundException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "object adapter"; ex1.id = _id; throw ex1; } catch(InvalidReplicaGroupIdException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the replica group `" + _replicaGroupId + "' is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "replica group"; ex1.id = _replicaGroupId; throw ex1; } catch(AdapterAlreadyActiveException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter endpoints are already set"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } ObjectAdapterIdInUseException ex1 = new ObjectAdapterIdInUseException(); ex1.id = _id; throw; } catch(ObjectAdapterDeactivatedException) { // Expected if collocated call and OA is deactivated, ignore. } catch(CommunicatorDestroyedException) { // Ignore } catch(LocalException e) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append(e.ToString()); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } throw; // TODO: Shall we raise a special exception instead of a non obvious local exception? } if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("updated object adapter `" + _id + "' endpoints with the locator registry\n"); s.Append("endpoints = "); if(proxy != null) { Ice.Endpoint[] endpoints = proxy.ice_getEndpoints(); for(int i = 0; i < endpoints.Length; i++) { s.Append(endpoints[i].ToString()); if(i + 1 < endpoints.Length) { s.Append(":"); } } } instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } }
private void updateLocatorRegistry(LocatorInfo locatorInfo, ObjectPrx proxy, bool registerProcess) { if(!registerProcess && _id.Length == 0) { return; // Nothing to update. } // // Call on the locator registry outside the synchronization to // blocking other threads that need to lock this OA. // LocatorRegistryPrx locatorRegistry = locatorInfo != null ? locatorInfo.getLocatorRegistry() : null; string serverId = ""; if(registerProcess) { Debug.Assert(instance_ != null); serverId = instance_.initializationData().properties.getProperty("Ice.ServerId"); if(locatorRegistry == null) { instance_.initializationData().logger.warning( "object adapter `" + getName() + "' cannot register the process without a locator registry"); } else if(serverId.Length == 0) { instance_.initializationData().logger.warning( "object adapter `" + getName() + "' cannot register the process without a value for Ice.ServerId"); } } if(locatorRegistry == null) { return; } if(_id.Length > 0) { try { if(_replicaGroupId.Length == 0) { locatorRegistry.setAdapterDirectProxy(_id, proxy); } else { locatorRegistry.setReplicatedAdapterDirectProxy(_id, _replicaGroupId, proxy); } } catch(AdapterNotFoundException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "object adapter"; ex1.id = _id; throw ex1; } catch(InvalidReplicaGroupIdException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the replica group `" + _replicaGroupId + "' is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.kindOfObject = "replica group"; ex1.id = _replicaGroupId; throw ex1; } catch(AdapterAlreadyActiveException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append("the object adapter endpoints are already set"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } ObjectAdapterIdInUseException ex1 = new ObjectAdapterIdInUseException(); ex1.id = _id; throw; } catch(LocalException e) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't update object adapter `" + _id + "' endpoints with the locator registry:\n"); s.Append(e.ToString()); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } throw; // TODO: Shall we raise a special exception instead of a non obvious local exception? } if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("updated object adapter `" + _id + "' endpoints with the locator registry\n"); s.Append("endpoints = "); if(proxy != null) { Ice.Endpoint[] endpoints = proxy.ice_getEndpoints(); for(int i = 0; i < endpoints.Length; i++) { s.Append(endpoints[i].ToString()); if(i + 1 < endpoints.Length) { s.Append(":"); } } } instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } } if(registerProcess && serverId.Length > 0) { lock(this) { if(_processId == null) { Process servant = new ProcessI(_communicator); _processId = addWithUUID(servant).ice_getIdentity(); } } try { locatorRegistry.setServerProcessProxy(serverId, ProcessPrxHelper.uncheckedCast(createDirectProxy(_processId))); } catch(ServerNotFoundException) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't register server `" + serverId + "' with the locator registry:\n"); s.Append("the server is not known to the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } NotRegisteredException ex1 = new NotRegisteredException(); ex1.id = serverId; ex1.kindOfObject = "server"; throw ex1; } catch(LocalException ex) { if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't register server `" + serverId + "' with the locator registry:\n" + ex); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } throw; // TODO: Shall we raise a special exception instead of a non obvious local exception? } if(instance_.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("registered server `" + serverId + "' with the locator registry"); instance_.initializationData().logger.trace(instance_.traceLevels().locationCat, s.ToString()); } } }
private void getEndpointsException(Reference reference, System.Exception exc) { try { throw exc; } catch (Ice.AdapterNotFoundException ex) { var communicator = reference.getCommunicator(); if (communicator.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("adapter not found\n"); s.Append("adapter = " + reference.getAdapterId()); communicator.Logger.trace(communicator.traceLevels().locationCat, s.ToString()); } Ice.NotRegisteredException e = new Ice.NotRegisteredException(ex); e.kindOfObject = "object adapter"; e.id = reference.getAdapterId(); throw e; } catch (Ice.ObjectNotFoundException ex) { var communicator = reference.getCommunicator(); if (communicator.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("object not found\n"); s.Append("object = " + reference.getIdentity().ToString(communicator.ToStringMode)); communicator.Logger.trace(communicator.traceLevels().locationCat, s.ToString()); } Ice.NotRegisteredException e = new Ice.NotRegisteredException(ex); e.kindOfObject = "object"; e.id = reference.getIdentity().ToString(communicator.ToStringMode); throw e; } catch (Ice.NotRegisteredException) { throw; } catch (Ice.LocalException ex) { var communicator = reference.getCommunicator(); if (communicator.traceLevels().location >= 1) { System.Text.StringBuilder s = new System.Text.StringBuilder(); s.Append("couldn't contact the locator to retrieve endpoints\n"); if (reference.getAdapterId().Length > 0) { s.Append("adapter = " + reference.getAdapterId() + "\n"); } else { s.Append("well-known proxy = " + reference.ToString() + "\n"); } s.Append("reason = " + ex); communicator.Logger.trace(communicator.traceLevels().locationCat, s.ToString()); } throw; } catch (System.Exception) { Debug.Assert(false); } }
public Plugin getPlugin(string name) { lock(this) { if(_communicator == null) { throw new CommunicatorDestroyedException(); } Plugin p = findPlugin(name); if(p != null) { return p; } NotRegisteredException ex = new NotRegisteredException(); ex.id = name; ex.kindOfObject = _kindOfObject; throw ex; } }