删除服务类

可使用 DDL 语句 DROP SERVICE CLASS 删除服务类。

准备工作

要删除服务类,您需要 WLMADM 或 DBADM 权限。

请参阅工作量管理DDL语句 ,了解有关先决条件的更多信息。

无法删除缺省服务超类(SYSDEFAULTUSERCLASS、SYSDEFAULTMAINTENANCECLASS 和 SYSDEFAULTSYSTEMCLASS)或其相关联的服务子类。 删除缺省服务超类及其相关联服务子类的唯一方法是删除数据库。

如果下列任何条件适用,那么无法删除您所定义的服务类:

  • 已将服务类禁用
  • 服务类已由任何工作负载进行引用
  • 它仍然被工作量引用
  • 任何连接或活动当前映射到服务类
  • 如果服务类设置为 REMAP ACTIVITY 操作的目标。

删除服务类级联,以删除为服务类定义的任何阈值、工作操作集和服务子类。

过程

要删除服务类,请执行下列操作:

  1. 将工作负载更改为不指向服务类,或者禁用工作负载定义。 此外,也可以使用 DROP WORKLOAD 语句来删除与服务类相关联的所有工作负载。 在删除每个工作负载之后发出 COMMIT 语句。

    已在服务类下运行的活动将继续运行。 可以使用 WLM_GET_SERVICE_CLASS_AGENTS 表函数来列出当前映射到服务类的代理程序。 如果您不想让这些活动完成,可以使用表格函数返回的应用程序标识符,并使用 FORCE APPLICATION 命令强制将这些应用程序从数据库中删除。

  2. 如果要删除服务子类,但是具有工作操作映射到该服务子类,请使用 ALTER WORK ACTION SET 语句的 DROP WORK ACTION 子句来删除该工作操作。 此外,也可以使用 DROP WORK ACTION SET 语句来删除工作操作集,该工作操作集包含映射到服务子类的工作操作。 在删除每个工作操作之后,或在删除工作操作集之后,发出 COMMIT 语句。
  3. 如果您要使用指向服务子类的 REMAP 操作来删除存在的服务子类和阈值,请使用 DROP THRESHOLD 语句来删除阈值。 在删除每个阈值后,发出 COMMIT 语句。
  4. 通过使用 ALTER SERVICE CLASS 语句禁用服务类。 如果在删除服务超类,那么此操作将禁用与服务超类相关联的所有服务子类。 禁用某个服务类可防止任何其他活动与该服务类相关联。 禁用服务类之后,发出 COMMIT 语句。
  5. 使用 DROP SERVICE CLASS 语句来删除服务类。 删除服务类级联,以删除为服务类定义的任何阈值、工作操作集和服务子类。
    注意 :您不能手动删除服务超类的默认服务子类。 当删除服务超类时,便会删除服务超类的缺省服务子类。
  6. 落实更改。 落实更改时,将从 SYSCAT.SERVICECLASSES 视图中移除该服务类。