可使用 DDL 语句 DROP SERVICE CLASS 删除服务类。
准备工作
要删除服务类,您需要 WLMADM 或 DBADM 权限。请参阅工作量管理DDL语句 ,了解有关先决条件的更多信息。
无法删除缺省服务超类(SYSDEFAULTUSERCLASS、SYSDEFAULTMAINTENANCECLASS 和 SYSDEFAULTSYSTEMCLASS)或其相关联的服务子类。 删除缺省服务超类及其相关联服务子类的唯一方法是删除数据库。
如果下列任何条件适用,那么无法删除您所定义的服务类:
- 已将服务类禁用
- 服务类已由任何工作负载进行引用
- 它仍然被工作量引用
- 任何连接或活动当前映射到服务类
- 如果服务类设置为 REMAP ACTIVITY 操作的目标。
删除服务类级联,以删除为服务类定义的任何阈值、工作操作集和服务子类。
过程
要删除服务类,请执行下列操作:
- 将工作负载更改为不指向服务类,或者禁用工作负载定义。 此外,也可以使用 DROP WORKLOAD 语句来删除与服务类相关联的所有工作负载。 在删除每个工作负载之后发出 COMMIT 语句。
已在服务类下运行的活动将继续运行。 可以使用 WLM_GET_SERVICE_CLASS_AGENTS 表函数来列出当前映射到服务类的代理程序。 如果您不想让这些活动完成,可以使用表格函数返回的应用程序标识符,并使用 FORCE
APPLICATION 命令强制将这些应用程序从数据库中删除。
- 如果要删除服务子类,但是具有工作操作映射到该服务子类,请使用 ALTER WORK ACTION SET 语句的 DROP WORK ACTION 子句来删除该工作操作。 此外,也可以使用 DROP WORK ACTION SET 语句来删除工作操作集,该工作操作集包含映射到服务子类的工作操作。 在删除每个工作操作之后,或在删除工作操作集之后,发出 COMMIT 语句。
- 如果您要使用指向服务子类的 REMAP 操作来删除存在的服务子类和阈值,请使用 DROP THRESHOLD 语句来删除阈值。 在删除每个阈值后,发出 COMMIT 语句。
- 通过使用 ALTER SERVICE CLASS 语句禁用服务类。 如果在删除服务超类,那么此操作将禁用与服务超类相关联的所有服务子类。 禁用某个服务类可防止任何其他活动与该服务类相关联。 禁用服务类之后,发出 COMMIT 语句。
- 使用 DROP SERVICE CLASS 语句来删除服务类。 删除服务类级联,以删除为服务类定义的任何阈值、工作操作集和服务子类。
注意 :您不能手动删除服务超类的默认服务子类。 当删除服务超类时,便会删除服务超类的缺省服务子类。
- 落实更改。 落实更改时,将从 SYSCAT.SERVICECLASSES 视图中移除该服务类。