Uploaded image for project: 'OpenICF'
  1. OpenICF
  2. OPENICF-1550

RCS Agent: improve tracking sync request/responses

    XMLWordPrintable

    Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.5.20.0
    • None
    • 2
    • 2021.02 - Agents

      Description

      Experiments with IDM livesync has shown that the RCS Agent is not tracking "sync" requests and responses effectively. This tracking is used to inform IDM of when it should retry a sync operation after websocket failures.

      A sync with two new records has the following messages:

      messageId: 90
      request {
        operationRequest {
          connectorKey {
            bundleName: "org.forgerock.openicf.connectors.ldap-connector"
            bundleVersion: "1.5.19.7-SNAPSHOT"
            connectorName: "org.identityconnectors.ldap.LdapConnector"
          }
          connectorFacadeKey: "AAD6+..."
          locale {
            language: "en"
            country: "US"
          }
          syncOpRequest {
            sync {
              objectClass: "__ACCOUNT__"
              token {
                value: "\000\000\372\373\000\000\000\002\000\000\000\001\000\000\000\aInteger\000\000\000\000=\000\000\000\000F\000\000\000\004\000\000\000\004H"
              }
              options: "\000\000\372\373\000\000\000\002\000\000\000\005\000\000\000\020OperationOptions\000\000\000\000\000\000\000\aoptions\000\000\000\001\000\000\000\003Map\000\000\000\002\000\000\000\bMapEntry\000\000\000\003\000\000\000\006String\000\000\000\004=\000\000\000\000G\000\000\000\001\000\000\001\241=\000\000\000\002F\000\000\001%=\000\000\000\003F\000\000\000\033=\000\000\000\004F\000\000\000\020\000\000\000\fATTRS_TO_GETHF\000\000\000\372>=\000\000\000\004F\000\000\000\030=\000\000\000\004F\000\000\000\r\000\000\000\tentryUUIDHF\000\000\000\022=\000\000\000\004F\000\000\000\a\000\000\000\003uidHF\000\000\000\036=\000\000\000\004F\000\000\000\023\000\000\000\017telephoneNumberHF\000\000\000\023=\000\000\000\004F\000\000\000\b\000\000\000\004mailHF\000\000\000\030=\000\000\000\004F\000\000\000\r\000\000\000\tgivenNameHF\000\000\000\032=\000\000\000\004F\000\000\000\017\000\000\000\vdescriptionHF\000\000\000\027=\000\000\000\004F\000\000\000\f\000\000\000\b__NAME__HF\000\000\000\021=\000\000\000\004F\000\000\000\006\000\000\000\002cnHF\000\000\000\021=\000\000\000\004F\000\000\000\006\000\000\000\002snHHHF\000\000\000l=\000\000\000\003F\000\000\000\"=\000\000\000\004F\000\000\000\027\000\000\000\023CAUD_TRANSACTION_IDHF\000\000\000:=\000\000\000\004F\000\000\000/\000\000\000+674cb311-e77b-46dd-92f0-c95143281b25-7734/2HHHH"
            }
          }
        }
        hostId: "4d752bb9-b5af-4148-92a8-cbe78c58136a"
      }
      
      messageId: 90
      response {
        operationResponse {
          syncOpResponse {
            sync {
              sequence: 2
              syncToken {
                value: "\000\000\372\373\000\000\000\002\000\000\000\001\000\000\000\aInteger\000\000\000\000=\000\000\000\000F\000\000\000\004\000\000\000\006H"
              }
            }
          }
        }
        hostId: "4d752bb9-b5af-4148-92a8-cbe78c58136a"
      }
      
      messageId: 90
      response {
        operationResponse {
          syncOpResponse {
            sync {
              sequence: 1
              syncDelta {
                token {
                  value: "\000\000\372\373\000\000\000\002\000\000\000\001\000\000\000\aInteger\000\000\000\000=\000\000\000\000F\000\000\000\004\000\000\000\005H"
                }
                deltaType: CREATE
                objectClass: "__ACCOUNT__"
                uid {
                  value: "bsmith"
                }
                connectorObject: "\000\000\372\373\000\000\000\002\000\000\000\t\000\000\000\003Set\000\000\000\000\000\000\000\tAttribute\000\000\000\001\000\000\000\004name\000\000\000\002\000\000\000\006Values\000\000\000\003\000\000\000\004List\000\000\000\004\000\000\000\006String\000\000\000\005\000\000\000\004Name\000\000\000\006\000\000\000\003Uid\000\000\000\a\000\000\000\003uid\000\000\000\b=\000\000\000\000F\000\000\000?=\000\000\000\001G\000\000\000\002\000\000\000\a\000\000\000\003uidG\000\000\000\003\000\000\000 =\000\000\000\004F\000\000\000\025=\000\000\000\005F\000\000\000\n\000\000\000\006bsmithHHHF\000\000\000L=\000\000\000\001G\000\000\000\002\000\000\000\b\000\000\000\004mailG\000\000\000\003\000\000\000,=\000\000\000\004F\000\000\000!=\000\000\000\005F\000\000\000\026\000\000\000\022bsmith@example.comHHHF\000\000\000_=\000\000\000\001G\000\000\000\002\000\000\000\017\000\000\000\vdescriptionG\000\000\000\003\000\000\0008=\000\000\000\004F\000\000\000-=\000\000\000\005F\000\000\000\"\000\000\000\036Created to see liveSync work 1HHHF\000\000\000c=\000\000\000\001G\000\000\000\002\000\000\000\r\000\000\000\tentryUUIDG\000\000\000\003\000\000\000>=\000\000\000\004F\000\000\0003=\000\000\000\005F\000\000\000(\000\000\000$92044901-432a-4e0f-8bdb-94aba6fa6342HHHF\000\000\0004=\000\000\000\006F\000\000\000)\000\000\000%uid=bsmith,ou=People,dc=fakead,dc=comHF\000\000\000==\000\000\000\001G\000\000\000\002\000\000\000\006\000\000\000\002cnG\000\000\000\003\000\000\000\037=\000\000\000\004F\000\000\000\024=\000\000\000\005F\000\000\000\t\000\000\000\005BarryHHHF\000\000\000==\000\000\000\001G\000\000\000\002\000\000\000\006\000\000\000\002snG\000\000\000\003\000\000\000\037=\000\000\000\004F\000\000\000\024=\000\000\000\005F\000\000\000\t\000\000\000\005SmithHHHF\000\000\000\031=\000\000\000\aG\000\000\000\b\000\000\000\n\000\000\000\006bsmithHF\000\000\000S=\000\000\000\001G\000\000\000\002\000\000\000\023\000\000\000\017telephoneNumberG\000\000\000\003\000\000\000(=\000\000\000\004F\000\000\000\035=\000\000\000\005F\000\000\000\022\000\000\000\0161-415-523-0772HHHF\000\000\000D=\000\000\000\001G\000\000\000\002\000\000\000\r\000\000\000\tgivenNameG\000\000\000\003\000\000\000\037=\000\000\000\004F\000\000\000\024=\000\000\000\005F\000\000\000\t\000\000\000\005BarryHHHH"
              }
            }
          }
        }
        hostId: "4d752bb9-b5af-4148-92a8-cbe78c58136a"
      }
      
      messageId: 90
      response {
        operationResponse {
          syncOpResponse {
            sync {
              sequence: 2
              syncDelta {
                token {
                  value: "\000\000\372\373\000\000\000\002\000\000\000\001\000\000\000\aInteger\000\000\000\000=\000\000\000\000F\000\000\000\004\000\000\000\006H"
                }
                deltaType: CREATE
                objectClass: "__ACCOUNT__"
                uid {
                  value: "bobdoe"
                }
                connectorObject: "\000\000\372\373\000\000\000\002\000\000\000\t\000\000\000\003Set\000\000\000\000\000\000\000\tAttribute\000\000\000\001\000\000\000\004name\000\000\000\002\000\000\000\006Values\000\000\000\003\000\000\000\004List\000\000\000\004\000\000\000\006String\000\000\000\005\000\000\000\004Name\000\000\000\006\000\000\000\003Uid\000\000\000\a\000\000\000\003uid\000\000\000\b=\000\000\000\000F\000\000\000?=\000\000\000\001G\000\000\000\002\000\000\000\a\000\000\000\003uidG\000\000\000\003\000\000\000 =\000\000\000\004F\000\000\000\025=\000\000\000\005F\000\000\000\n\000\000\000\006bobdoeHHHF\000\000\000L=\000\000\000\001G\000\000\000\002\000\000\000\b\000\000\000\004mailG\000\000\000\003\000\000\000,=\000\000\000\004F\000\000\000!=\000\000\000\005F\000\000\000\026\000\000\000\022bobdoe@example.comHHHF\000\000\000_=\000\000\000\001G\000\000\000\002\000\000\000\017\000\000\000\vdescriptionG\000\000\000\003\000\000\0008=\000\000\000\004F\000\000\000-=\000\000\000\005F\000\000\000\"\000\000\000\036Created to see liveSync work 2HHHF\000\000\000c=\000\000\000\001G\000\000\000\002\000\000\000\r\000\000\000\tentryUUIDG\000\000\000\003\000\000\000>=\000\000\000\004F\000\000\0003=\000\000\000\005F\000\000\000(\000\000\000$e7b23a20-60fa-418c-853d-3963fceaf335HHHF\000\000\0004=\000\000\000\006F\000\000\000)\000\000\000%uid=bobdoe,ou=People,dc=fakead,dc=comHF\000\000\000;=\000\000\000\001G\000\000\000\002\000\000\000\006\000\000\000\002cnG\000\000\000\003\000\000\000\035=\000\000\000\004F\000\000\000\022=\000\000\000\005F\000\000\000\a\000\000\000\003BobHHHF\000\000\000;=\000\000\000\001G\000\000\000\002\000\000\000\006\000\000\000\002snG\000\000\000\003\000\000\000\035=\000\000\000\004F\000\000\000\022=\000\000\000\005F\000\000\000\a\000\000\000\003DoeHHHF\000\000\000\031=\000\000\000\aG\000\000\000\b\000\000\000\n\000\000\000\006bobdoeHF\000\000\000S=\000\000\000\001G\000\000\000\002\000\000\000\023\000\000\000\017telephoneNumberG\000\000\000\003\000\000\000(=\000\000\000\004F\000\000\000\035=\000\000\000\005F\000\000\000\022\000\000\000\0161-555-523-5555HHHF\000\000\000B=\000\000\000\001G\000\000\000\002\000\000\000\r\000\000\000\tgivenNameG\000\000\000\003\000\000\000\035=\000\000\000\004F\000\000\000\022=\000\000\000\005F\000\000\000\a\000\000\000\003BobHHHH"
              }
            }
          }
        }
        hostId: "4d752bb9-b5af-4148-92a8-cbe78c58136a"
      }
      

      Note that there is no "end of results" message, as we have with search queries. The first response indicates how many results there will be.

        Attachments

          Activity

            People

            travis.haagen Travis Haagen [X] (Inactive)
            travis.haagen Travis Haagen [X] (Inactive)
            Son Nguyen Son Nguyen
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: