Problem:
- Product Name: VisiBroker
 - Product Version: 5.x, 6.x, 7.0 and later
 - Product Component: VisiNotify
 - Platform/OS Version: All
 
When running VisiBroker application with VisiNotify 7.0 and later (as Supplier) and communicating with the VisiNotify 6.5 or earlier (as Consumer), a system exception will be thrown from the Consumer and the operation would fail. An example of the exception is as follows:
Tid# 14 Src# connection Msg# exception CORBA::TRANSIENT in receive reply Tid# 14 Src# client Msg# Exception CORBA::TRANSIENT in invoke Tid# 14 Src# client Msg# Throwing Remarshal Tid# 14 Src# v_vnpxsup Msg# 4106:remarshal exception while pushing event Tid# 14 Src# client Msg# Re-Connecting with timeout: 0
Using snoop to capture the traffic over the connection, it showed that VisiNotify have pushed the event, but the Consumer application will answer with "Exception id: IDL:omg.org/CORBA/MARSHAL:1.0 Minor code value: 0 Completion Status: 1".
In VisiBroker 7.0, a new feature "Top-Level Type Code Indirection Optimization" was introduced to address the OMG issue 4796. It causes a compatibility issue between the earlier VisiBroker version of VisiNotify Consumer and the 7.0 and later version of the VisiNotify Supplier.
Resolution:
CR 9476 was raised to address this issue and packaged into the latest Service Packs for VisiBroker 7.0 and 8.0 and later version. It contains a fix to turn off the top level Typecode optimization when VisiNotify service version 7.0 and later is communicating with the older VisiBroker version clients that do not support this optimization.
Upon applying the Service Packs, start the version 7.0 and later Supplier with the property vbroker.orb.topLevelTCIndirection=3 to turn off the Typecode optimization. There are different modes of optimization you can set for the vbroker.orb.topLevelTCIndirection: 1 is for read-only and 2 is for read-write.
Alternatively, you can also apply vbroker.typecode.noIndirection=true to disable all typecode optimization. When you apply this property, the property vbroker.orb.topLevelTCIndirection will be disabled.
#VisiBroker
#Security