| Join wMUsers | Blog at wMUsers | User Control Panel | Site Map | webMethods Jobs |For Employers |
![]() |
![]() |
IntroductionIntegrations using the Enterprise Server are often used for synchronization of data across disparate applications. The classic example of synchronization is the ordering system and warehouse system scenario. In this scenario, an order is placed into an ordering application. This may be an order entered over the Internet using a web application, or the retailer’s personnel may have entered it into the ordering system. In either case, a record is entered into one or more database tables in the order entry application. The data from this order is synchronized with the warehousing system using a canonical document, a.k.a. UDM, which is subscribed to by the warehouse adapter. The situation may arise whereby a change to that order may be made in the ordering system or the warehouse system, hence requiring bi-directional synchronization of a single order across the two systems. Bi-directional synchronization requires the use of latches to ensure echo suppression. The Cross Reference table provides a mechanism to implement echo suppression. However, this implementation is rather heavyweight and slow for applications that use a single adapter process for each resource. In-memory latching provides an alternative for better performance and enhanced throughput. Latching OverviewConsider the scenario shown in Figure 1, which does not use latching. If the customer table is updated on the order application, this is the order of events:
To prevent this looping behavior, webMethods provides a mechanism for echo suppression using the cross-reference table, ATC_XREF. Figure 2 illustrates how echo suppression is achieved using the ATC_XREF table. When the customer table is updated on the order application side using echo suppression, this is the order of events:
Closer scrutiny of Figure 2 shows that this latching requires a lot of messages to be published and delivered using the Broker. The messaging associated with latching can slow integrations down dramatically and can cause the Broker to become unnecessarily burdened with additional load. To improve the performance of bi-directional synchronization and assist in decreasing the load on the Broker, you might consider using in-memory latching. Standard LatchingFigures 3 and 4 show two standard common operations that could be used for utilizing the ATC_XREF table for latching. It is not the intention of this article to regurgitate the documentation on the use of the ATC_XREF table. However an understanding of the capabilities of the standard latching functionality is required to fully appreciate the capabilities (and shortcomings) of an in-memory implementation.
When a source integration component sends the UDM document, the target adapter receives the document. The target adapter calls the customerTgt common operation (Figure 4) and sets the latch_closed column in the ATC_XREF table to TRUE. A separate integration component in the same adapter calls the customerSrc common operation (Figure 3), which checks the status of the latch_closed column and returns a Boolean indicating if the adapter should send a UDM or not.
An example for using the ATC_XREF table for latching is provided in the "Standard" integration folder of the provided sample. Go Deeper on the Subject: The wMUsers Discussion Forums Conor Brankin is a co-founder of Crossvale, an educational services firm specializing in integration issues. In the four years prior to co-founding Crossvale, Conor held a variety of positions, with DSC Communications, Borland and CustomWare.
Conor can be reached via email at
|
| © All Rights Reserved, 2001-2008. |