Connectors are used to access and update information sources. The job of a Connector is to level the playing field so that we do not have to deal with the technical details of working with various data stores, systems, services or transports. As such, each type of Connector is designed to use a specific protocol or API, handling the details of data source access so that we can concentrate on the data manipulations and relationships, as well as custom processing like filtering and consistency control.
Connectors are used to abstract away the details of some system or store, giving you the same set of access features. This lets you work with a broad range of disparate technologies and formats in a consistent and predictable way. A typical AssemblyLine (AL) has one Connector providing input and at least one Connector writing out data.
There are two categories of Connectors:
AssemblyLines can consist of as many, or as few, Connectors (and other Components) as required to implement your specific Data Flow. There is no limitation in the system. However, best practice is to keep an AssemblyLine as simple as possible in order to maximize maintainability.
When we select a Connector for your AssemblyLine, a dialog box is displayed enabling you to choose the type of Connector we want to inherit from. Inheritance is an important concept when working with IBM Tivoli Directory Integrator because all the components you include in solutions inherit some or all of their characteristics from another componentâ€”either from one of the basic types, or from the library of pre-configured components: Connectors, Parsers, Functions and so forth in the Resources section of the workspace.
When used in an AL, Connectors provide an Initialize option to control when the component is set up; for example, connections made, resources bound, and so forth. By default, all Connectors initialize when the AssemblyLine starts up: the AssemblyLine Startup Phase.
Connectors in Server or Iterator mode feed the AssemblyLine, and are responsible for feeding the AssemblyLine with a new Work Entry for each cycle that the AssemblyLine makes. The Work Entry is passed from component to component in the Flow section, following any Branching logic you've implemented, until the end of the Flow is reached. At this point, end-of-cycle behavior begins, such as the Iterator getting the next entry from its source and passing it to the Flow section for a new cycle.
While an Iterator in the Feeds section will actually drive the Flow, an Iterator in the Flow section will simply get the next entry and offer its data Attributes for Input Mapping into the Work Entry.
We can put a Connector in Iterator Mode into the Flow section. As such, the Iterator works in the same way as it would in the Feeds: it is initialized, including building its result set with the selectEntries call, during AssemblyLine startup and retrieves one entry (getNextEntry) on each cycle of the AssemblyLine. However, an Iterator in the Flow section does not drive the AssemblyLine itself, as it would in Feeds.
Feeds section behavior is different for Server and Iterator modes: An Iterator expects to be the first component running in the AL, and it will only read its next entry if the Work Entry does not already exist. If the AssemblyLine is passed an Initial Work Entry, then Iterators do not read any data for this first cycle. It also means that Iterators run in a series, with the second one starting to return Entries once the first one has reached end-of-data and returned nothing (null).
Server Mode, on the other hand, causes the Connector to launch a server listener thread, for example, to an IP port or event-notification callback, and then pass control to the next Feeds Connector.
When you call an AssemblyLine using the AssemblyLine Function component (AL FC), if we use the manual cycle mode then only the Flow section components are used each time the FC performs the call.
There is a Connectors folder in your workspace in the TDI Navigator where we can maintain your library of configured Connectors. This is also where Connector Pools are defined.
Parent topic: The AssemblyLine