[omniORB] corba object method is not being called in the implementer

V Venkatesh veeroju.venkatesh at gmail.com
Sun Dec 4 15:59:35 GMT 2011


Hi,

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.

Usually to invoke any method on our system the call chain proceeds as
follows

prinvok()

call the c++ method

postinvok()

in preinvoke the servant impl was properly set.

but for some reason, c++ method is not being invoked in between the
preinvoke & postinvoke.

Here is the IDL

interface CardManager
{
    char* assignCard(in PhyCard:;PhyCardInfoStruct pcs );
    void unAssingCar(in PhyCard::PhyCardInfoStruct pcs );
}

The CardManager implementer is properly set in preinvoke and the operation
argument of the preinvoke correctly shows assignCard
But once the preinvoke is done postinvoke is called without calling the
assingCard C++ implementation.
The PhyCarInfoStruct is a struct type and one of its attribute is a union.


This happens only for this perticular interface. Also after postinvoke I
see there is a SystemException raised which is invalid enum.

It would be really appreciated if you could let me know what could be the
issue. Thanks for your time and help.

Here is the trace snippet for this call with GIOP trace enabled.

Dec  4 08:33:20.867192 cfgd[5738:5978]: omniORB                   D
omniORB: ObjRef(IDL:lpsdevice/CardManager:1.0) -- deleted.
Dec  4 08:33:20.892916 cfgd[5738:5978]: omniORB                   D
omniORB: inputMessage: from giop:tcp:10.0.233.42:53250 166 bytes
Dec  4 08:33:20.893285 cfgd[5738:5979]: omniORB                   D
omniORB: AsyncInvoker: thread id = 22 has started. Total threads = 10
Dec  4 08:33:20.893301 cfgd[5738:5979]: omniORB                   D
omniORB: giopWorker task execute.
Dec  4 08:33:20.893429 cfgd[5738:5978]: omniORB                   D omniORB:
Dec  4 08:33:20.893458 cfgd[5724]: 4749 4f50 0102 0100 9a00 0000 0400 0000
GIOP............
Dec  4 08:33:20.893485 cfgd[5724]: 0300 0000 0000 aaaa 5600 0000 ff6c 7073
........V....lps
Dec  4 08:33:20.893493 cfgd[5724]: fe22 76db 4e02 0016 6a00 4944 4c3a 6c70
."v.N...j.IDL:lp
Dec  4 08:33:20.893499 cfgd[5724]: 7364 6576 6963 652f 4361 7264 4d61 6e61
sdevice/CardMana
Dec  4 08:33:20.893506 cfgd[5724]: 6765 723a 312e 3020 4361 7264 4d61 6e61
ger:1.0 CardMana
Dec  4 08:33:20.893513 cfgd[5724]: 6765 7220 6c6f 6361 6c68 6f73 743a 3235
ger localhost:25
Dec  4 08:33:20.893519 cfgd[5724]: 352e 3235 352e 3235 352e 3235 353a 3930
5.255.255.255:90
Dec  4 08:33:20.893528 cfgd[5724]: 3030 00aa 0b00 0000 6173 7369 676e 4361
00......assignCa
Dec  4 08:33:20.893536 cfgd[5724]: 7264 0000 0000 0000 0000 0000 1b00 0000
rd..............
Dec  4 08:33:20.893542 cfgd[5724]: 3900 0000 f5e0 3e40 3900 0000 0600 0000
9.....>@9.......
Dec  4 08:33:20.893549 cfgd[5724]: 6475 6d6d 7900
dummy.
Dec  4 08:33:20.928969 cfgd[5738:5978]: lps.ServantLocator        *>
preinvoke[0x415c9438] Invoking Operation assignCard*
Dec  4 08:33:20.929055 cfgd[5738:5978]: lps.ServantLocator        >
_ParseObjectId
Dec  4 08:33:20.929093 cfgd[5738:5978]: lps.ServantLocator        D oid:
IDL:lpsdevice/CardManager:1.0 CardManager localhost:255.255.255.255:9000
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.
255.255.255:9000Session ID : 4294967295
Dec  4 08:33:20.929179 cfgd[5738:5978]: lps.ServantLocator        <
_ParseObjectId Parse Done
Dec  4 08:33:20.929219 cfgd[5738:5978]: lps.ServantLocator        >
SetObjectName name : CardManager
Dec  4 08:33:20.929262 cfgd[5738:5978]: lps.ServantLocator        <
SetObjectName
Dec  4 08:33:20.929295 cfgd[5738:5978]: lps.ServantLocator        >
SetLpsName Lps Name localhost:255.255.255.255:9000
Dec  4 08:33:20.934237 cfgd[5738:5978]: lps.ServantLocator        <
SetLpsName
Dec  4 08:33:20.934292 cfgd[5738:5978]: lps.ServantLocator        >
SetLpsSessionId Session Id 4294967295
Dec  4 08:33:20.934325 cfgd[5738:5978]: lps.ServantLocator        <
SetLpsSessionId
Dec  4 08:33:20.934358 cfgd[5738:5978]: lps.ServantLocator        *<
preinvoke[0x415c9438] IDL:lpsdevice/CardManager:1.0 found sessionId =
4294967295*
Dec  4 08:33:20.985171 snmpd[5741:5777]: omniORB                   D
omniORB: Scan for idle connections (1323005600,975839000)
Dec  4 08:33:20.985210 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x4136d618 to 4
Dec  4 08:33:20.985222 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41329ef0 to 12
Dec  4 08:33:20.985231 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41358930 to 12
Dec  4 08:33:20.985242 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x4135fdf8 to 0
Dec  4 08:33:20.988380 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41367280 to 0
Dec  4 08:33:20.988394 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x40ecff60 to 4
Dec  4 08:33:20.988404 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41348e10 to 18
Dec  4 08:33:20.988412 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x40ea7a48 to 16
Dec  4 08:33:20.988420 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x40f155e0 to 35
Dec  4 08:33:20.988428 snmpd[5741:5777]: omniORB                   D
omniORB: Scavenger close connection to giop:tcp:10.0.233.42:7447
Dec  4 08:33:20.988808 snmpd[5741:5777]: omniORB                   D
omniORB: sendCloseConnection: to giop:tcp:10.0.233.42:7447 12 bytes
Dec  4 08:33:20.988844 snmpd[5741:5777]: omniORB                   D
omniORB:
Dec  4 08:33:20.989409 snmpd[5724]: 4749 4f50 0102 0105 0000 0000
GIOP........
*
Not assinCard method should have been invoked here and that should return a
string.*

Dec  4 08:33:20.994079 cfgd[5738:5978]: lps.ServantLocator        *>
postinvoke[0x415c9438]*
Dec  4 08:33:20.994213 cfgd[5738:5978]: lps.ServantLocator        *<
postinvoke[0x415c9438] Completed Operation assignCard*
Dec  4 08:33:20.998190 cfgd[5738:5978]: omniORB                   D
omniORB: sendChunk: to giop:tcp:10.0.233.42:53250 68 bytes
Dec  4 08:33:20.998594 cfgd[5738:5978]: omniORB                   D omniORB:
Dec  4 08:33:20.998656 cfgd[5724]: 4749 4f50 0102 0101 3800 0000 0400 0000
GIOP....8.......
Dec  4 08:33:20.998732 cfgd[5724]: 0200 0000 0000 0000 1e00 0000 4944 4c3a
............IDL:
Dec  4 08:33:20.998740 cfgd[5724]: 6f6d 672e 6f72 672f 434f 5242 412f 4d41 *
omg.org/CORBA/MA*
Dec  4 08:33:20.998750 cfgd[5724]: 5253 4841 4c3a 312e 3000 aaaa 1a00 5441 *
RSHAL:1.0.....TA*
Dec  4 08:33:20.998760 cfgd[5724]: 0100 0000
....
Dec  4 08:33:21.008196 rcpd[5736:5822]: omniORB                   D
omniORB: inputMessage: from giop:tcp:10.0.233.42:53212 12 bytes
Dec  4 08:33:21.008264 rcpd[5736:5822]: omniORB                   D omniORB:
Dec  4 08:33:21.008963 rcpd[5724]: 4749 4f50 0102 0105 0000 0000
GIOP........
Dec  4 08:33:21.036055 cfgd[5738:5804]: omniORB                   D
omniORB: Scan for idle connections (1323005601,25302000)
Dec  4 08:33:21.036091 cfgd[5738:5804]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41aefc38 to 4
Dec  4 08:33:21.036104 cfgd[5738:5804]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41a53bb8 to 11
Dec  4 08:33:21.036112 cfgd[5738:5804]: omniORB                   D
omniORB: Scavenger reduce idle count for strand 0x41ad1120 to 12

If you need more info please do let me know I would be able to give as much
information as possible.


Thanks,
Venkatesh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20111204/b7d037aa/attachment.htm


More information about the omniORB-list mailing list