pm.removeAllChannelData(subscription.getChannelID());
subscription.unsubscribe();
   public void unsubscribe(String subscriptionName) throws JMSException   {      if (closed)      {         throw new IllegalStateException("Session is closed");      }      if (subscriptionName == null)      {         throw new InvalidDestinationException("Destination is null");      }      String clientID = connectionEndpoint.getClientID();      if (clientID == null)      {         throw new JMSException("null clientID on connection");      }      CoreDurableSubscription subscription =         cm.getDurableSubscription(clientID, subscriptionName, ms, pm);      if (subscription == null)      {         throw new InvalidDestinationException("Cannot find durable subscription with name " +                                               subscriptionName + " to unsubscribe");      }            boolean removed =         cm.removeDurableSubscription(connectionEndpoint.getClientID(), subscriptionName);            if (!removed)      {         throw new JMSException("Failed to remove durable subscription");      }            subscription.unsubscribe();            try      {         pm.removeAllChannelData(subscription.getChannelID());      }      catch (Exception e)      {         log.error("Failed to remove message data", e);         throw new IllegalStateException("Failed to remove message data");      }   }