3Siebel Server Sync for Microsoft Exchange Server Architecture Overview
Siebel Server Sync for Microsoft Exchange Server Architecture Overview
This chapter provides an overview of the architecture of SSSE, including information about the SSSE Server components, PIMSI Engine and PIMSI Dispatcher. This chapter also describes the initial extract and ongoing extract synchronization processes. It includes the following topics:
About PIMSI Engine
PIMSI Engine is a Siebel Server component that enables synchronization of data between Siebel Enterprise Server and Microsoft Exchange Server. This component allows the synchronization of calendar appointments, tasks (called to do items in Siebel Business Applications), and business contacts between the Siebel database and the Microsoft Exchange Server (or servers).
PIMSI Engine administration and configuration is conducted using centralized administration and configuration screens in Siebel Business Applications. No end-user installation is required for synchronization of calendar appointment, task, or contact records. End users designate the contact records to be synchronized, but no other end user action is required. Synchronization can be selectively enabled for individual users or groups of users. After synchronization is initiated between Microsoft Exchange and Siebel Business Applications for a specific user, synchronization is performed automatically for that user. The time that elapses between when a data change takes place and when the change is synchronized depends on a system-wide configuration parameter that the administrator can adjust.
You can run PIMSI Engine components on multiple Siebel Servers in your Enterprise. If you set the MaxTasks and MaxMTServers parameters for the PIMSI Engine component appropriately, then you can also have multiple PIMSI Engine processes running simultaneously on a Siebel Server host.
If a PIMSI Engine goes offline in a Siebel implementation that has multiple PIMSI Engines, then the remaining PIMSI Engines pick up the workload of the PIMSI Engine that is not functioning. When that PIMSI Engine comes back online, workloads for all PIMSI Engines rebalance automatically.
About PIMSI Dispatcher
PIMSI Dispatcher is a Siebel Server component that performs the following actions at regular, configurable intervals:
Determines which users require synchronization within a synchronization cycle due to changes in Siebel data. For example, if 1000 users have synchronization enabled, then Dispatcher identifies which of those users have had Siebel data change since the user’s last successful synchronization.
Sends a synchronization Task Request to PIMSI Engine for each user who has synchronization enabled. The Task Request contains a SiebelChangeFlag property that indicates whether Siebel data changes are to be synchronized or not. For all such Task Requests, PIMSI Engine synchronizes any changes in that user’s Microsoft Exchange data that have been made since the user’s last successful synchronization. If SiebelChangeFlag is set to Y, then PIMSI Engine also synchronizes changes in the user’s Siebel data.
About Exchange Connector
The SSSE Exchange Connector is responsible for all communications between the PIMSI Engine and the Microsoft Exchange Server. The Exchange Connector reads from and writes to the Exchange Server mailboxes of all synchronization-enabled users. The SSSE Exchange Connector interacts with Exchange using Exchange Web Services calls.
For information on configuring the Exchange connectors, see Configuring Siebel Server Sync for Microsoft Exchange Server.
About the Web Service Exchange Connector
SSSE Exchange Connector functionality is provided by the Siebel PIMSI Connector business service.
When a PIMSI engine synchronization task is initiated, the PIMSI Connector business service generates a new instance of the Web Service Exchange Connector; this connector runs in the same address space as the PIMSI engine.
A dedicated connector is assigned to each PIMSI engine user synchronization task, for both initial extract synchronization processes and ongoing synchronization extract processes. The PIMSI Connector service issues Web service calls to transfer data between the PIMSI engine and the Exchange Server, as shown in the following.

PIMSI Engine Task Flow
This topic outlines the sequence of steps that are performed when data is synchronized between Siebel CRM and Microsoft Exchange Server. The process is as follows:
An administrator enables a user for synchronization.
At preconfigured intervals, PIMSI Dispatcher determines which users have synchronization enabled.
For each synchronization-enabled user, the Dispatcher sends a Task Request to PIMSI Engine, requesting synchronization of Microsoft Exchange data for that user.
If the user’s Siebel data has changed since the user’s last successful synchronization, or if the user has not yet synchronized successfully, then the Task Request also asks for synchronization of the applicable Siebel data.
PIMSI Engine determines which data must be synchronized for the user, for both Siebel data and Microsoft Exchange data. The PIMSI engine:
Computes the incremental data change since the user’s last successful synchronization
Communicates with Exchange Connector to request data from Microsoft Exchange Server
Reads data from the Siebel database
Performs data conflict detection and resolution
PIMSI Engine sends data from the Siebel database to the Exchange Connector, which identifies the user’s mailbox on the Microsoft Exchange Server and writes to it.
PIMSI Engine uses Enterprise Application Integration (EAI) methods to write data from the Microsoft Exchange Server to the Siebel database. EAI includes Siebel Adapter, Data Mapper, and XML Converter.
SSSE Architecture
The SSSE architecture is illustrated in the following figure.
Each SSSE user’s computer interacts with the Siebel database and the Microsoft Exchange Server host. The communications that occur between the Siebel database and the PIMSI Engine and PIMSI Dispatcher servers are separate from the communications that occur between the Siebel database and individual SSSE user computers. The Exchange Connector acts as an intermediary for communications between PIMSI Engine and the Microsoft Exchange Server host.

If your implementation includes firewalls between SSSE and Exchange components, then you might have to open specific ports in the firewall to allow the various parts of the implementation to communicate with each other. For more information about using SSSE with firewalls, see Configuring Firewalls for Use with SSSE.
SSSE System Requirements
SSSE is a part of the Siebel Enterprise.SSSE is composed of the following components:
Siebel Enterprise Server. Hosts one or more Siebel Servers that run the PIMSI Engine server component and the PIMSI Dispatcher server component, with the following characteristics:
For proper operation, only one instance of the PIMSI Dispatcher component can be run at a time in a Siebel Enterprise. However, you can run multiple instances of the PIMSI Engine component, either on a single Siebel Server or on multiple Siebel Servers.
A computer that hosts the PIMSI Engine component or the PIMSI Dispatcher component must use a Microsoft Windows operating system. For information about versions currently supported, see Siebel System Requirements and Supported Platforms on Oracle Technology Network.
Note: For Siebel CRM product releases 8.1.1.9 and later and for 8.2.2.2 and later, the system requirements and supported platform certifications are available from the Certification tab on My Oracle Support. For information about the Certification application, see article 1492194.1 (Article ID) on My Oracle Support.The user account under which the Exchange Connector runs must have read-write privileges to the Microsoft Exchange mailboxes of all users who synchronize using SSSE. The Exchange Connector user must be in the same Active Directory forest as the users to be synchronized, or in a forest that has a trust relationship with the Active Directory forest of the users to be synchronized.
If your Siebel implementation experiences a shortage of connections to the database, then increasing the number of PIMSI Engine components can sometimes resolve the problem. However, SSSE is only one kind of Siebel software that uses database connections. For more information about general management of database connections, see Siebel Performance Tuning Guide.
Note: The Siebel Bookshelf is available on Oracle Technology Network (http://www.oracle.com/technetwork/indexes/documentation/index.html) and Oracle Software Delivery Cloud. It might also be installed locally on your intranet or on a network location.If your Siebel implementation uses Coordinated Universal Time (UTC) throughout, then SSSE automatically converts dates and times appropriately. If your Siebel implementation does not use UTC, then your Siebel Servers, Microsoft Exchange Servers, and Database Server must all be set to use the same time zone. For more information about using UTC, see Siebel Global Deployment Guide.
PIMSI Engine works in conjunction with the Microsoft Exchange Server host, the computer that hosts the Microsoft Exchange Server software for Microsoft Outlook. There are no specific Siebel software requirements for the Microsoft Exchange Server computers. See your Microsoft documentation for system requirements.
Initial Extract and Ongoing Extract
This topic describes the initial extract and ongoing extract processes which synchronize Siebel data and Microsoft Exchange Server data.
For each enabled user, SSSE periodically extracts changes from both the Siebel database and the Microsoft Exchange data store, and then applies the changes from each data store to the other. The SSSE administrator can configure the time period between extractions to suit your business requirements. For each user, the first iteration of this periodic extraction process is called the initial extract, and the following extractions are called ongoing extracts.
During an initial extract, SSSE takes data from the user's Microsoft Exchange folders and the Siebel database. SSSE analyzes the data to find any Microsoft Exchange records that match Siebel records, and then synchronizes all of the applicable data.
For example, suppose that there are 10 contacts in a user’s Microsoft Exchange folder and 20 completely different business contacts in the same user’s My Contacts list in Siebel Business Applications. (In other words, none of the user’s contacts in Microsoft Exchange are logically the same as any of that user’s business contacts in the Siebel database.) If the user has synchronization enabled and has used the Add To Sync List command to request synchronization of all 20 Siebel business contacts, then, after the initial extract is performed for that user, both the user’s Microsoft Exchange Contact folder and the user’s My Contacts list will contain 30 contact listings. As part of this process, for any contact records thatSSSE imports from Microsoft Exchange to the Siebel database,SSSE automatically adds the user to the record’s Sync List for future synchronizations. The Sync List for the record is a multi-value group (MVG) field that lists the employees who synchronize that record.
The initial extract process prepares the user’s data for the ongoing extract synchronizations. More detailed information about the initial extract process is provided later in this topic.
The ongoing extract process repeatedly inspects a user’s data for changes. Ordinarily, it synchronizes just the data that has changed sinceSSSE performed the most recent successful synchronization. However, in some circumstances, such as changes in the synchronization level of a domain, all of the user’s data within that domain is reextracted.
About Synchronizing Records during Initial Extract
During the initial extract process for a particular user, for each domain that the user can synchronize, the initial extract process compares that user's Microsoft Exchange records in that domain with that user's Siebel records in the corresponding Siebel domain.
The actions that follow this comparison depend on the following factors:
Synchronization level for the current domain and user. The synchronization level determines whether SSSE synchronizes a domain. For a domain that SSSE can synchronize, the synchronization level determines whether information can flow in both directions between the Microsoft Exchange Server and the Siebel database, or whether information must always flow in one direction.
Extract Start Date. The administrator can specify extract start dates for individual users, and a system-wide extract start date that applies to all users for whom individual extract start dates are not specified. The Extract Start Date determines the date of the oldest appointments and tasks that SSSE is to synchronize.
Existence or absence of a matching record. SSSE compares Microsoft Exchange records and Siebel records to determine whether corresponding records have to be modified or whether new records have to be created.
When SSSE compares calendar and task records in Microsoft Exchange and Siebel Business Applications, SSSE only checks the values in certain key fields to determine whether or not the records match. For additional information about key fields, see Setting Key Fields. For information about how SSSE matches contact records, see About SSSE Contact Record Matching.
PIM Category Value. Depending on how your SSSE implementation is configured, whether or not SSSE synchronizes Microsoft Exchange contact records depends on whether or not the Category field in the Microsoft Exchange record has a value that matches the PIM Category value setting in your Siebel implementation, as described in Initial Extract of Microsoft Exchange Contact Records.
If you have enabled the Opt-in feature for calendar and task records, then the value of the Category field in the Microsoft Exchange record must also match the PIM Category value setting if the record is to be synchronized. For additional information, see Implementing Opt-In Synchronization for Calendar and Task Records.
Private check box status. If you have set the Ignore option for the Private Item Behavior parameter for calendar and task records, then SSSE does not synchronize records that have the Private check box selected. For additional information, see Skipping Private Calendar or Task Records During Synchronization.
Sync List Status. Whether or not SSSE synchronizes Siebel contact records depends on whether the Sync List flag is set for the record and user in question.
Status of case sensitivity settings for your Siebel implementation. Siebel implementations can be set for case-sensitivity or case insensitivity at the application level, at the AOM (application object manager) level, or at the field level. The status of these settings affects whether or not SSSE detects differences between two field values that differ only in capitalization.
By default, Siebel Business Applications are set to be case-sensitive. For example, the default settings causeSSSE to detect no match between a value of ABC Corp on the PIM and a value of ABC CORP in the Siebel database. In such a case,SSSE synchronizes the records separately, resulting in both forms of the record being present on the PIM and in the Siebel database. However, if your Siebel application is case-insensitive in the context where SSSE checks for matching records, then SSSE would treat these two values as a match. For information about setting applications, AOMs, and fields to be case-insensitive, see Siebel Applications Administration Guide.
For additional information on initial and ongoing extractions, see:
Initial Extract of Microsoft Exchange Contact Records
SSSE has a configurable parameter called OnlySyncCategorizedContacts that can be set to TRUE or FALSE to suit your business requirements. This Boolean parameter setting determines whether or not initial extract operations synchronize Microsoft Exchange contact records that have the Category field set to a specified value. For information on specifying a value for the OnlySyncCategorizedContacts parameter, see Modifying Enterprise and Server Component Parameters.
If the OnlySyncCategorizedContacts parameter is set to FALSE, then all the user’s Microsoft Exchange contact records are considered for synchronization. By default, this parameter is set to FALSE. The following table shows how SSSE handles Microsoft Exchange contact records during an initial extract when the OnlySyncCategorizedContacts parameter is set to FALSE.
If the OnlySyncCategorizedContacts parameter is set to TRUE, then, in order to be synchronized during an initial extract operation, Microsoft Exchange contact records must have the Category field set to a value that matches the Siebel setting called PIM Category Value. (The default value for the PIM Category Value setting is Siebel Contact). For more information about how SSSE handles Microsoft Exchange contact records during an initial extract when the OnlySyncCategorizedContacts parameter is set to TRUE, see the following table.
Synchronization Level | Category Field Set to Specified PIM Category Value | Record Meets Matching Criteria and User Is Authorized to Synchronize the Data | User included in Sync List for corresponding Siebel Record | Microsoft Exchange Result | Siebel Result |
---|---|---|---|---|---|
Full Sync |
Yes |
Yes |
Yes |
SSSE creates a new record and relates this record to the existing Siebel record. |
SSSE creates a new record and relates this record to the existing Microsoft Exchange record. |
Export Only |
Yes |
Yes |
Yes |
SSSE creates a new record and relates this record to the existing Siebel record. The existing Microsoft Exchange record is ignored. |
Not applicable |
Full Sync |
Yes |
Yes |
No |
No change to the Microsoft Exchange record. | SSSE associates the Microsoft Exchange record to the existing Siebel record, adding the current user to that record’s Sync List. |
Full Sync |
Yes |
No |
Not applicable |
No change to Microsoft Exchange record. | SSSE creates a new Siebel record, adds the user to the record’s Sync List, and associates the Siebel record with the Microsoft Exchange record. |
Full Sync |
No |
Yes |
Yes |
SSSE matches the existing record and overwrites it with Siebel record values if conflicts exist. |
Values available in the existing Microsoft Exchange record are synchronized with the Siebel record for fields that were previously null in the Siebel record. |
Export Only |
No |
Yes |
Yes |
SSSE matches the existing record and overwrites it with Siebel record values if conflicts exist. |
No change. |
Full Sync |
No |
Yes |
No |
No change to Microsoft Exchange record. | SSSE associates the Microsoft Exchange record to the existing Siebel record, adding the current user to the record’s Sync List. |
Full Sync |
No |
No |
Not applicable |
No change to Microsoft Exchange record. | SSSE creates a new Siebel record, adds the user to the record’s Sync List, and associates the Siebel record with the Microsoft Exchange record. |
The following table shows how SSSE handles Microsoft Exchange contact records during an initial extract when the OnlySyncCategorizedContacts parameter is set to TRUE.
Synchronization Level | Category Field Set to Specified PIM Category Value | Record Meets Matching Criteria and User Is Authorized to Synchronize the Data | User included in Sync List for corresponding Siebel Record | Microsoft Exchange Result | Siebel Result |
---|---|---|---|---|---|
Full Sync |
Yes |
Yes |
Yes |
SSSE creates a new record and relates this record to the existing Siebel record. |
SSSE creates a new record and relates this record to the existing Microsoft Exchange record. |
Export Only |
Yes |
Yes |
Yes |
SSSE creates a new record and relates this record to the existing Siebel record. The existing Microsoft Exchange record is ignored. |
Not applicable |
Full Sync |
Yes |
Yes |
No |
No change to the Microsoft Exchange record. | SSSE associates the Microsoft Exchange record to the existing Siebel record, adding the current user to that record’s Sync List. |
Full Sync |
Yes |
No |
Not applicable |
No change to Microsoft Exchange record. | SSSE creates a new Siebel record, places the user in the record’s Sync List, and associates the Siebel record with the Microsoft Exchange record. |
Full Sync or Export Only |
No |
Not applicable |
Not applicable |
No change to Microsoft Exchange record. | No change to Siebel record. |
Related Topics
About Synchronizing Records during Initial Extract
About Synchronizing Records During the Ongoing Extract Process
Initial Extract of Microsoft Exchange Task and Calendar Records
The following table shows how SSSE handles Microsoft Exchange task and calendar records during the initial extract process. For additional information on the initial extract process, see About Synchronizing Records during Initial Extract.
Synchronization Level | Similar Record Exists in Siebel Database and is Visible to the User | Microsoft Exchange Result | Siebel Result |
---|---|---|---|
Full Sync or Export Only |
Yes |
SSSE overwrites the Microsoft Exchange record with Siebel data. |
SSSE associates the Siebel record with the Microsoft Exchange record |
Full Sync |
No |
No change to the Microsoft Exchange record. |
SSSE creates a new Siebel record and associates it with the Microsoft Exchange record |
About Synchronizing Records During the Ongoing Extract Process
This topic describes record synchronization during the ongoing extract process. For information on the initial extract process, see About Synchronizing Records during Initial Extract and About SSSE Contact Record Matching.
The ongoing extract process is similar to the initial extract process but differs in the following respects:
The only record changes that ongoing extract evaluates are the changes that have taken place since the last time the user was successfully synchronized.
If a Siebel record and a Microsoft Exchange record were associated with each other in a previous synchronization, then key fields are not used to determine what action to take. Instead, record IDs are used when determining whether a Siebel record or Microsoft Exchange record has changed. This allows users to change values in key fields while preserving the association between a Siebel record and a Microsoft Exchange record.
If a record changes in both the Siebel environment and the Microsoft Exchange environment between synchronizations, then SSSE treats the situation as an update conflict. The changes in the Siebel environment are preserved and the Microsoft Exchange environment inherits these changes through synchronization.
Note: You can change the SSSE default behavior so that when update conflicts occur, the changes in the Microsoft Exchange environment are preserved and are written to the Siebel environment. For information, see Changing SSSE Default Values For Synchronization Conflicts.In general, if a record is modified in one environment but is deleted in the other, then the record is deleted in the remaining environment at the next synchronization. However, the behavior differs slightly depending on which domain is involved, where the deletion occurs, and when the deletion occurs, as follows:
If a Siebel contact, task, or calendar record is synchronized with Microsoft Exchange and the user deletes it in Microsoft Exchange before that user’s next synchronization occurs, then the next synchronization does not delete or otherwise affect the Siebel record.
If, instead, the user’s data is synchronized successfully at least once between the initial synchronization to Microsoft Exchange and the deletion of the record in Microsoft Exchange, then the results are as described as follows:
If a user deletes a task in Microsoft Outlook, then SSSE deletes the corresponding Siebel task record.
If a user deletes a contact record in Microsoft Outlook that does not have the Private check box selected, then SSSE removes the user from the Sync List for the corresponding Siebel business contact record. SSSE does not delete the Siebel business contact, because that contact might be shared with other users or have data associated with it that is needed.
About SSSE Contact Record Matching
During the extract process that synchronizes Siebel data and Microsoft Exchange data, SSSE carries out a number of checks to determine whether a contact record designated for synchronization matches an existing contact record or not. This topic describes how SSSE performs contact record matching, and describes the following parameters, which affect the SSSE contact record matching process:
Visibility Type Setting
The IgnoreContactMatching parameter
About the Visibility Type Setting
The Visibility type setting determines which records a user can synchronize, and therefore which records SSSE searches when attempting to determine whether a contact record is a duplicate or not. When the Visibility setting is set to All, the user can synchronize any of the data that is visible to them and that is enabled for synchronization. If the Visibility setting is set to Sales Rep, then the user can synchronize data that is associated with the user’s position; this data is visible to the user in the My Contacts view.
When resolving contact records, if a user’s visibility is set to Sales Rep, then SSSE only checks the Siebel records associated with the user’s position for duplicate contact records. If a user’s visibility is set to All, then SSSE checks all Siebel records visible to the user in the Contact domain for duplicate contact records. For information on the Visibility setting, see Setting User-Level Synchronization.
About the IgnoreContactMatching Parameter
The SSSE configurable parameter, IgnoreContactMatching, determines whether or not SSSE attempts to match contact records during the ongoing synchronization extract process.
If the IgnoreContactMatching parameter is set to FALSE (the default value), then SSSE compares Microsoft Exchange and Siebel records to determine whether or not a contact record that is being synchronized matches an existing contact record. If a matching record is not found, then SSSE creates a new contact record. If a matching record is found, then SSSE creates an association between the records and overrides the existing contact record field values with the field values of the record that is being synchronized, unless the field values of the record being synchronized are Null or blank. Setting the IgnoreContactMatching parameter to FALSE helps to ensure that duplicate contact records are not created during the synchronization process. For more information about this process, see About the Contact Record Matching Process.
If the IgnoreContactMatching parameter is set to TRUE, then SSSE does not attempt to match a contact record that is being synchronized with existing contact records. Disabling contact record matching optimizes the performance of the synchronization process but can result in duplicate contact records being created, which must be resolved manually. For information on specifying values for the IgnoreContactMatching parameter, see Enabling and Disabling Contact Record Matching.
About the Contact Record Matching Process
In determining whether or not a contact record designated for synchronization matches an existing contact record, SSSE first tries to match the contact record using the email address; if the record does not have an email address, then SSSE then attempts to match the contact record using first and last names.
Assume a new contact is added to Microsoft Exchange and it is being synchronized to the Siebel application for the first time. In order to minimize duplicate contacts, SSSE uses the following steps to attempt to match it with any existing contacts in Siebel, rather than automatically creating a new contact:
Email matching. If the Exchange contact has an email address, then SSSE queries all existing Siebel contacts for a contact with the same email address.
This search is meant to identify a matching record regardless of variations in the contact's name. For example, the contact William Smith with the email address william.smith@company.com exists in the Siebel database, and a user creates a new contact Bill Smith with email address william.smith@company.com. The query for the email address shows that they are the same contact, but a query that included first and last name would not have found a match.
If SSSE finds one and only one match, then it considers a match to be found and it skips the rest of the matching process.
First and Last Name and Email matching. If no single contact match is found, then SSSE queries all existing Siebel contacts for a record with the same email address, first name, and last name. Given the previous step, this query will find a result only if the same email address is associated with multiple contacts.
There are two common examples of this. The first is the case where two people (such as a married couple) share an email address, but both contacts can exist separately in Microsoft Exchange or in the Siebel application. The second is the case where some common mailbox is shared amongst many people, such as support@company.com.
In either case, we need additional criteria beyond email address to identify which contact is being synchronized. If this query returns one and only one match, then SSSE considers a match to be found and it skips the rest of the matching process.
First and Last Name Matching. As its final attempt to find a match, SSSE queries for a contact that has a match on a first and last name and that has no email address in the Siebel database.
For example, this type of query will find that the Microsoft Exchange contact named John Smith (with or without an email address) matches the Siebel contact named John Smith who does not have an email address. The reason for this is that, if the existing Siebel record for John Smith has an email address that does not match, then it is a different John Smith.
Because many people might have the same name, a match SSSE considers a match to be found only if it finds one and only one matching record.
After completing these steps, SSSE takes one of the following actions:
If a single match was found, then SSSE associate the syncing user with the existing Siebel Contact and marks the Sync Flag as true for that user.
If zero or multiple matches were found, then SSSE creates a new Siebel Contact record for the syncing user and marks the Sync Flag as true.
Related Topics
About Synchronizing Records during Initial Extract
About Synchronizing Records During the Ongoing Extract Process