Using TIBCO Rendezvous Receive Ports from BizTalk Server
Overview
To use a receive port, you can provide a schema to BizTalk Server for the incoming messages. A receive port is configured to listen for a particular set of subject names. It uses a subject name with optional wildcard characters to match multiple subject names. You define different port operations in the BizTalk Server orchestration for each possible subject that matches the given string.
Note
The adapter supports both orchestration and messaging scenarios.
Define schemas
For example, if the port is configured to listen to the subject name, STOCK.MARKET.INDICES.> ('>' is a wildcard character that means anything else to the right), it would be valid to define operations for subject names such as STOCK.MARKET.INDICES.NYSE.SP500, STOCK.MARKET.INDICES.TSX.TSX60, and so on. The adapter generates messages using the strategy described in Data Type Mapping for Receive Handlers in TIBCO Rendezvous, and generates the root element name and namespaces based on the listen subject name and received message subject names respectively.
In the previous example, the adapter generates a message that looks like the following for the SP500 event:
<ns:STOCK.MARKET.INDICES.NYSE.SP500 xmlns:ns='
http://schemas.microsoft.com/TibcoRendezvous/Types/
STOCK.MARKET.INDICES.NYSE.GTWILDCARD'
xmlns:tibrv=' http://schemas.microsoft.com/TibcoRendezvous/Types' … >
<message body>
</ns: STOCK.MARKET.INDICES.NYSE.SP500>
You must define a schema that uses the same conventions. For example:
<xsd:schema
targetNamespace='
http://schemas.microsoft.com/TibcoRendezvous/Types/STOCK.MARKET.INDICES.N
YSE.GTWILDCARD'
xmlns:xsd=' http://www.w3.org/2001/XMLSchema'
xmlns:tibrv=' http://schemas.microsoft.com/TibcoRendezvous/Types'>
xmlns:b="http://schemas.microsoft.com/BizTalk/2003"
<xsd:element name='STOCK.MARKET.INDICES.NYSE.SP500'>
<xs:annotation>
<xs:appinfo>
<b:recordInfo rootTypeName="STOCK_MARKET_INDICES_NYSE_SP500" />
</xs:appinfo>
</xs:annotation>
<xsd:complexType>
<SP500 message definitions goes here>
</xsd:complexType>
<xsd:element name='STOCK.MARKET.INDICES.TSX.TSX60'>
<xs:annotation>
<xs:appinfo>
<b:recordInfo rootTypeName="STOCK_MARKET_INDICES_TSX_TSX60" />
</xs:appinfo>
</xs:annotation>
<xsd:complexType>
<TSX60 message definitions goes here>
</xsd:complexType>
Note the use of the BizTalk ServerrecordInfo/rootTypeName annotation. This is to instruct the Visual Studio/BizTalk integration to use that name for the generated .NET Framework types, instead of the name that contains dots. You can specify anything. In the examples, the dots are replaced with underscores.
Note
The dots cause invalid names to be generated by the BizTalk Server development tools.
Event processing
Microsoft BizTalk Adapter for TIBCO Rendezvous dispatches events from a queue on multiple threads. A BizTalk Server receive location is associated with one TIBCO Rendezvous event queue, and its pool of dispatcher threads.
Memory Use and Errors
While processing events, the adapter keeps an eye on used resources. If memory use goes above the high-watermark, the adapter stops dispatching events until it reaches the low-watermark memory consumption. Note that this might result in TIBCO Rendezvous messages being missed for non certified messages (a TIBCO RV consumer has 60 seconds to remove messages from a queue). This data loss is reported as an error. If the adapter receives a TIBCO Rendezvous system advisory NO_MEMORY message, messages have already been lost.
BizTalk Adapter for TIBCO Rendezvous maintains a state, and it executes tasks differently based on that state. If the BizTalk Message Engine reports an error, and the adapter is configured to be a certified listener, it reports the error to TIBCO Rendezvous so that it can resubmit the message.
See Also
TIBCO Rendezvous Concepts
Data Type Mapping for Receive Handlers in TIBCO Rendezvous
Creating TIBCO Rendezvous Receive Handlers