12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

适 配 器 激 活 器System.out.println(ref + " is ready.");// 等 待 进 入 的 请 求 。orb.run();} catch (Exception e) {e.printStackTrace();}}}适 配 器 激 活 器适 配 器 激 活 器 与 POA 关 联 在 一 起 , 它 们 提 供 创 建 随 选 子 POA 的 能 力 。 这 可 以 在find_POA 操 作 中 完 成 , 或 者 在 收 到 一 个 给 特 定 的 子 POA 命 名 的 请 求 时 执 行 。在 接 收 给 子 POA ( 或 其 子 代 POA 之 一 ) 命 名 的 请 求 时 , 或 当 用 activate 参 数值 TRUE 调 用 find_POA 时 , 适 配 器 激 活 器 可 以 为 POA 提 供 创 建 随 选 子 POA 的能 力 。 在 执 行 之 初 创 建 其 所 有 需 要 的 POA 的 应 用 服 务 器 不 需 要 使 用 或 提 供 适 配 器激 活 器 ; 仅 当 需 要 在 请 求 处 理 过 程 中 创 建 POA 时 才 需 适 配 器 激 活 器 。在 POA 发 送 请 求 到 适 配 器 激 活 器 的 过 程 中 , 所 有 对 由 新 POA ( 或 其 任 何 子POA) 管 理 的 对 象 的 请 求 都 将 被 排 入 队 列 。 这 个 序 列 化 操 作 允 许 适 配 器 激 活 器 在 请求 被 传 递 到 POA 之 前 , 完 成 新 POA 的 所 有 初 始 化 过 程 。有 关 使 用 适 配 器 激 活 器 的 实 例 , 请 参 阅 要 产 品 中 所 包 含 的 POA adaptor_activator实 例 。处 理 请 求请 求 包 含 目 标 对 象 的 对 象 ID 和 创 建 目 标 引 用 的 POA。 当 客 户 发 送 请 求 时 ,<strong>VisiBroker</strong> ORB 首 先 定 位 适 当 的 服 务 器 , 或 在 需 要 时 启 动 服 务 器 。 然 后 , 它 在 服务 器 内 定 位 适 当 的 POA。一 旦 <strong>VisiBroker</strong> ORB 找 到 适 当 的 POA, 它 就 将 请 求 发 到 该 POA 上 。 请 求 在 那里 如 何 处 理 决 定 于 POA 的 策 略 和 对 象 的 激 活 状 态 。 有 关 对 象 激 活 的 详 情 , 请 参 阅第 7-8 页 " 激 活 对 象 "。● 如 果 POA 具 有 C++ ServantRetentionPolicy::RETAIN 或 JavaServantRetentionPolicy.RETAIN, 则 POA 查 看 活 动 对 象 图 以 定 位 与 请 求 中 所包 含 的 对 象 ID 关 联 服 务 对 象 。 如 果 服 务 对 象 存 在 , 则 POA 在 服 务 对 象 上 调 用适 当 的 方 法 。● 如 果 POA 在 C++ 下 具 有 ServantRetentionPolicy::NON_RETAIN 或ServantRetentionPolicy::RETAIN, 及 如 果 POA 在 Java 下 具 有ServantRetentionPolicy.NON_RETAIN 或 ServantRetentionPolicy.RETAIN , 但 不能 找 到 适 当 的 服 务 对 象 , 则 会 发 生 下 列 现 象 :● 如 果 POA 具 有 C++ RequestProcessingPolicy::USE_DEFAULT_SERVANT 或RequestProcessingPolicy.USE_DEFAULT_SERVANT, 则 POA 在 默 认 的 服 务 对象 上 调 用 适 当 的 方 法 。使 用 POA 7-33

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

Saved successfully!

Ooh no, something went wrong!