执行内部版本升级

本节将为您提供有关升级过程以及识别和解决冲突的步骤的深入演练。

建设升级必须谨慎进行,其影响必须事先充分考虑,程序必须高度规范。 要确保升级成功,请确保只有专家用户才能执行下面列出的步骤。 此外,我们强烈建议在开始任何升级之 前与Adobe “客户服务”联系。

需要以下先决条件:

  • 理解活动架构
  • 系统和服务器端知识
  • 管理权限

您可以在以下部分中找到更多信息: 更新Adobe Campaign ,迁移到新版本。

对于托管和混合实例,您必须向Adobe技术运营团队申请内部版本升级。 有关此问题的详细信息,请参阅本页底部的“常见问题”部分。 另请查阅构建 升级常见问题解答

准备升级

在开始内部版本升级之前,您必须按照下面的说明执行完整准备。
系统准备就绪后,构建升级至少 需要 2小时。

构建升级过程需要以下资源:

  • adobe架构师——了解库结构(现成的模式和已添加的任何其他模式、活动设计以及任何必须按特定顺序启动和测试的关键路径功能)。
  • 项目经理——如果构建升级涉及许多不同的实例(生产、升级、测试)和其他第三方服务器和应用程序(数据库、SFTP站点、消息服务提供商),则由项目经理来协调所有测试被视为最佳实践。
  • adobe campaign管理员——您的管理员了解服务器的配置,包括但不限于:安全性、文件夹布局、报告和导入\导出要求。 请勿在管理员的情况下执行内部版本升级。
  • adobe campaign运营商(营销用户)-成功的升级依赖于用户成功执行其每日任务的能力。 因此,在测试升级的服务器时,始终至少包含一个日常操作员。

规划

以下是如何计划内部版本升级的关键点:

  1. 升级至少需要2小时。
  2. 分发Adobe和客户员工的联系信息。
  3. 对于托管实例:Adobe和客户员工将协调升级时间和执行人员。
  4. 对于预置实例:客户员工负责整个流程——如果需要在测试自定义工作流和投放逻辑方面提供协助,应引入咨询服务。
  5. 确定并确认要升级到的Adobe Campaign版本——请参阅 Adobe Campaign Classic发行说明
  6. 确认拥有升级可执行文件。

关键人物

构建升级过程需要以下人员参与:

  • Adobe架构师:对于托管或混合架构,架构师必须与Adobe Campaign客户服务部门协作。

  • 项目经理:

    • 对于内部部署安装:客户的内部项目领导者负责领导升级并管理生命周期测试。

    • 对于托管安装:托管团队将与Adobe Campaign客户关怀团队和客户合作协调所有实例的升级时间线。

  • Adobe Campaign管理员:

    • 对于内部部署安装:管理员执行升级。

    • 对于托管安装:托管团队执行升级。

  • Adobe Campaign运营商\营销用户:运营商对开发、测试和生产实例运行测试。

准备内部版本升级

在开始内部版本升级之前,预置型客户需要进行以下准备:

  1. 确保在升级前导出任何开发工作,以包形式导出。

  2. 为源目标和环境的所有实例执行数据库的完全备份。

  3. 获取最新版服务 器配置文件

  4. 下载最新版本。 进一步了解下载中心

在开始内部版本升级之 前,您还需要了解 所有有用的命令行:

  • nlserver pdump:列表运行流程
  • nlserver pdump -who:列表活动客户端会话
  • nlserver监视器-missing:列表缺失属性
  • nlserver开始process@instanceName:开始流程
  • nlserver stop process@instanceName:停止进程
  • nlserver重新启动process@instanceName:重新启动进程
  • nlserver shutdown:停止所有活动进程
  • nlserver watchdog -svc:开始监视程序(仅限UNIX)

执行升级

以下程序仅由预置 型客户执行 。 对于托管客户,托管团队会负责托管。 要将Adobe Campaign更新到新版本,详细过程如下所述。

重复环境

下面介绍如何重复Adobe Campaign环境,以便将源环境恢复为目标环境,从而产生两个相同的工作环境。

为此请执行以下操作步骤:

  1. 在源环境中为所有实例创建数据库的副本。

  2. 在目标环境的所有实例中恢复这些副本。

  3. 在启动 ​目标环境前,在上运行nms:freezeInstance.js烧灼脚本。 这将阻止所有进程与外部交互:日志、跟踪、投放、活动工作流等。

    nlserverjavacsriptnms:freezeInstance.js–instance:<dev> -arg:run
    
  4. 检查烧灼,如下所示:

    • 检查唯一的投放部件是ID设置为0的 部件:

      SELECT * FROM neolane.nmsdeliverypart;
      
    • 检查投放状态更新是否正确:

      SELECT iSate, count(*) FROM neolane.nmsdeliveryGroup By iProd;
      
    • 检查工作流状态更新是否正确:

      SELECT iState, count (*) FROM neolane.xtkworkflowGROUP BY iState;
      SELECT iStatus, count (*) FROM neolane.xtkworkflowGROUP BY iStatus;
      

关闭服务

要用新版本替换所有文件,需要关闭nlserverservice的所有实例。

  1. 关闭以下服务:

    • Web服务(IIS): iisreset /stop
    • Adobe Campaign服务: net stop nlserver6
    注意

    确保重定向服务器(webmdl)已停止,以便IIS使用的nlsrvmod.dll文件可以替换为新版本。

  2. 通过运行nlserver pdump命令验证没有任务 处于活动状态 。 如果没有任务,则输出应类似于以下内容:

    C:\<installation path>\bin>nlserverpdump HH:MM:SS > Application Server for Adobe Campaign version x.x (build xxx) dated xx/xx/xxxx No tasks
    
  3. 检查Windows任务管理器以确认所有进程都已停止。

升级Adobe Campaign服务器应用程序

  1. 运行 Setup.exe文件 。 如果需要下载此文件,请访 问下载中心

  2. 选择安装模式: 更新修复

  3. 单击“ 下一步”。

  4. 单击 完成:安装项目将复制新文件。

  5. 操作完成后,单击“完 成”

同步资源

  1. 打开命令行。

  2. 行nlserver config -postupgrade -allinstances ,以执行以下操作:

    • 同步资源
    • 更新模式
    • 更新数据库
    注意

    此操作只应执行一次,并且只应在nlserverweb应用程序服务器上执行。

    要仅同步一个数据库,请运行以下命令:

    nlserver config -postupgrade -instance: <instance_name>
    
  3. 检查同步是否生成了任何错误或警告。

重新启动服务

需要重新启动以下服务:

  • Web服务(IIS): issreset /开始
  • Adobe Campaign服务: 网络开始nlserver6

客户端控制台更新

在安装Adobe Campaign应用程序服务器(nlserverweb)的计算机上,下载并复制文件:

Setup-client-7.xxxx.exe in [path of the application]\datakit\nl\en\jsp

下次连接客户端控制台时,将显示一个窗口通知用户有新更新的可用性,并优惠用户下载和安装该更新的可能性。

特定附加任务

某些配置需要特定的附加任务才能更新到新版本。

事务型消息传递

在您的活动实例上启用事务消息传递(消息中心)后,您需要执行以下附加步骤才能进行升级:

  1. 将消息中心生产服务器更新到所选版本。

  2. 运行postupgrade脚本。

  3. 运行测试,确保通过消息中心生产实例成功接收电子邮件。

  4. 升级客户端并清除缓存。

  5. 导出包:

    • 使用客户端包导出工具导出包
    • 导入模式包
    • 断开和重新连接客户端
    • 更新数据库
    • 断开和重新连接
    • 导入管理包
    • 导入内容包
    • 导入内容管理包
    • 断开和重新连接
    • 快速检查工作流
  6. 发布消息中心模板,以确保服务器和消息中心实例之间的接口正常工作。

  7. 运行测试以确保通过消息中心生产实例成功接收电子邮件。

  8. 在生产中运行工作流测试,确保收到投放。

中间源

在中间源环境中,您需要执行以下其他步骤才能进行升级:

  1. 系Adobe ,协调中间源服务器的升级。

  2. 通过运行测试链接验证版本是否已更新。 例如:

    http://[InsertServerURL]/r/test
    
注意

中间源服务器必须始终运行与营销服务器相同的版本(或更新的版本)。

如果发生冲突

识别冲突

您需要检查同步结果。 此过程仅由预置型客户执行。 对于托管客户,托管团队会负责托管。 有两种方法可视图同步结果:

在命令行接口中,错误由三个V形标记“>>”实现,同步自动停止。 警告由多次V形标记“>>”实现,并且必须在同步完成后解决。 在播放结束时,命令提示符下会显示一个摘要。 它可以如下:

YYYY-MM-DD HH:MM:SS.749Z 00002E7A 1 info log =========Summary of the update==========
YYYY-MM-DD HH:MM:SS.749Z 00002E7A 1 info log <instance name> instance, 6 warning(s) and 0 error(s) during the update.
YYYY-MM-DD HH:MM:SS.749Z 00002E7A 1 warning log The document with identifier 'mobileAppDeliveryFeedback' and type 'xtk:report' is in conflict with the new version.
YYYY-MM-DD HH:MM:SS.749Z 00002E7A 1 warning log The document with identifier 'opensByUserAgent' and type 'xtk:report' is in conflict with the new version.
YYYY-MM-DD HH:MM:SS.750Z 00002E7A 1 warning log The document with identifier 'deliveryValidation' and type 'nms:webApp' is in conflict with the new version.
YYYY-MM-DD HH:MM:SS.750Z 00002E7A 1 warning log Document of identifier 'nms:includeView‘ and type 'xtk:srcSchema' updated in the database and found in the file system. You will have to merge the two versions manually.

如果警告涉及资源冲突,则需要用户注意才能解决该问题。

postupgrade_ ServerVersionNumber_TimeOfPostupgrade.log文件包含同步结果 。 默认情况下,它位于以下目录中: installationDirectory/var/instanceName/postupgrade。 错误和警告由错误和警告属性指示。

分析冲突

如何找到冲突?

冲突可在相关服务器上的postupgrade.log中或活动客户端界面(“管理”>“配置”>“包管理”>“编辑冲突”)中找到。

标识符为“stockOverview”且键入“nms:webApp”的文档与新版本冲突。

如果发现冲突,请检查以下条件是否匹配:

  • 客户是否修改或自定义了对象?
  • 对象在产品中是否发生更改?

如果这两种情况都不适用,这是假阳性。 如果这两种情况都适用,则发现了真正的冲突。

客户是否修改了对象?

  1. 识别冲突对象。
  2. 询问客户是否修改了对象。
  3. 这个物体有什么不寻常的吗?
  4. 上次修改日期是否在对象的代码中设置?
  5. 检查冲突中的XML代码是否有“_conflict”属性。 它看起来像是自定义吗?

新版本中的对象是否已更改?

  1. 有“常见嫌犯”吗? 内置的Web应用程序或报告(例如:“deliveryValidation”、“deliveryOverview”、“budget”)。
  2. 检查所有更新的更改日志。
  3. 咨询Adobe Campaign专家。
  4. 对代码执行“差异”。

解决冲突

要解决冲突,请应用以下流程:

  1. 在Adobe Campaign资源管理器中,转 到“管理”>“配置”>“包管理”>“编辑冲突”。

  2. 在列表中选择要解决的冲突。
    有三种解决冲突的方法: 接受新版本保留当前版本、合 并代码(并声明为已解决)忽略冲突(不推荐)

我何时可以接受新版本?

  • 如果您需要标准功能,
  • 如果您没有自定义项(将删除所有自定义项)

我何时可以保留当前版本?

  • 如果您有自定义项
  • 如果您不想合并
  • 如果您不需要对升级过程中冲突的对象进行任何修复

何时执行合并?

  • 只能合并表单、报表和Web应用程序。
  • 某些次要合并可以在不了解代码的情况下进行解决。
  • 更复杂的合并应由具备相应技能和能力的人进行。
  • 请参 阅执行合并

如果我忽视冲突呢?

  • 冲突将继续存在
  • 将不升级对象
  • 长期影响:版本不兼容,客户将不会从错误修复中受益。
重要

强烈建议解决冲突。

执行合并

有不同类型的合并:

  1. 轻松合并:自定义元素和新元素很小且互不相关,无需编码。
  2. 无更改:接受新版本,只更改上次更新日期,只更改注释、制表符、空格或新行。 示例:意外保存。
  3. 微不足道的更改:只更改了一行。 示例:xpathToLoad
  4. 复杂合并:需要编码时。 需要开发技能。 请参 阅复杂合并

如何合并?

  1. 获取所有三个版本:原始版本、新版本和自定义版本。
  2. 运行原始版本与新版本之间的“差异”。
  3. 隔离更改。
  4. 如果没有更改,请通过保留当前版本来解决。

在哪里可以找到代码?

  1. 内置代码存储在datakit文件夹的XML文件中。 查找与冲突对象匹配的XML文件。 示例:installationDirectory\datakit\nms\fra\form\recipient.xml
  2. 检索原始版本:通过下 载中心 ,或其他未升级的产品安装。
  3. 检索新版本:或客 户安 装的文件。
  4. 检索自定义版本:从活动客户端中检索对象的源代码。

如何进行差异比较?

  1. 安装文本或合并编辑器,例如记事本++、AraxisMerge、WinMerge。
  2. 在编辑器中打开原始文件和新文件。
  3. 运行差异比较(比较两个文件)。
  4. 识别任何差异。

如何合并?

  1. 开始自定义版本。
  2. 应用更改。
  3. 通过声明冲突已解决来解决冲突。
  4. 检查未回归。

如果选择手动解决冲突,请按如下步骤继续:

  1. 在窗口的下半部分中,搜索 conflict_string ,以查找存在冲突的实体。 随新版本一起安装的实体包含新参数,与先前版本匹配的实体包含自定义参数。
  2. 删除您不想保留的版本。 删除 要保留的实体 conflict_argument字符串。
  3. 转到已解决的冲突。 单击“操 ”图标,然 后选择“声明为已解析”
  4. 保存更改:冲突现已解决。

复杂合并

  1. 了解更改的作用:对更改进行逆向工程,检查更改日志,跟进Adobe Campaign专家。
  2. 决定如何处理更改。
  3. 了解自定义的功能:逆向工程更改

以下是执行复杂合并的步骤:

  1. 从更改集复制代码位
  2. 粘贴到自定义版本
  3. 定制的非回归检验
  4. 更改函数测试
  5. 执行用户接受测试
  6. 在测试环境中执行
重要

执行复杂合并需要具备开发技能。

相关主题

在此页面上