public void undeployService(String type) throws ADCException, ServiceDoesNotExistException { DataInsertionAndRetrievalManager dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager(); // check if there are already created Subscriptions for this type Collection<CartridgeSubscription> cartridgeSubscriptions = dataInsertionAndRetrievalManager.getCartridgeSubscriptions(type); if (cartridgeSubscriptions != null) { if (!cartridgeSubscriptions.isEmpty()) { // can't undeploy; there are existing Subscriptions String errorMsg = "Cannot undeploy Service since existing Subscriptions are found"; log.error(errorMsg); throw new ServiceDoesNotExistException(errorMsg, type); } } if (log.isDebugEnabled()) { log.debug( "No subscriptions found for service type: " + type + " , proceeding with undeploying service"); } Service service; try { service = dataInsertionAndRetrievalManager.getService(type); } catch (PersistenceManagerException e) { String errorMsg = "Error in checking if Service is available is PersistenceManager"; log.error(errorMsg, e); throw new ADCException(errorMsg, e); } if (service == null) { String errorMsg = "No service found for type " + type; log.error(errorMsg); throw new ADCException(errorMsg); } // if service is found, undeploy try { service.undeploy(); } catch (NotSubscribedException e) { String errorMsg = "Undeploying Service Cluster failed for " + type; log.error(errorMsg, e); throw new ADCException(errorMsg, e); } try { dataInsertionAndRetrievalManager.removeService(type); } catch (PersistenceManagerException e) { String errorMsg = "Error in removing Service from PersistenceManager"; log.error(errorMsg, e); throw new ADCException(errorMsg, e); } }