Имам COM сървър извън proc (базиран на ATL) и Java приложение, което инстанцира обекти от този COM сървър на същата машина.
Какво повече е необходимо, за да го активира DCOM? Необходима ли е работа само върху COM сървъра или сървъра и клиента?
Имам COM сървър извън proc (базиран на ATL) и Java приложение, което инстанцира обекти от този COM сървър на същата машина.
Какво повече е необходимо, за да го активира DCOM? Необходима ли е работа само върху COM сървъра или сървъра и клиента?
Обикновено всичко, от което се нуждаете, е да имате регистриран прокси интерфейс от страна на клиента (както и от страна на сървъра) чрез regsvr32. Ако всичките ви ATL обекти са базирани на IDispatch и така ги наричате (не чрез потребителски интерфейс), тогава проксито по подразбиране вече е регистрирано на машини с Windows.
В този момент трябва само да посочите името на машината на сървъра, където се намират действителните обекти.
Както при всяко DCOM отдалечено управление, може да имате проблеми с DCOM разрешенията от клиента към сървъра, които обикновено могат да бъдат решени с помощта на DCOMCnfg от страната на сървъра (Вероятно и от клиента, ако се използват обратни извиквания). И, разбира се, потенциални проблеми със защитната стена - може да се наложи да разрешите изключение за порт 135 (RPC Mapper, използван от DCOM), за да премине през сървъра.
Знам, че това не е директен отговор, но не мога да не си помисля, че може би DCOM вече не е правилното решение. Вместо това можете да обвиете функционалността на COM обекта в WCF уеб услуга, която може лесно да бъде извикана от Java или C# или друго. Моля, обмислете тази алтернатива.