н клієнт за наявними у нього об'єктним посиланнях не може отримати доступ до CORBA-об'єкту. p align="justify"> Розглянемо, що відбувається у випадку тимчасового об'єкта, створеного раніше за допомогою виклику методу _this (). Об'єктна посилання на цей об'єкт, передана клієнту через файл, містить у собі ім'я хоста, на якому було запущено створило об'єкт додаток, використаний порт TCP/IP, унікальний ідентифікатор об'єкта і унікальний. Це означає, що клієнт може використовувати наявну у нього об'єктну посилання тільки доти, поки серверний додаток запущено і в ньому В«живеВ» створив об'єкт об'єктний адаптер. p align="justify"> При зупинці і подальшому запуску цього ж додатка на тому ж комп'ютері буде створено новий CORBA-об'єкт - його власний ідентифікатор і ідентифікатор його POA будуть відрізнятися від тих, дані для яких знаходяться в В«старійВ» об'єктної посиланням. Це означає, що по ній отримати доступ до В«старогоВ» об'єкту в принципі неможливо. У цьому випадку і кажуть, що CORBA-об'єкт більше не існує. Клієнт може В«викинутиВ» наявну у нього об'єктну посилання - вона більше ніколи не знадобиться. p align="justify"> У разі використання довгоживучих об'єктів справа йде складніше. Навіть якщо об'єкт створений за допомогою POA, який призначений для створення і управління persistent-об'єктами, це не означає, що після зупинки серверного додатку клієнт зможе викликати віддалені методи за наявною у нього об'єктної посиланням. У простому випадку, жодних проблем не буде, якщо серверний додаток знову запущено В«вручнуВ» на тому ж хості і з використанням того ж порту TCP/IP. br/>
Властивості POA
Можливість явної вказівки того, чи є CORBA-об'єкт тимчасовим або довгоживучим - це тільки одна з стандартних можливостей POA. Визначається вона таким чином:
module PortableServer
{
enum LifeSpanPolicyValue {TRANSIENT, PERSISTENT};
interface LifeSpanPolicy: CORBA :: Policy
{attribute LifeSpanPolicyValue;
};
Ось список всіх інших:
Режим управління завданням ідентифікатора об'єкта (IdAssignmentPolicyValue). Можливі значення - USER_ID або SYSTEM_ID. У першому випадку ідентифікатор об'єкта задає сам користувач, у другому - він автоматично генерується POA. p align="justify"> Режим підтримки одним сервантом декількох CORBA-об'єктів (IdUniquenessPolicyValue). Можливі значення - UNIQUE_ID (один сервант є інкарнацією тільки одного CORBA-об'єкта) і MULTIPLE_ID (один сервант може обслуговувати кілька об'єктів). p align="justify"> Режим дозволу неявній активації (ImplicitActivationPolicyValue). Можливі значення - IMPLICIT_ACTIVATION (неявне створення CORBA-об'єкта, наприклад, за допомогою _this (), дозволено) і ...