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">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">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">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">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">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">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">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">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">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>Venkatesh<br>