code: @Override
      public void deregister(Controllable controllable, ControllableType type)
                      throws NotRegisteredException, SIBExceptionInvalidValue {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(tc, "deregister", new Object[] { controllable, type });
          try {
              if (type == ControllableType.QUEUE_POINT) {
                  ServiceRegistration<QueueMBean> qMBean = (ServiceRegistration<QueueMBean>) this.serviceObjects.get(controllable.getName());
                  qMBean.unregister();
              } else if (type == ControllableType.PUBLICATION_POINT) {
                  ServiceRegistration<TopicMBean> topicMBean = (ServiceRegistration<TopicMBean>) this.serviceObjects.get(controllable.getName());
                  topicMBean.unregister();
              } else if (type == ControllableType.SUBSCRIPTION_POINT) {
                  ServiceRegistration<SubscriberMBean> subMBean = (ServiceRegistration<SubscriberMBean>) this.serviceObjects.get(controllable.getName());
                  subMBean.unregister();
              }
          } catch (Exception e) {
              SibTr.exception(tc, e);
          }
  
          deregister(controllable);
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(tc, "deregister");
          return;
      }
docs: /*
  (non-Javadoc)
  
  @see com.ibm.ws.sib.admin.ControllableRegistrationService#deregister(com.ibm.ws.sib.admin.Controllable, com.ibm.ws.sib.admin.ControllableType)