使用 editAsset 命令更新 EBA 资产的捆绑软件版本

将 OSGi 应用程序作为资产导入之后,该资产使用的捆绑软件或组合捆绑软件的更高版本可能变得可用。 您可以使用 editAsset 命令将已部署的资产配置为使用该资产所使用的任何捆绑软件或组合捆绑软件的更新版本。 可以选择使用特定的捆绑软件版本,也可以选择拉入最新的兼容版本。

准备工作

您可以使用 wsadmin 命令 (如本主题中所述) 或使用管理控制台 (如 更新 EBA 资产的捆绑软件版本中所述) 来更新 EBA 资产的捆绑软件和组合捆绑软件版本。

有关此任务

首次创建 OSGi 应用程序时,该应用程序中的每个捆绑软件和组合捆绑软件将直接包含在 EBA 文件中或者按引用拉入。 将应用程序作为资产导入之后,您就再也无法更改该资产的直接内容。 要更新资产中指定的捆绑软件和组合捆绑软件,请将更新版本添加到存储库,然后将这些更新应用到资产。 当新的捆绑软件版本可用时,不会自动更新该资产;将由您来决定是否以及何时更新该资产。

对于 EBA 资产所指定的每个捆绑软件或组合捆绑软件,您可以选择以下任一选项:
  • 使用特定可用的捆绑软件版本。
  • 使用任何版本。 在这种情况下,将使用与您为其他捆绑软件选择的版本相兼容的最新可用版本。

在针对此资产进行选择后,系统将尝试解析您请求的更改并向您显示结果。 选择了正在使用的配置后,将应用资产的捆绑软件和组合捆绑软件版本更新。

您无法更新由运行时环境供应的捆绑软件。

注: 更新 EBA 资产时,更新不会自动影响正在运行的业务级应用程序。 要更新正在运行的应用程序,请更新包含该资产的业务级别应用程序的组合单元。
对于从先前版本移动的用户: 在 WebSphere® Application Server V 7 Feature Pack for OSGi Applications and Java™ Persistence API 2.0中,将通过重新启动业务级应用程序而不是通过更新组合单元来应用对资产的捆绑软件更改。 当前的方法意味着可以应用许多捆绑软件的更改,而无需重新启动正在运行的业务级应用程序。

过程

  1. 检查此资产中所有捆绑软件的当前捆绑软件下载状态。

    如果先前已更新该资产,那么先前更新的捆绑软件下载必须已完成。

    可以使用 editCompUnit wsadmin 命令来检查资产的捆绑软件下载状态。 此命令检查关联的 OSGi 组合单元的状态,如 检查 OSGi 组合单元的更新状态中所述。 此状态是下列其中一个值:
    • 使用最新的 OSGi 应用程序部署。
    • 新 OSGi 应用程序部署尚不可用,因为它需要的捆绑软件仍在下载。
    • 新的 OSGi 应用程序部署可用。
    • 无法应用新 OSGi 应用程序部署,因为捆绑软件下载失败。
    等待直到任何先前更新的捆绑软件下载完成。
  2. 选择此应用程序中每个捆绑软件的更新捆绑软件版本首选项。
    要通过使用 editAsset 命令选择 EBA 资产的捆绑软件版本,打开 wsadmin 命令提示符,然后运行以下 jython 命令。 在 -UpdateAppContentVersions 参数下,针对应用程序清单中列示的每个捆绑软件(在“应用程序内容”头和“使用捆绑软件”头之间)包含一个条目(即,bundle_name current_versionupdate_preference)。 包括每一个捆绑软件,无论您是否正在更新捆绑软件版本。
    对于从先前版本移动的用户: 在 WebSphere Application Server V 7 Feature Pack for OSGi Applications and Java Persistence API 2.0中,通过重新启动业务级应用程序来应用对资产的捆绑软件更改。 在 WebSphere Application Server 版本 8.0 和更高版本中,将通过更新组合单元来应用这些更改。 要启用当前方法, UpdateAppContentVersionsStep 参数已替换为 UpdateAppContentVersions 参数,您可以使用 CompUnitStatusStep 参数来运行 editCompUnit 命令,而不是重新启动业务级应用程序。 请参阅以下故障诊断提示: 使用 wsadmin 命令更新捆绑软件版本的行为已更改
    AdminTask.editAsset('[
      -assetID asset_name 
      -UpdateAppContentVersions [
        [bundle_1_name current_version update_preference]
        [bundle_2_name current_version update_preference]
        [bundle_3_name current_version update_preference]
        [bundle_4_name current_version update_preference]
        [bundle_5_name current_version update_preference]
      ]]')
    注:
    • current_version 指定在应用程序清单中声明但未由运行时环境部署的共享捆绑软件 (即 使用捆绑软件) 的捆绑软件版本号 (例如 1.0.0) 或 NOT_DEPLOYED 。 此自变量描述了捆绑软件的当前配置,但不用于更改配置。
    • update_preference 指定新的捆绑软件版本首选项。 这是捆绑软件版本号(例如,1.0.0)或 NOT_DEPLOYED(对于共享捆绑软件)或 NO_PREF(如果希望系统为您选择捆绑软件版本)。 如果不希望更新给定的捆绑软件的版本,那么将此属性设置为与 current_version 属性使用相同的值。

    有关使用 editAsset 命令的更多信息,请参阅 使用 wsadmin 脚本编制的 AdminTask 对象的 BLAManagement 命令组

    在针对此资产进行选择后,系统将尝试解析您请求的更改并向您显示结果。 选择了正在使用的配置后,将应用资产的捆绑软件和组合捆绑软件版本更新。

  3. 将更改保存到配置库。

    要保存配置更改,请使用以下命令:

    AdminConfig.save()

    将下载捆绑软件更新。

下一步做什么?

如果打算在此时更新组合单元,请检查是否已完成下载所有捆绑软件。 请参阅 检查 OSGi 组合单元的更新状态