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.

使 用 服 务 对 象 和 服 务 对 象 管 理 器System.out.println("\nAccountManagerActivator.etherealize called with ID =" + new String(oid) + "\n");System.gc();}}class DeactivateThread extends Thread {byte[] _oid;POA _adapter;public DeactivateThread(byte[] oid, POA adapter) {_oid = oid;_adapter = adapter;}public void run() {try {Thread.currentThread().sleep(15000);System.out.println("\nDeactivating the object with ID = " +ServantLocators在 很 多 情 况 下 , POA 的 活 动 对 象 图 可 能 会 变 得 非 常 大 , 因 而 占 用 相 当 大 的 内 存 。要 减 少 内 存 的 消 耗 , 可 以 使 用 C++RequestProcessingPolicy::USE_SERVANT_MANAGER 和ServantRetentionPolicy::.NON_RETAIN 或 JavaRequestProcessingPolicy.USE_SERVANT_MANAGER 和ServantRetentionPolicy.NON_RETAIN 来 创 建 POA, 这 意 味 着 , 服 务 对 象 到 对 象 的关 联 不 存 储 在 活 动 对 象 图 中 。 因 为 未 存 储 任 何 关 联 , 所 以 要 为 个 请 求 调 用ServantLocator 服 务 对 象 管 理 器 。在 使 用 服 务 对 象 定 位 器 处 理 请 求 的 过 程 中 , 会 出 现 以 下 事 件 :1 收 到 客 户 请 求 , 其 中 包 含 POA 名 和 对 象 ID。2 由 于 使 用 了 C++ ServantRetentionPolicy::NON_RETAIN 或 JavaServantRetentionPolicy.NON_RETAIN , 所 以 POA 不 在 活 动 对 象 图 中 搜 索 对 象ID。3 POA 在 服 务 对 象 管 理 器 上 调 用 preinvoke 。 preinvoke 传 递 对 象 ID、 激 活 对 象时 其 所 处 的 POA、 及 其 它 几 个 参 数 。4 服 务 对 象 定 位 器 定 位 相 应 的 服 务 对 象 。5 该 操 作 在 服 务 对 象 上 执 行 , 而 响 应 被 返 回 给 客 户 。6 POA 在 服 务 管 理 器 上 调 用 postinvoke。注 : preinvoke 和 postinvoke 方 法 是 用 户 提 供 的 代 码 。C++: int main(int argc, char* const* argv) {try {// 初 始 化 ORB。CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv);// 数 据 源7-20 <strong>VisiBroker</strong> 开 发 者 指 南

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

Saved successfully!

Ooh no, something went wrong!