<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Remote call hangs</TITLE>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2802" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><FONT face=Arial color=#0000ff 
size=2></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
  <DIV></DIV><!-- Converted from text/rtf format -->
  <P><SPAN lang=de><FONT face=Arial size=2>Hi,</FONT></SPAN> </P>
  <P><SPAN lang=de><FONT face=Arial size=2>I have a server written in python and 
  running on Linux. The C++ client (running on Linux too) is doing 
  a</FONT></SPAN> <BR><SPAN lang=de><FONT face=Arial size=2>remote call which 
  transfers an object to the server. Normally this is working, but in one 
  special case</FONT></SPAN> <BR><SPAN lang=de><FONT face=Arial size=2>resp. for 
  one special object the remote call on client side hangs and the corresponding 
  method on server side is not</FONT></SPAN> <BR><SPAN lang=de><FONT face=Arial 
  size=2>called. In the omniORB trace I can see that in this case the server 
  sends the following giop message to the client</FONT></SPAN> <BR><SPAN 
  lang=de><FONT face=Arial size=2>after receiving the giop message representing 
  the remote call:</FONT></SPAN> </P>
  <P><SPAN lang=de><FONT face="Arial monospaced for SAP" size=2>omniORB: 
  sendChunk: to giop:tcp:127.0.0.1:13302 68 bytes</FONT></SPAN> <BR><SPAN 
  lang=de><FONT face="Arial monospaced for SAP" size=2>omniORB:</FONT></SPAN> 
  <BR><SPAN lang=de><FONT face="Arial monospaced for SAP" size=2>4749 4f50 0102 
  0101 3800 0000 0400 0000 GIOP....8.......</FONT></SPAN> <BR><SPAN 
  lang=de><FONT face="Arial monospaced for SAP" size=2>0200 0000 0000 0000 1e00 
  0000 4944 4c3a ............IDL:</FONT></SPAN> <BR><SPAN lang=de><FONT 
  face="Arial monospaced for SAP" size=2>6f6d 672e 6f72 672f 434f 5242 412f 4d41 
  omg.org/CORBA/MA</FONT></SPAN> <BR><SPAN lang=de><FONT 
  face="Arial monospaced for SAP" size=2>5253 4841 4c3a 312e 3000 4540 1600 5441 
  RSHAL:1.0.E@..TA</FONT></SPAN> <BR><SPAN lang=de><FONT 
  face="Arial monospaced for SAP" size=2>0100 0000 </FONT></SPAN></P>
  <P><SPAN lang=de><FONT face=Arial size=2>In the working case the server sends 
  the following GIOP message:</FONT></SPAN> </P>
  <P><SPAN lang=de><FONT face="Arial monospaced for SAP" size=2>omniORB: 
  sendChunk: to giop:tcp:127.0.0.1:18199 28 bytes</FONT></SPAN> <BR><SPAN 
  lang=de><FONT face="Arial monospaced for SAP" size=2>omniORB:</FONT></SPAN> 
  <BR><SPAN lang=de><FONT face="Arial monospaced for SAP" size=2>4749 4f50 0102 
  0101 1000 0000 0400 0000 GIOP............</FONT></SPAN> <BR><SPAN 
  lang=de><FONT face="Arial monospaced for SAP" size=2>0000 0000 0000 0000 0000 
  0000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ............ 
  </FONT></SPAN></P>
  <P><SPAN lang=de><FONT face=Arial size=2>Does anybody know the reason for this 
  problem ?</FONT></SPAN> <BR><SPAN lang=de><FONT face=Arial size=2>How to solve 
  it ?</FONT></SPAN> </P>
  <P><SPAN lang=de><FONT face=Arial size=2>I'm using omniORBpy-3.0-rc1 on server 
  side and omniORB-4.1.0 on client side.</FONT></SPAN> </P></BLOCKQUOTE>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2>&nbsp;</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>Hi 
Stefan, </FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>I see 
two possible reasons:</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>1. You 
are not using the same version of your IDL file on both 
sides;</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>2. You 
encode the object at the client side in a way that is invalid w.r.t. the IDL 
used at the server side.</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>In 
both cases the server would raise a marshal exception, which is what you see in 
the response.</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff size=2>It 
would be helpful if you could post the IDL snippet that corresponds to the 
method and the C++ code that is calling the method.</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2>Furthermore, are you sure you have a try{} catch() block around the 
method call in the client? Do you evaluate the exception if it 
happens?</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2>Regards, Wernke</FONT></SPAN></DIV>
<DIV><SPAN class=648164713-15032007><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV></BODY></HTML>