Какво да имате предвид при CORBA.TRANSIENT: начален и препратен IOR недостъпен vmcid: второстепенен код на IBM: грешка E07

BLUF: Изключение, което получих при опит да свържа самостоятелен клиент към кеша на Extreme Scale, намиращ се в WebSphere, беше донякъде подвеждащо, така че предоставих решението тук.

Успешно инсталирах WebSphere Extreme Scale (WXS) v8.5 в WebSphere Application Server (WAS) v8.5 (забележка: не се опитвайте да го направите едновременно в Installation Manager или файловете ще липсват - инсталирайте ги отделно). Също така успях да инсталирам както клиент, така и сървър EAR, за да мога да използвам REST услуги за клиента, който от своя страна ще се свърже със сървъра за достъп до кеша. Въпреки това, когато се опитах да стартирам самостоятелен клиент от командния ред на java (или от рамките на Eclipse), получавах изключения като:

java.lang.Throwable: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible  vmcid: IBM  minor code: E07  completed: No
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1272)
...
Caused by: java.lang.Throwable: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381)

при извикване на връзка на ObjectGridManager:

_client = _ogManager.connect(hostport, null, clientObjectGridURL);

Първото нещо, което трябва да проверите, е дали номерата на хоста и порта са правилни във файла objectGridClient.properties (напр. номерът на порта ще съвпада с порта на BOOTSTRAP в списъка с портове на сървъра за приложения). В моя случай това беше правилно. Използване на netstat -an |grep, за да видите дали има някой, който слуша порта, или telnet към хост порта.

Следващото нещо, което трябва да проверите, е дали защитните стени не пречат на връзката към порта. Има и обратно извикване към клиента от сървъра, така че бихте искали да проверите дали това не създава проблем. В моя случай това не беше проблем.


person Nathaniel Mills    schedule 05.11.2012    source източник


Отговори (2)


Това, което се оказа проблемът, беше, че бях конфигурирал WAS с включена обща защита, така че администраторската конзола изискваше потребителско име и парола. Въпреки това, когато направих повикване за свързване на ObjectGridManager, предавах нула като втори параметър, вместо да подавам правилния обект ClientSecurityConfiguration. Очевидно, ако сте защитили WAS, тогава външни клиенти, които се опитват да се свържат с кеша, поместен в WAS, трябва да предоставят информация за сигурност, за да потвърдят, че им е разрешено да се свързват.

Избрах да изключа защитата на WAS с помощта на конзолата за администриране / Сигурност / Глобална сигурност и премахване на отметката от Активиране на административна защита. Това ми позволи да продължа тестването чрез предаване на нула и да отложа включването на защитата и добавянето на подходящите настройки за конфигурация на защитата и предоставянето на правилния обект в повикването за свързване, докато не сме готови да тестваме в споделена среда (моята среда за разработка беше самостоятелна на моя лаптоп, който не беше свързан към обществена мрежа).

Включих това обяснение с надеждата, че други, които търсят решение на този проблем, могат да го намерят тук, тъй като не успях да намеря обяснение за тази алтернатива.

person Nathaniel Mills    schedule 05.11.2012

Винаги проверявайте отново дали вашите класове мъничета наистина са на място и са налични в разгръщането. Звучи лесно, но това беше проблемът, който имах...

Така че причините за тази грешка могат да бъдат различни.

person Peter Wippermann    schedule 11.07.2013