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.

激 活 对 象// 用 myPOA 上 的 ID 激 活 服 务 对 象myPOA->activate_object_with_id(managerId,&managerServant);// 激 活 POA 管 理 器PortableServer::POAManager_var rootManager = rootPOA->the_POAManager();rootManger->activate();以 下 的 代 码 示 例 示 范 在 Java 下 使 用 activate_object_with_id 完 成 的 显 式 激 活// 创 建 帐 户 管 理 器 服 务 对 象 。Servant managerServant = new AccountManagerImpl(rootPoa);// 激 活 新 创 建 的 服 务 对 象 。testPoa.activate_object_with_id("BankManager".getBytes(), managerServant);// 激 活 POAtestPoa.the_POAManager().activate();随 选 激 活 对 象随 选 激 活 发 生 在 客 户 请 求 一 个 没 有 关 联 的 服 务 对 象 的 对 象 过 程 中 。 在 收 到 请 求 之后 , POA 在 活 动 对 象 图 上 搜 索 与 对 象 ID 相 关 联 的 活 动 服 务 对 象 。 如 果 找 不 到 ,则 POA 调 用 服 务 对 象 管 理 器 上 的 incarnate 方 法 , 该 方 法 将 ID 值 传 递 给 服 务 对象 管 理 器 。 服 务 管 理 器 可 以 做 以 下 三 件 事 之 一 :● 找 到 适 当 的 服 务 对 象 , 使 其 随 后 可 以 为 请 求 执 行 相 应 的 操 作 。● 掷 出 返 回 给 客 户 的 OBJECT_NOT_EXIST 违 例C++:Java:● 将 请 求 前 转 到 另 外 一 个 对 象POA 策 略 决 定 任 何 可 能 发 生 的 额 外 步 骤 。 以 下 是 在 Java 和 C++ 下 的 示 例 :如 果 启 用 RequestProcessingPolicy::USE_SERVANT_MANAGER 和ServantRetentionPolicy::RETAIN, 则 使 用 服 务 对 象 ID 和 ID 关 联 来 更 新 活 动对 象 图 。如 果 开 启 RequestProcessingPolicy.USE_SERVANT_MANAGER 和ServantRetentionPolicy.RETAIN, 则 使 用 服 务 对 象 和 对 象 ID 更 新 活 动 对 象 图 。以 下 所 示 为 随 选 激 活 的 一 个 实 例 。隐 式 激 活 对 象C++:如 果 POA 是 使 用 ImplicitActivationPolicy::IMPLICIT_ACTIVATION、IdAssignmentPolicy::SYSTEM_ID 和 ServantRetentionPolicy::RETAIN 创 建 的 , 则可 以 通 过 特 定 的 操 作 来 隐 式 激 活 服 务 对 象 。 隐 式 调 用 出 现 在 以 下 函 数 调 用 过 程 中● POA::servant_to_reference 成 员 函 数● POA::servant_to_id 成 员 函 数● _this() 服 务 对 象 成 员 函 数如 果 POA 已 设 定 了 ObjectIdUniquenessPolicy::UNIQUE_ID , 则 当 在 一 个 不 活 动服 务 对 象 上 执 行 以 上 操 作 时 , 会 出 现 隐 式 激 活 。使 用 POA 7-9

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

Saved successfully!

Ooh no, something went wrong!