Hi,<br><br>Please disregard this issue. <br>I found the problem after exhausted effort and the issue is that on the server side(JacORB) where the call was originating they forgot to set an enum attribute which resulted this problem. Since the call was reaching the device (OmniORB) it was not apparent to debug the problem. I'm surprised the call was able to marshal without setting the enum attribute. Its also surprising that preinvoke and postinvoke were called without issues.<br>
<br>Thanks,<br>Venkatesh<br><br><div class="gmail_quote">On Sun, Dec 4, 2011 at 3:59 PM, V Venkatesh <span dir="ltr"><<a href="mailto:veeroju.venkatesh@gmail.com">veeroju.venkatesh@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br><br>I started seeing a peculiar behavior in the project I'm working on. We use omniORB on the server side and client uses JacOrb. The issue is on the C++ side ie. on the omniORB side.<br><br>Usually to invoke any method on our system the call chain proceeds as follows<br>
<br>prinvok()<br><br>call the c++ method<br><br>postinvok()<br><br>in preinvoke the servant impl was properly set.<br><br>but for some reason, c++ method is not being invoked in between the preinvoke & postinvoke.<br>
<br>Here is the IDL<br><br>interface CardManager<br>{<br> char* assignCard(in PhyCard:;PhyCardInfoStruct pcs );<br> void unAssingCar(in PhyCard::PhyCardInfoStruct pcs );<br>}<br><br>The CardManager implementer is properly set in preinvoke and the operation argument of the preinvoke correctly shows assignCard<br>
But once the preinvoke is done postinvoke is called without calling the assingCard C++ implementation.<br>The PhyCarInfoStruct is a struct type and one of its attribute is a union.<br><br><br>This happens only for this perticular interface. Also after postinvoke I see there is a SystemException raised which is invalid enum.<br>
<br>It would be really appreciated if you could let me know what could be the issue. Thanks for your time and help.<br><br>Here is the trace snippet for this call with GIOP trace enabled.<br><br>Dec 4 08:33:20.867192 cfgd[5738:5978]: omniORB D omniORB: ObjRef(IDL:lpsdevice/CardManager:1.0) -- deleted.<br>
Dec 4 08:33:20.892916 cfgd[5738:5978]: omniORB D omniORB: inputMessage: from giop:tcp:<a href="http://10.0.233.42:53250" target="_blank">10.0.233.42:53250</a> 166 bytes<br>Dec 4 08:33:20.893285 cfgd[5738:5979]: omniORB D omniORB: AsyncInvoker: thread id = 22 has started. Total threads = 10<br>
Dec 4 08:33:20.893301 cfgd[5738:5979]: omniORB D omniORB: giopWorker task execute.<br>Dec 4 08:33:20.893429 cfgd[5738:5978]: omniORB D omniORB:<br>Dec 4 08:33:20.893458 cfgd[5724]: 4749 4f50 0102 0100 9a00 0000 0400 0000 GIOP............<br>
Dec 4 08:33:20.893485 cfgd[5724]: 0300 0000 0000 aaaa 5600 0000 ff6c 7073 ........V....lps<br>Dec 4 08:33:20.893493 cfgd[5724]: fe22 76db 4e02 0016 6a00 4944 4c3a 6c70 ."v.N...j.IDL:lp<br>Dec 4 08:33:20.893499 cfgd[5724]: 7364 6576 6963 652f 4361 7264 4d61 6e61 sdevice/CardMana<br>
Dec 4 08:33:20.893506 cfgd[5724]: 6765 723a 312e 3020 4361 7264 4d61 6e61 ger:1.0 CardMana<br>Dec 4 08:33:20.893513 cfgd[5724]: 6765 7220 6c6f 6361 6c68 6f73 743a 3235 ger localhost:25<br>Dec 4 08:33:20.893519 cfgd[5724]: 352e 3235 352e 3235 352e 3235 353a 3930 <a href="http://5.255.255.255:90" target="_blank">5.255.255.255:90</a><br>
Dec 4 08:33:20.893528 cfgd[5724]: 3030 00aa 0b00 0000 6173 7369 676e 4361 00......assignCa<br>Dec 4 08:33:20.893536 cfgd[5724]: 7264 0000 0000 0000 0000 0000 1b00 0000 rd..............<br>Dec 4 08:33:20.893542 cfgd[5724]: 3900 0000 f5e0 3e40 3900 0000 0600 0000 9.....>@9.......<br>
Dec 4 08:33:20.893549 cfgd[5724]: 6475 6d6d 7900 dummy.<br>Dec 4 08:33:20.928969 cfgd[5738:5978]: lps.ServantLocator <b>> preinvoke[0x415c9438] Invoking Operation assignCard</b><br>Dec 4 08:33:20.929055 cfgd[5738:5978]: lps.ServantLocator > _ParseObjectId<br>
Dec 4 08:33:20.929093 cfgd[5738:5978]: lps.ServantLocator D oid: IDL:lpsdevice/CardManager:1.0 CardManager localhost:<a href="http://255.255.255.255:9000" target="_blank">255.255.255.255:9000</a><br>Dec 4 08:33:20.929145 cfgd[5738:5978]: lps.ServantLocator D servant: IDL:lpsdevice/CardManager:1.0 object name: CardManager LPS name: localhost:255.<br>
255.255.255:9000Session ID : 4294967295<br>Dec 4 08:33:20.929179 cfgd[5738:5978]: lps.ServantLocator < _ParseObjectId Parse Done<br>Dec 4 08:33:20.929219 cfgd[5738:5978]: lps.ServantLocator > SetObjectName name : CardManager<br>
Dec 4 08:33:20.929262 cfgd[5738:5978]: lps.ServantLocator < SetObjectName<br>Dec 4 08:33:20.929295 cfgd[5738:5978]: lps.ServantLocator > SetLpsName Lps Name localhost:<a href="http://255.255.255.255:9000" target="_blank">255.255.255.255:9000</a><br>
Dec 4 08:33:20.934237 cfgd[5738:5978]: lps.ServantLocator < SetLpsName<br>Dec 4 08:33:20.934292 cfgd[5738:5978]: lps.ServantLocator > SetLpsSessionId Session Id 4294967295<br>Dec 4 08:33:20.934325 cfgd[5738:5978]: lps.ServantLocator < SetLpsSessionId<br>
Dec 4 08:33:20.934358 cfgd[5738:5978]: lps.ServantLocator <b>< preinvoke[0x415c9438] IDL:lpsdevice/CardManager:1.0 found sessionId = 4294967295</b><br>Dec 4 08:33:20.985171 snmpd[5741:5777]: omniORB D omniORB: Scan for idle connections (1323005600,975839000)<br>
Dec 4 08:33:20.985210 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x4136d618 to 4<br>Dec 4 08:33:20.985222 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41329ef0 to 12<br>
Dec 4 08:33:20.985231 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41358930 to 12<br>Dec 4 08:33:20.985242 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x4135fdf8 to 0<br>
Dec 4 08:33:20.988380 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41367280 to 0<br>Dec 4 08:33:20.988394 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x40ecff60 to 4<br>
Dec 4 08:33:20.988404 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41348e10 to 18<br>Dec 4 08:33:20.988412 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x40ea7a48 to 16<br>
Dec 4 08:33:20.988420 snmpd[5741:5777]: omniORB D omniORB: Scavenger reduce idle count for strand 0x40f155e0 to 35<br>Dec 4 08:33:20.988428 snmpd[5741:5777]: omniORB D omniORB: Scavenger close connection to giop:tcp:<a href="http://10.0.233.42:7447" target="_blank">10.0.233.42:7447</a><br>
Dec 4 08:33:20.988808 snmpd[5741:5777]: omniORB D omniORB: sendCloseConnection: to giop:tcp:<a href="http://10.0.233.42:7447" target="_blank">10.0.233.42:7447</a> 12 bytes<br>Dec 4 08:33:20.988844 snmpd[5741:5777]: omniORB D omniORB:<br>
Dec 4 08:33:20.989409 snmpd[5724]: 4749 4f50 0102 0105 0000 0000 GIOP........<br><b><br>Not assinCard method should have been invoked here and that should return a string.</b><br><br>Dec 4 08:33:20.994079 cfgd[5738:5978]: lps.ServantLocator <b>> postinvoke[0x415c9438]</b><br>
Dec 4 08:33:20.994213 cfgd[5738:5978]: lps.ServantLocator <b>< postinvoke[0x415c9438] Completed Operation assignCard</b><br>Dec 4 08:33:20.998190 cfgd[5738:5978]: omniORB D omniORB: sendChunk: to giop:tcp:<a href="http://10.0.233.42:53250" target="_blank">10.0.233.42:53250</a> 68 bytes<br>
Dec 4 08:33:20.998594 cfgd[5738:5978]: omniORB D omniORB:<br>Dec 4 08:33:20.998656 cfgd[5724]: 4749 4f50 0102 0101 3800 0000 0400 0000 GIOP....8.......<br>Dec 4 08:33:20.998732 cfgd[5724]: 0200 0000 0000 0000 1e00 0000 4944 4c3a ............IDL:<br>
Dec 4 08:33:20.998740 cfgd[5724]: 6f6d 672e 6f72 672f 434f 5242 412f 4d41 <b><a href="http://omg.org/CORBA/MA" target="_blank">omg.org/CORBA/MA</a></b><br>Dec 4 08:33:20.998750 cfgd[5724]: 5253 4841 4c3a 312e 3000 aaaa 1a00 5441 <b>RSHAL:1.0.....TA</b><br>
Dec 4 08:33:20.998760 cfgd[5724]: 0100 0000 ....<br>Dec 4 08:33:21.008196 rcpd[5736:5822]: omniORB D omniORB: inputMessage: from giop:tcp:<a href="http://10.0.233.42:53212" target="_blank">10.0.233.42:53212</a> 12 bytes<br>
Dec 4 08:33:21.008264 rcpd[5736:5822]: omniORB D omniORB:<br>Dec 4 08:33:21.008963 rcpd[5724]: 4749 4f50 0102 0105 0000 0000 GIOP........<br>Dec 4 08:33:21.036055 cfgd[5738:5804]: omniORB D omniORB: Scan for idle connections (1323005601,25302000)<br>
Dec 4 08:33:21.036091 cfgd[5738:5804]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41aefc38 to 4<br>Dec 4 08:33:21.036104 cfgd[5738:5804]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41a53bb8 to 11<br>
Dec 4 08:33:21.036112 cfgd[5738:5804]: omniORB D omniORB: Scavenger reduce idle count for strand 0x41ad1120 to 12<br><br>If you need more info please do let me know I would be able to give as much information as possible.<br>
<br><br>Thanks,<br><font color="#888888">Venkatesh<br>
</font></blockquote></div><br>