CORBA + JAVA
От: Аноним  
Дата: 28.08.07 11:20
Оценка:
Коллеги, есть такой вот код (http://pastebin.ca/673374)
при выполнении вылетает исключение
Exception in thread "main" org.omg.CORBA.TRANSIENT: Retries exceeded, couldn't reconnect to null vmcid: 0x0 minor code: 0 completed: No
at org.jacorb.orb.iiop.ClientIIOPConnection.connect(ClientIIOPConnection.java:232)
at org.jacorb.orb.giop.GIOPConnection.sendMessage(GIOPConnection.java:934)
at org.jacorb.orb.giop.GIOPConnection.sendRequest(GIOPConnection.java:900)
at org.jacorb.orb.giop.ClientConnection.sendRequest(ClientConnection.java:323)
at org.jacorb.orb.giop.ClientConnection.sendRequest(ClientConnection.java:304)
at org.jacorb.orb.Delegate.invoke_internal(Delegate.java:1024)
at org.jacorb.orb.Delegate.invoke(Delegate.java:939)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
at ttk_billing._InpeerStub.GetPeersCount(_InpeerStub.java:506)
at javacorba.Main.main(Main.java:93)
Java Result: 1
Погугли ничего подобного не нашёл((((
Ноги у проблемы ростут вот отсюда
nc.resolve(name)->Inherited->_delegate->connection = null
Кто-нибудь сталкивался????Подскажите варианты решения плиз
Re: CORBA + JAVA
От: C0s Россия  
Дата: 28.08.07 11:38
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Exception in thread "main" org.omg.CORBA.TRANSIENT: Retries exceeded, couldn't reconnect to null vmcid: 0x0 minor code: 0 completed: No


клиентская сторона смогла получить IOR и даже корректно его прикастить, но при первом вызове [at javacorba.Main.main(Main.java:93)] выявились проблемы сетевого взаимодействия
фактически, на стороне клиента нет информации — дошёл запрос до объекта-сервера или нет

А>Ноги у проблемы ростут вот отсюда

А>nc.resolve(name)->Inherited->_delegate->connection = null

откуда такая уверенность?
насколько я понимаю, naming service просто возвращает IOR — без установки соединения или проверки, что объект доступен со стороны клиента
в общем случае, клиент, получивший IOR, может не иметь даже доступа на хост с серверным объектом, но выявляется это, как правило, только при попытке первого обращения

реально я бы посоветовал:
1) убедиться, что серверный объект живёт и дышит
2) убедиться, что IOR, полученный из ns, соответствует этому объекту
3) взять в руки сниффер, чтобы потрейсить сетевую активность клиента
Re[2]: CORBA + JAVA
От: bitchiness_Rabbit  
Дата: 28.08.07 12:29
Оценка:
C0s>реально я бы посоветовал:
C0s>1) убедиться, что серверный объект живёт и дышит
C0s>2) убедиться, что IOR, полученный из ns, соответствует этому объекту
C0s>3) взять в руки сниффер, чтобы потрейсить сетевую активность клиента

Серверный объект живёт, тестил другой софтиной(тоже коннектится к этой корбе и выполняет те же функции)
Сниффер говорит следующее
No. Time Source Destination Protocol Info
5 7.377105 192.168.1.20 192.168.1.144 GIOP GIOP 1.0 Request 0 (two-way): _is_a

Frame 5 (189 bytes on wire, 189 bytes captured)
Ethernet II, Src: Asiarock_b1:7f:79 (00:13:8f:b1:7f:79), Dst: Giga-Byt_3b:2f:34 (00:0f:ea:3b:2f:34)
Internet Protocol, Src: 192.168.1.20 (192.168.1.20), Dst: 192.168.1.144 (192.168.1.144)
Transmission Control Protocol, Src Port: 2491 (2491), Dst Port: 2809 (2809), Seq: 1, Ack: 1, Len: 135
General Inter-ORB Protocol
Magic number: GIOP
Version: 1.0
Byte ordering: big-endian
Message type: Request
Message size: 123
General Inter-ORB Protocol Request
ServiceContextList
Sequence Length: 2
0000 0000 0000 0000 0000 0000 .... .... = VSCID: 0x00000000
.... .... .... .... .... .... 0000 0001 = SCID: 0x00000001
Service Context ID: CodeSets (1)
CodeSets
0000 0000 0100 1010 0100 0001 .... .... = VSCID: 0x00004a41
.... .... .... .... .... .... 0000 0001 = SCID: 0x00000001
Service Context ID: Unknown (1245790977)
context_data: ....
Request id: 0
Response expected: 1
Object Key length: 11
Object Key: 4E616D6553657276696365
Operation length: 6
Request operation: _is_a
Requesting Principal Length: 0
Type Id length: 43
Type Id: IDL:omg.org/CosNaming/NamingContextExt:1.0

No. Time Source Destination Protocol Info
7 7.377309 192.168.1.144 192.168.1.20 GIOP GIOP 1.0 Reply 0: No Exception

Frame 7 (79 bytes on wire, 79 bytes captured)
Ethernet II, Src: Giga-Byt_3b:2f:34 (00:0f:ea:3b:2f:34), Dst: Asiarock_b1:7f:79 (00:13:8f:b1:7f:79)
Internet Protocol, Src: 192.168.1.144 (192.168.1.144), Dst: 192.168.1.20 (192.168.1.20)
Transmission Control Protocol, Src Port: 2809 (2809), Dst Port: 2491 (2491), Seq: 1, Ack: 136, Len: 25
General Inter-ORB Protocol
Magic number: GIOP
Version: 1.0
Byte ordering: little-endian
Message type: Reply
Message size: 13
General Inter-ORB Protocol Reply
ServiceContextList
Sequence Length: 0
Request id: 0
Reply status: No Exception (0)
Type Id matched

No. Time Source Destination Protocol Info
8 7.399030 192.168.1.20 192.168.1.144 COSNAMING GIOP 1.0 Request 2 (two-way): resolve

Frame 8 (157 bytes on wire, 157 bytes captured)
Ethernet II, Src: Asiarock_b1:7f:79 (00:13:8f:b1:7f:79), Dst: Giga-Byt_3b:2f:34 (00:0f:ea:3b:2f:34)
Internet Protocol, Src: 192.168.1.20 (192.168.1.20), Dst: 192.168.1.144 (192.168.1.144)
Transmission Control Protocol, Src Port: 2491 (2491), Dst Port: 2809 (2809), Seq: 136, Ack: 26, Len: 103
General Inter-ORB Protocol
Magic number: GIOP
Version: 1.0
Byte ordering: big-endian
Message type: Request
Message size: 91
General Inter-ORB Protocol Request
ServiceContextList
Sequence Length: 0
Request id: 2
Response expected: 1
Object Key length: 11
Object Key: 4E616D6553657276696365
Operation length: 8
Request operation: resolve
Requesting Principal Length: 0
Cosnaming Dissector Using GIOP API
Seq length of n = 2
NameComponent_id (4) = ttk
NameComponent_kind (8) = billing
NameComponent_id (7) = inpeer
NameComponent_kind (7) = object

No. Time Source Destination Protocol Info
9 7.399277 192.168.1.144 192.168.1.20 GIOP GIOP 1.0 Reply 2: No Exception

Frame 9 (238 bytes on wire, 238 bytes captured)
Ethernet II, Src: Giga-Byt_3b:2f:34 (00:0f:ea:3b:2f:34), Dst: Asiarock_b1:7f:79 (00:13:8f:b1:7f:79)
Internet Protocol, Src: 192.168.1.144 (192.168.1.144), Dst: 192.168.1.20 (192.168.1.20)
Transmission Control Protocol, Src Port: 2809 (2809), Dst Port: 2491 (2491), Seq: 26, Ack: 239, Len: 184
General Inter-ORB Protocol
Magic number: GIOP
Version: 1.0
Byte ordering: little-endian
Message type: Reply
Message size: 172
General Inter-ORB Protocol Reply
ServiceContextList
Sequence Length: 0
Request id: 2
Reply status: No Exception (0)
IOR
String Length: 27
IOR::type_id: IDL:ttk_billing/Inpeer:1.0
Sequence Length: 1
Profile ID: TAG_INTERNET_IOP (0)
Sequence Length: 116
Endianess: Little Endian (1)
IIOP Major Version: 1
IIOP Minor Version: 2
String Length: 14
IIOP::Profile_host: 192.168.1.144
IIOP::Profile_port: 5556
Sequence Length: 14
Object Key: FEFE0BD44600001EDC0000000003
Sequence Length: 3
IIOP Component TAG: 0
Sequence Length: 8
component_data: .....TTA
IIOP Component TAG: 1
Sequence Length: 28
component_data: ............................
IIOP Component TAG: 20
Sequence Length: 8
component_data: ..`.`...

убедиться, что IOR, полученный из ns, соответствует этому объекту
Я честно говоря не знаю как это сделать
Re[3]: CORBA + JAVA
От: C0s Россия  
Дата: 28.08.07 12:49
Оценка:
Здравствуйте, bitchiness_Rabbit, Вы писали:

_R>Сниффер говорит следующее

_R>Frame 5 (189 bytes on wire, 189 bytes captured)
_R>Frame 7 (79 bytes on wire, 79 bytes captured)
_R>Frame 8 (157 bytes on wire, 157 bytes captured)
_R>Frame 9 (238 bytes on wire, 238 bytes captured)

эти фреймы не интересны, но полезны
они показывают, что сама по себе инфраструктура CORBA работает нормально — NameService доступен (192.168.1.144:2809) и вполне так себе отвечает на запросы

_R> IOR

_R> String Length: 27
_R> IOR::type_id: IDL:ttk_billing/Inpeer:1.0
_R> <...>
_R> IIOP::Profile_host: 192.168.1.144
_R> IIOP::Profile_port: 5556
_R> <...>

вот в 9-м фрейме NS ответил IOR'ом, в частности, как я понимаю, в IOR'е написано, что POA живёт на 192.168.1.144:5556 [надо, конечно, признанться, что я уже давно с такими вещами не работал ]
на этот порт телнет проходит с хоста 192.168.1.20?

_R>убедиться, что IOR, полученный из ns, соответствует этому объекту

_R>Я честно говоря не знаю как это сделать

объект развёрнут в одном экзмепляре? (в смысле, есть ли round-robin по разным POA или нет)
наверное, надо попытаться посниффать, как тестовая софтина обращается к этому объекту. там будет видно, тот ли IIOP:profile будет и проч.

потом, по сниффу активности неработающего алгоритма надо проанализировать, что было дальше — он пытался законнектиться на 192.168.1.144:5556 (или ещё куда-нибудь)?
Re[4]: CORBA + JAVA
От: bitchiness_Rabbit  
Дата: 28.08.07 13:42
Оценка:
Здравствуйте, C0s
Телнет проходит с хоста.
Объект развёрнут в 1 экземпляре.
Снифф из тестовой софтины:
No. Time Source Destination Protocol Info
9 7.399277 192.168.1.144 192.168.1.20 GIOP GIOP 1.0 Reply 2: No Exception

Frame 9 (238 bytes on wire, 238 bytes captured)
Ethernet II, Src: Giga-Byt_3b:2f:34 (00:0f:ea:3b:2f:34), Dst: Asiarock_b1:7f:79 (00:13:8f:b1:7f:79)
Internet Protocol, Src: 192.168.1.144 (192.168.1.144), Dst: 192.168.1.20 (192.168.1.20)
Transmission Control Protocol, Src Port: 2809 (2809), Dst Port: 2491 (2491), Seq: 26, Ack: 239, Len: 184
General Inter-ORB Protocol
Magic number: GIOP
Version: 1.0
Byte ordering: little-endian
Message type: Reply
Message size: 172
General Inter-ORB Protocol Reply
ServiceContextList
Sequence Length: 0
Request id: 2
Reply status: No Exception (0)
IOR
String Length: 27
IOR::type_id: IDL:ttk_billing/Inpeer:1.0
Sequence Length: 1
Profile ID: TAG_INTERNET_IOP (0)
Sequence Length: 116
Endianess: Little Endian (1)
IIOP Major Version: 1
IIOP Minor Version: 2
String Length: 14
IIOP::Profile_host: 192.168.1.144
IIOP::Profile_port: 5556
Sequence Length: 14
Object Key: FEFE0BD44600001EDC0000000003
Sequence Length: 3
IIOP Component TAG: 0
Sequence Length: 8
component_data: .....TTA
IIOP Component TAG: 1
Sequence Length: 28
component_data: ............................
IIOP Component TAG: 20
Sequence Length: 8
component_data: ..`.`...

А неработающий алгоритм не пытался не чего сделать после последнего фрейма
Всё таки дело наверное в получении объекта....
Пытался подставить делегат из друго объекта, получаемого при получении сервиса имён, так вот он пытается запросить выполнение функции, но из орб сервера возвращается эксепшн.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.