OOS: Komentáøe k JacORBu

  1. Jak jste mìli mo¾nost si v¹imnout na cvièení, JacORB 2.2 mìl problém s nastavováním nìkterých properties - zejména reference na Naming Service.

    To bylo zpùsobené chybou v JacORBu - properties z pøíkazové øádky nemìly pøednost pøed properties ze souboru, aèkoliv dokumentace øíká, ¾e pøednost mají.

    Tuto chybu jsem opravil, ve va¹í distribuci je spravená. V CVS verzi JacORBu je tato chyba takté¾ ji¾ opravená, ale v releasu 2.2 bohu¾el nikoliv.

    Tedy doporuèuji pou¾ívat verzi z distribuce, kterou jsem pro vás pøipravil (Win32, POSIX). Verze 2.2 dostupná ke sta¾ení na stránkách JacORBu ji bohu¾el spravenou nemá.

  2. Na cvièeních jsem vás upozoròoval je¹tì na jeden problém JacORBu - ¾e je potøeba nastavovat property jacorb.implname na rùznou hodnotu pro jednotlivé instance serveru (jednotlivé procesy, instance JVM). Tento problém jsem v distribuci OOS 2005 také odstranil. Jeho øe¹ení se budu sna¾it prosadit autorùm JacORBu, aby bylo zahrnuté v pøí¹tím release. Pokud budete pou¾ívat OOS 2005 distribuci, nemusíte se tímto problémem dále zabývat. Pokud vás to ze zvìdavosti zajímá (a nebo napøíklad chcete nìkde pou¾ívat pùvodní distribuci JacORBu, mù¾ete se zde doèíst více. (Technicky nejúplnìj¹í zdroj k tomuto problému je jeho popis v bugzille JacORBu - Bug#473.

    Problém s JacORBem:

    Pokud pou¾íváte v JacORBu PERSISTENT policy, je potøeba v ka¾dém procesu (JVM) nastavit property jacorb.implname na jinou hodnotu. Defaultnì má ve v¹ech procesech hodnotu stejnou, a to "StandardImplName".

    Pokud má stejnou hodnotu, mù¾e se stát, ¾e JacORB bude pova¾ovat nìjakou referenci za lokální a bude doruèovat nìkterá volání lokálnì, pøesto¾e IOR obsahuje jiné èíslo portu a IP adresu. To se projeví pouze exception:
    org.omg.CORBA.OBJECT_NOT_EXIST: no adapter activator exists for roomsPOA

    pokud POA se stejným jménem v daném procesu neexistuje, a doruèením na ¹patné POA (exception OBJECT_NOT_EXIST nebo doruèení ¹patnému objektu) pokud takový POA existuje.

    Pokud pou¾íváte POA s PERSISTENT policy a objevují se vám tyto problémy, zmìòte hodnotu property jacorb.implname.

    Dodatek k problému s JacORBem

    1. Popisovaný problém nastává nezávisle na tom, zda pou¾íváte persistentní reference.
    2. Je tedy v¾dy potøeba mít v ka¾dém procesu jinou hodnotu property jacorb.implname - viz. JacORB Programming Guide pp. 25:

      Persistent servers should set this to a unique name.

      (nedejte se zmást oznaèením "Persistent servers", je to potøeba v¹ude)

    3. Tento problém je nyni Bug#473 v bugzille JacORBu.
  3. Transaction Service
    Pro spou¹tìní aplikaci vyu¾ívající implicit transaction context propagation potøebujete nastavit property org.omg.PortableInterceptor.ORBInitializerClass.TSInit=org.jacorb.transaction.TransactionInitializer

    Napøíklad toho mù¾ete dosáhnout pou¾íváním jacots místo jaco (shell script a .bat file viz ní¾e).


Zpìt na stránku cvièení OOS.