12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

使 用 服 务 质 量注 :仅 适 用 于 C++:● QoSExt::VB_NOTIFY_REBIND (C++) 或com.inprise.vbroker.QoSExt.VB_NOTIFY_REBIND (Java) 在 有 必 要 进 行 再 限 制时 , 掷 出 一 个 违 例 。 客 户 捕 获 这 个 违 例 , 并 限 制 在 第 二 个 调 用 上 。● QoSExt::VB_NO_REBIND (C++) 或 com.inprise.vbroker.QoSExt.VB_NO_REBIND(Java) 不 允 许 失 效 恢 复 。 它 仅 允 许 客 户 端 <strong>VisiBroker</strong> ORB 将 关 闭 的 连 接 重开 到 同 一 服 务 器 上 , 不 允 许 任 何 形 式 的 对 象 前 转 。如 果 您 的 客 户 的 有 效 策 略 是 VB_TRANSPARENT 而 您 的 客 户 正 在 与 保 存 状 态 数 据 的 服 务器 一 起 工 作 , VB_TRANSPARENT 可 以 在 客 户 对 服 务 器 变 化 不 知 情 的 情 况 下 将 客 户 连 接到 一 个 新 的 服 务 器 , 任 何 由 原 来 的 服 务 器 保 存 的 状 态 数 据 都 可 能 会 被 丢 失 。在 NO_REBIND 或 NO_RECONNECT 状 态 下 , 可 以 通 过 调 用 CORBA::Object 界 面 上 的_validate_connection 来 显 式 地 允 许 对 关 闭 的 连 接 的 重 开 或 前 转 操 作 。下 表 列 出 了 不 同 RebindMode 类 型 的 行 为 清 单 。表 10.5RebindMode 策 略RebindMode 类 型NO_RECONNECT是 否 在 同 一 对 象 上重 建 关 闭 的 连 接 ?不 , 掷 出 REBIND违 例 。是 否 允 许 对 象 前转 ? 对 象 失 效 恢 复 ? 1不 , 掷 出 REBIND违 例 。NO_REBIND 是 是 , 如 果 策 略 匹 配 。 不不 , 掷 出 REBIND违 例 。TRANSPARENT 是 是 不VB_NOTIFY_REBIND 是 是 是VB_NOTIFY_REBIND 在 故 障 侦 测 之 后会 掷 出 一 个 违 例 , 然后 在 下 一 个 请 求 上 尝试 失 效 恢 复 。VB_TRANSPARENT 是 是 是 , 透 明 地 。1在 出 现 通 信 问 题 或 对 象 故 障 时 , 会 掷 出 相 应 的 CORBA 违 例 。以 下 的 实 例 用 于 创 建 一 个 TRANSPARENT 类 型 的 RebindPolicy 并 在<strong>VisiBroker</strong> ORB、 线 程 和 对 象 级 上 设 置 策 略 。Any policyValue= orb.create_any();RebindModeHelper.insert(policyValue, org.omg.Messaging.TRANSPARENT.value);Policy myRebindPolicy = orb.create_policy(REBIND_POLICY_TYPE.value,policyValue);// 取 得 根 ORB 策 略 的 引 用org.omg.CORBA.PolicyManager manager;try {manager =PolicyManagerHelper.narrow(orb.resolve_initial_references("ORBPolicyManager"));}catch(org.omg.CORBA.ORBPackage.InvalidName e) {}// 取 得 根 每 线 程 管 理 器 的 引 用org.omg.CORBA.PolicyManager current;try不客 户 基 础 10-13

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!