Thanks for Your answers,
Unfortunately I can not migrate server to TAO because it is not mine,
I just wrote simple server to reproduce the problem.
Below are some debug outputs, maybe You will be able to find something
interesting there.
I found out that GIOP messages sent by TAO server and VB server have
differences, but I have not idea how to alleviate them.
Thanks
Tomek
DEBUG OUTPUT:
TAO (24617|1) - Did not find default svc.conf
TAO (24617|1) - Completed initializing the process-wide service
context
TAO (24617|1) - Default ORB services initialization begins
TAO (24617|1) - Default ORB services initialization completed
TAO (24617|1) - We are the default ORB ...
TAO (24617|1) - Initializing the orb-specific services
TAO (24617|1) - ORBInitializer_Registry::register_orb_initializer 0
@a7cd8
TAO (24617|1) - Default_Resource_Factory - codeset manager=a46d8
TAO (24617|1) - Codeset_Manager_i::init_ccs, Loaded Codeset translator
<UTF8_Latin1_Factory>, ncs = 00010001 tcs = 05010001
TAO (24617|1) - UTF16_BOM_Translator: forceBE 0
TAO (24617|1) - Loaded default protocol <IIOP_Factory>
TAO (24617|1) - Created new ORB <>
TAO (24617|1) - TAO_Connector_Registry::create_profile: Unknown
profile tag 0x56495301
calling getAny
TAO (24617|1) - Invocation_Adapter::invoke_i, making a
TAO_CS_REMOTE_STRATEGY invocation
TAO (24617|1) - Transport_Cache_Manager_T::fill_set_i, current_size =
0, cache_maximum = 128
TAO (24617|1) - Transport_Cache_Manager_T::purge, Cache size after
purging is [0]
TAO (24617|1) - IIOP_Connector::begin_connection, to <
127.0.0.1:60818>
which should block
TAO (24617|1) - TAO_LF_CH_Event[0]::state_changed_i, state LFS_IDLE-
>LFS_CONNECTION_WAIT
TAO (24617|1) -
IIOP_Connection_Handler[677000]::IIOP_Connection_Handler, this=a4c98
TAO (24617|1) - Transport_Connector::wait_for_connection_completion,
transport [677000], Connection not complete.
TAO (24617|1) - Cache_IntId_T::Cache_IntId_T, this=ffbfd720
Transport[677000] is not connected
TAO (24617|1) - Cache_IntId_T::recycle_state, ENTRY_UNKNOWN-
>ENTRY_CONNECTING Transport[677000] IntId=ffbfd720
TAO (24617|1) - Transport_Cache_Manager_T::bind_i, Transport[677000] @
hash:index{2130767251:0}
TAO (24617|1) - Transport_Cache_Manager_T::bind_i: Success
Transport[677000] @ hash:index{2130767251:0}. Cache size is [1]
TAO (24617|1) - Transport_Connector::wait_for_connection_completion,
going to wait for connection completion on transport[677000]
TAO (24617|1) - Leader_Follower[677000]::wait_for_event, (leader)
enter reactor event loop
TAO (24617|1) - IIOP_Connection_Handler::open, The local addr is
<
127.0.0.1:38588>
TAO (24617|1) - IIOP_Connection_Handler::open, IIOP connection to peer
<
127.0.0.1:60818> on 5
TAO (24617|1) - Transport::post_open, tport id changed from 677000 to
5
TAO (24617|1) - Transport_Cache_Manager_T::mark_connected, true
Transport[5]
TAO (24617|1) - Cache_IntId_T::recycle_state, ENTRY_CONNECTING-
>ENTRY_IDLE_AND_PURGABLE Transport[5] IntId=9d94c
TAO (24617|1) - TAO_LF_CH_Event[5]::state_changed_i, state
LFS_CONNECTION_WAIT->LFS_SUCCESS
TAO (24617|1) - Leader_Follower[677000]::wait_for_event, (leader) exit
reactor event loop
TAO (24617|1) - Transport_Connector::wait_for_connection_completion,
transport [5], wait done result = 1
TAO (24617|1) - IIOP_Connector::make_connection, new connected
connection to <
127.0.0.1:60818> on Transport[5]
TAO (24617|1) - Transport[5]::register_handler
TAO (24617|1) - Transport[5]::register_handler - registering event
handler with reactor
TAO (24617|1) - Transport_Connector::connect, opening Transport[5] in
TAO_CLIENT_ROLE
TAO (24617|1) - Transport_Cache_Manager_T::is_entry_available_i[5],
true, state is ENTRY_IDLE_AND_PURGABLE
TAO (24617|1) - Cache_IntId_T::recycle_state, ENTRY_IDLE_AND_PURGABLE-
>ENTRY_BUSY Transport[5] IntId=9d94c
TAO (24617|1) - Transport_Cache_Manager_T::find_i, Found available
Transport[5] @hash:index {2130767251:0}
TAO (24617|1) - Transport_Connector::connect, got an existing
connected Transport[5] in role TAO_CLIENT_ROLE
TAO (24617|1) - Codeset_Manager_i::set_tcs, setting char translator
(00010001)
TAO (24617|1) - Codeset_Manager_i::set_tcs, setting wchar translator
(00010109)
TAO (24617|1) - Muxed_TMS[5]::request_id, <1>
TAO (24617|1) - Codeset_Manager_i::generate_service_context, using
tcs_c <ISO8859_1> (00010001), tcs_w <UTF-16> (00010109)
TAO (24617|1) - GIOP_Message_Base::dump_msg, send GIOP message v1.2,
84 data bytes, my endian, Type Request[1]
GIOP message - HEXDUMP 96 bytes
47 49 4f 50 01 02 00 00 00 00 00 54 00 00 00 01 GIOP.......T....
03 00 00 00 00 00 00 00 00 00 00 1c 00 56 42 01 .............VB.
00 00 00 02 2f 00 20 20 00 00 00 01 30 20 20 20 ..../. ....0
4f 3b 63 39 00 01 85 bf 00 00 00 07 67 65 74 41 O;c9........getA
6e 79 00 00 00 00 00 01 00 00 00 01 00 00 00 0c ny..............
00 00 00 00 00 01 00 01 00 01 01 09 00 00 00 00 ................
TAO (24617|1) - Transport[5]::drain_queue_helper, sending 1 buffers
TAO (24617|1) - Transport[5]::drain_queue_helper, buffer 0/1 has 96
bytes
TAO - Transport[5]::drain_queue_helper (0/96) - HEXDUMP 96 bytes
47 49 4f 50 01 02 00 00 00 00 00 54 00 00 00 01 GIOP.......T....
03 00 00 00 00 00 00 00 00 00 00 1c 00 56 42 01 .............VB.
00 00 00 02 2f 00 20 20 00 00 00 01 30 20 20 20 ..../. ....0
4f 3b 63 39 00 01 85 bf 00 00 00 07 67 65 74 41 O;c9........getA
6e 79 00 00 00 00 00 01 00 00 00 01 00 00 00 0c ny..............
00 00 00 00 00 01 00 01 00 01 01 09 00 00 00 00 ................
TAO (24617|1) - Transport[5]::drain_queue_helper, end of data
TAO (24617|1) - Transport[5]::cleanup_queue, byte_count = 96
TAO (24617|1) - Transport[5]::cleanup_queue, after transfer, bc = 0,
all_sent = 1, ml = 0
TAO (24617|1) - Transport[5]::drain_queue_helper, byte_count = 96,
head_is_empty = 1
TAO (24617|1) - Transport[5]::drain_queue_i, helper retval = 1
TAO (24617|1) - Transport[5]::make_idle
TAO (24617|1) - Cache_IntId_T::recycle_state, ENTRY_BUSY-
>ENTRY_IDLE_AND_PURGABLE Transport[5] IntId=9d94c
TAO (24617|1) - Leader_Follower[5]::wait_for_event, (leader) enter
reactor event loop
TAO (24617|1) - Connection_Handler[5]::handle_input_internal, handle =
5/5
TAO (24617|1) - Transport[5]::handle_input
TAO (24617|1) - Transport[5]::process_queue_head, 0 enqueued
TAO (24617|1) - Transport[5]::handle_input_parse_data, enter
TAO (24617|1) - Transport[5]::handle_input_parse_data, read 240 bytes
TAO (24617|1) - GIOP_Message_State::parse_message_header_i
TAO (24617|1) - GIOP_Message_State::get_version_info
TAO (24617|1) - GIOP_Message_State::get_byte_order_info
TAO (24617|1) - Transport[5]::process_parsed_messages, entering
(missing data == 0)
TAO (24617|1) - GIOP_Message_Base::dump_msg, Transport[5] recv GIOP
message v1.2, 232 data bytes, my endian, Type Reply[1]
GIOP message - HEXDUMP 244 bytes
47 49 4f 50 01 02 00 01 00 00 00 e4 00 00 00 01 GIOP............
00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 cc ................
00 20 20 20 00 00 00 1e 49 44 4c 3a 4d 61 72 73 . ....IDL:Mars
68 61 6c 54 65 73 74 2f 4e 56 53 4c 69 73 74 5f halTest/NVSList_
54 3a 31 2e 30 00 20 20 00 00 00 0a 4e 56 53 4c T:1.0. ....NVSL
69 73 74 5f 54 00 20 20 00 00 00 13 00 00 00 8c ist_T. ........
00 20 20 20 00 00 00 0f 00 00 00 7c 00 20 20 20 . .......|.
00 00 00 29 49 44 4c 3a 4d 61 72 73 68 61 6c 54 ...)IDL:MarshalT
65 73 74 2f 4e 61 6d 65 41 6e 64 53 74 72 69 6e est/NameAndStrin
67 56 61 6c 75 65 5f 54 3a 31 2e 30 00 20 20 20 gValue_T:1.0.
00 00 00 15 4e 61 6d 65 41 6e 64 53 74 72 69 6e ....NameAndStrin
67 56 61 6c 75 65 5f 54 00 20 20 20 00 00 00 02 gValue_T. ....
00 00 00 05 6e 61 6d 65 00 20 20 20 00 00 00 12 ....name. ....
00 00 00 00 00 00 00 06 76 61 6c 75 65 00 20 20 ........value.
ff ff ff ff ff ff ff e8 00 00 00 00 00 00 00 00 ................
00 00 00 00 ....
TAO (24617|1) - TAO_Muxed_TMS::dispatch_reply, id = 1
TAO (24617|1) - Connection_Handler[5]::handle_input_internal, handle =
5/5, retval = 0
TAO (24617|1) - Leader_Follower[5]::wait_for_event, (leader) exit
reactor event loop
CORBA::ORB::destroy() called on ORB <>.
TAO (24617|1) - Connection_Handler[5]::close_connection_eh, purging
entry from cache
TAO (24617|1) - Transport[5]::pre_close
TAO (24617|1) - Transport[5]::purge_entry, entry is 0
TAO (24617|1) - Transport[5]::cleanup_queue_i, cleaning up complete
queue
TAO (24617|1) - Transport[5]::cleanup_queue_i, discarded 0 messages, 0
bytes.
TAO (24617|1) - Connection_Handler[5]::close_connection_eh, removing
from the reactor
TAO (24617|1) - Connection_Handler[5]::close_connection_eh, cancel all
timers
TAO (24617|1) - Transport[5]::cleanup_queue_i, cleaning up complete
queue
TAO (24617|1) - Transport[5]::cleanup_queue_i, discarded 0 messages, 0
bytes.
TAO (24617|1) - TAO_LF_CH_Event[5]::state_changed_i, state LFS_SUCCESS-
>LFS_CONNECTION_CLOSED
TAO (24617|1) - Connection_Handler[5]::close_connection_eh end
TAO (24617|1) - IIOP_Connection_Handler[5]::~IIOP_Connection_Handler,
this=a4c98, transport=a5488
TAO (24617|1) - Transport[5]::~Transport
TAO (24617|1) - Transport[5]::cleanup_queue_i, cleaning up complete
queue
TAO (24617|1) - Transport[5]::cleanup_queue_i, discarded 0 messages, 0
bytes.
TAO (24617|1) - ORBInitializer_Registry::fini clearing 0 @a7cd8
TRUSS OPUTPUT - what was received on socket:
24622: T A O ( 2 4 6 2 2 | 1 ) - T r a n s p o r t [ 5 ] : :
h a
24622: n d l e _ i n p u t _ p a r s e _ d a t a , e n t e r\n
24622: lwp_sigmask(SIG_SETMASK, 0x00000000, 0x00000000, 0x00000000,
0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
24622: read(5, 0xFFBFCFF0, 1028) = 240
24622: G I O
P0102\001\0\0\0E4\0\0\001\0\0\0\0\0\0\0\0\0\0\015\0\0\0CC
24622: \0 \0\0\01E I D L : M a r s h a l T e s t / N V S L i s
t _
24622: T : 1 . 0\0 \0\0\0\n N V S L i s t _ T\0
\0\0\013\0\0\08C
24622: \0 \0\0\00F\0\0\0 |\0 \0\0\0 ) I D L : M a r s h a
l T
24622: e s t / N a m e A n d S t r i n g V a l u e _ T : 1 . 0\0
24622: \0\0\015 N a m e A n d S t r i n g V a l u e _ T\0
\0\0\002
24622: \0\0\005 n a m e\0 \0\0\012\0\0\0\0\0\0\006 v a l u e\0
24622: FFFFFFFFFFFFFFE8\0\0\0\0\0\0\0\0
24622: lwp_sigmask(SIG_SETMASK, 0xFFBFFEFF, 0xFFFFFFF7, 0x000000FF,
0x00000000) = 0xFFBFFEFF [0xFFFFFFFF]
24622: brk(0x000BBEF0) = 0
24622: brk(0x000BDEF0) = 0
TAO (24622|1) - Transport[5]::handle_input_parse_data, read 240 bytes
24622: write(2, 0x000BB498, 70) = 70
24622: T A O ( 2 4 6 2 2 | 1 ) - T r a n s p o r t [ 5 ] : :
h a
24622: n d l e _ i n p u t _ p a r s e _ d a t a , r e a d 2 4
0
24622: b y t e s\n
I also made the same test with TAO server and the receoved GIOP
message is little bit different:
GIOP message - HEXDUMP 244 bytes
47 49 4f 50 01 02 00 01 00 00 00 e4 00 00 00 01 GIOP............
00 00 00 00 00 00 00 00 00 00 00 15 00 00 00 cc ................
00 00 00 00 00 00 00 1e 49 44 4c 3a 4d 61 72 73 ........IDL:Mars
68 61 6c 54 65 73 74 2f 4e 56 53 4c 69 73 74 5f halTest/NVSList_
54 3a 31 2e 30 00 00 00 00 00 00 0a 4e 56 53 4c T:1.0.......NVSL
69 73 74 5f 54 00 00 00 00 00 00 13 00 00 00 8c ist_T...........
00 00 00 00 00 00 00 0f 00 00 00 7c 00 00 00 00 ...........|....
00 00 00 29 49 44 4c 3a 4d 61 72 73 68 61 6c 54 ...)IDL:MarshalT
65 73 74 2f 4e 61 6d 65 41 6e 64 53 74 72 69 6e est/NameAndStrin
67 56 61 6c 75 65 5f 54 3a 31 2e 30 00 00 00 00 gValue_T:1.0....
00 00 00 15 4e 61 6d 65 41 6e 64 53 74 72 69 6e ....NameAndStrin
67 56 61 6c 75 65 5f 54 00 00 00 00 00 00 00 02 gValue_T........
00 00 00 05 6e 61 6d 65 00 00 00 00 00 00 00 12 ....name........
00 00 00 00 00 00 00 06 76 61 6c 75 65 00 00 00 ........value...
00 00 00 12 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00