code: public void deregisterMonitor(ConnectionImpl connection,
                                  ConsumerSetChangeCallback callback)
    throws SINotPossibleInCurrentConfigurationException
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.entry(
            tc,
            "deregisterMonitor",
            new Object[] { connection, callback});
  
      // Retrieve the callback from the index
      TopicRecord tRecord = retrieveCallbackFromConnectionIndex(connection, callback);
  
      if(tRecord != null)
      {
        // Have found the callback in the index, now remove the callback from
        // the appropriate registered monitors table.
        if(tRecord.isWildcarded)
        {
          removeCallbackFromRegisteredMonitors(callback,
                                               tRecord.topicExpression,
                                               true, // isWildcarded
                                               _registeredWildcardConsumerMonitors);
        }
        else
        {
          // Handle the non-wildcard case
          removeCallbackFromRegisteredMonitors(callback,
                                               tRecord.topicExpression,
                                               false, // isWildcarded
                                               _registeredExactConsumerMonitors);
        }
      }
      else
      {
        // Failed to find any reference to callback
        // Build the message for the Exception
        if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
          SibTr.exit(tc, "deregisterMonitor", callback);
  
        SibTr.error(tc, "INTERNAL_MESSAGING_ERROR_CWSIP0005",
          new Object[] {
            "com.ibm.ws.sib.processor.matching.ConsumerMonitorRegistrar",
            "1:237:1.10",
            callback });
        throw new SINotPossibleInCurrentConfigurationException(
          nls.getFormattedMessage(
            "INTERNAL_MESSAGING_ERROR_CWSIP0005",
            new Object[] {
              "com.ibm.ws.sib.processor.matching.ConsumerMonitorRegistrar",
              "1:244:1.10",
              callback },
            null));
  
      }
  
      // Now remove the callback from the index
      removeCallbackFromConnectionIndex(connection, callback);
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "deregisterMonitor");
    }
docs: Method deregisterMonitor
  
  Deregisters a previously registered callback.
  
  @param callback
  @throws SINotPossibleInCurrentConfigurationException