Knowledge Partner
Knowledge Partner
217 views

Optimize Modify headaches

Jump to solution

Hi,

 

I have a new General File Driver, only publisher channel. So I read textfiles with it and create/modify accounts.

The strange thing is that I get an optimize modify for a few attributes.

These attributes are created or modified from other attributes in the driver.

If I remove optimize modify from the filter they still are removed.

It doesnt matter if the values exist, are the same or not.

 

End trace:

 

[11/26/19 08:47:35.347]:Primula PT: Applying to modify #1.
[11/26/19 08:47:35.347]:Primula PT:Policy returned:
[11/26/19 08:47:35.348]:Primula PT:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.7.0.0">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<modify class-name="raPersonal" dest-dn="\RAA-META\RA\Personal\testuser" dest-entry-id="44234" event-id="gfd-pub-1" from-merge="true" src-dn="123456781234">
<association>123456781234</association>
<modify-attr attr-name="Given Name">
<remove-all-values/>
<add-value>
<value>Test</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raBefattningsKod">
<remove-all-values/>
<add-value>
<value type="string">89470</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raPersonnummer">
<remove-all-values/>
<add-value>
<value>123456781234</value>
</add-value>
</modify-attr>
<modify-attr attr-name="recordNumber">
<remove-all-values/>
<add-value>
<value>1</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raAvgDatum">
<remove-all-values/>
<add-value>
<value type="string">20191231</value>
</add-value>
</modify-attr>
<modify-attr attr-name="Surname">
<remove-all-values/>
<add-value>
<value>User</value>
</add-value>
</modify-attr>
<modify-attr attr-name="isLastRecord">
<remove-all-values/>
<add-value>
<value>true</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnhetsKod">
<remove-all-values/>
<add-value>
<value>560</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raTitel">
<remove-all-values/>
<add-value>
<value>Utredare</value>
</add-value>
</modify-attr>
<modify-attr attr-name="Login Expiration Time">
<remove-all-values/>
<add-value>
<value type="time">1577750400</value>
</add-value>
</modify-attr>
<modify-attr attr-name="Full Name">
<remove-all-values/>
<add-value>
<value type="string">Test User</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnhet">
<remove-all-values/>
<add-value>
<value type="string">Kulturvårdsstöd</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnh">
<remove-all-values/>
<add-value>
<value type="string">Kulturvårdsstöd</value>
</add-value>
</modify-attr>
<modify-attr attr-name="raInaktiv">
<remove-all-values/>
</modify-attr>
<modify-attr attr-name="raStartDatum">
<remove-all-values/>
</modify-attr>
<operation-data/>
</modify>
</input>
</nds>
[11/26/19 08:47:35.352]:Primula PT:Filtering out notification-only attributes.
[11/26/19 08:47:35.352]:Primula PT: Filtered out <modify-attr attr-name='recordNumber'>.
[11/26/19 08:47:35.352]:Primula PT: Filtered out <modify-attr attr-name='isLastRecord'>.
[11/26/19 08:47:35.353]:Primula PT:Stripping operation data from input document
[11/26/19 08:47:35.353]:Primula PT:Pumping XDS to eDirectory.
[11/26/19 08:47:35.353]:Primula PT:Performing operation modify for \RAA-META\RA\Personal\testuser.
[11/26/19 08:47:35.353]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Duplicating : context = 212271186, tempContext = 212271244
[11/26/19 08:47:35.354]:Primula PT:Modifying entry \RAA-META\RA\Personal\testuser.
[11/26/19 08:47:35.366]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Calling free on tempContext = 212271244
[11/26/19 08:47:35.366]:Primula PT:Restoring operation data to output document
[11/26/19 08:47:35.366]:Primula PT:
DirXML Log Event -------------------
Driver: \RAA-META\System\DirXML-DriverSet\Primula
Channel: Publisher
Object: 123456781234 (\RAA-META\RA\Personal\testuser)
Status: Success
[11/26/19 08:47:35.368]:Primula PT:Applying publisher filter.
[11/26/19 08:47:35.368]:Primula PT:Publisher processing modify for 123456781234.
[11/26/19 08:47:35.368]:Primula PT:Reading relevant attributes from RA\Personal\testuser.
[11/26/19 08:47:35.368]:Primula PT:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.7.0.0">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<query class-name="raPersonal" dest-dn="RA\Personal\testuser" dest-entry-id="44234" scope="entry">
<read-attr attr-name="Full Name"/>
<read-attr attr-name="Login Expiration Time"/>
<read-attr attr-name="raAvgDatum"/>
<read-attr attr-name="raEnh"/>
<read-attr attr-name="raEnhet"/>
<read-attr attr-name="Object Class"/>
</query>
</input>
</nds>
[11/26/19 08:47:35.370]:Primula PT:Pumping XDS to eDirectory.
[11/26/19 08:47:35.370]:Primula PT:Performing operation query for RA\Personal\testuser.
[11/26/19 08:47:35.370]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Duplicating : context = 212271186, tempContext = 212271244
[11/26/19 08:47:35.371]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Calling free on tempContext = 212271244
[11/26/19 08:47:35.371]:Primula PT:Read result:
[11/26/19 08:47:35.372]:Primula PT:
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product edition="Advanced" version="4.7.0.0">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<output>
<instance class-name="raPersonal" event-id="0" qualified-src-dn="O=RA\OU=Personal\OU=testuser" src-dn="\RAA-META\RA\Personal\testuser" src-entry-id="44234">
<association state="associated">123456781234</association>
<attr attr-name="Full Name">
<value timestamp="1574754455#23" type="string">Test User</value>
</attr>
<attr attr-name="Login Expiration Time">
<value timestamp="1574754455#21" type="time">1577750400</value>
</attr>
<attr attr-name="raAvgDatum">
<value timestamp="1574754455#13" type="string">20191231</value>
</attr>
<attr attr-name="raEnh">
<value timestamp="1574754455#27" type="string">Kulturvårdsstöd</value>
</attr>
<attr attr-name="raEnhet">
<value timestamp="1574754455#25" type="string">Kulturvårdsstöd</value>
</attr>
<attr attr-name="Object Class">
<value timestamp="1528416754#24" type="string">raPersonal</value>
<value timestamp="1528416754#25" type="string">User</value>
<value timestamp="1528416754#26" type="string">Organizational Person</value>
<value timestamp="1528416754#27" type="string">Person</value>
<value timestamp="1528416754#28" type="string">ndsLoginProperties</value>
<value timestamp="1528416754#29" type="string">Top</value>
<value timestamp="1528416754#220" type="string">DirXML-PasswordSyncStatusUser</value>
<value timestamp="1528416794#1" type="string">DirXML-ApplicationAttrs</value>
</attr>
</instance>
<status event-id="0" level="success"></status>
</output>
</nds>
[11/26/19 08:47:35.375]:Primula PT:Optimize Modify returned:
[11/26/19 08:47:35.375]:Primula PT:
<nds dtdversion="3.0">
<source>
<product build="2018-12-11 22:12:13" instance="Primula" version="1.2.201812112212">Generic File Driver</product>
<contact>VanCauwenberge.info</contact>
</source>
<input>
<modify class-name="raPersonal" dest-dn="RA\Personal\testuser" dest-entry-id="44234" event-id="gfd-pub-1" src-dn="123456781234">
<association>123456781234</association>
<modify-attr attr-name="raEnhet">
<remove-value>
<value timestamp="1574754455#25" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnh">
<remove-value>
<value timestamp="1574754455#27" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="Login Expiration Time">
<remove-value>
<value timestamp="1574754455#21" type="time">1577750400</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="raAvgDatum">
<remove-value>
<value timestamp="1574754455#13" type="string">20191231</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="Full Name">
<remove-value>
<value timestamp="1574754455#23" type="string">Test User</value>
</remove-value>
<add-value>
<value type="string"> </value>
</add-value>
</modify-attr>
</modify>
</input>
</nds>
[11/26/19 08:47:35.377]:Primula PT:Applying command transformation policies.
[11/26/19 08:47:35.377]:Primula PT:Applying policy: %+C%14CReactivate Inactive Account%-C.
[11/26/19 08:47:35.377]:Primula PT: Applying to modify #1.
[11/26/19 08:47:35.377]:Primula PT: Evaluating selection criteria for rule 'raPersonal: Flag Existing Account for Reactivation'.
[11/26/19 08:47:35.378]:Primula PT: (if-class-name equal "raPersonal") = TRUE.
[11/26/19 08:47:35.378]:Primula PT: (if-operation equal "modify") = TRUE.
[11/26/19 08:47:35.378]:Primula PT: (if-op-attr 'raStartDatum' available) = FALSE.
[11/26/19 08:47:35.378]:Primula PT: Rule rejected.
[11/26/19 08:47:35.378]:Primula PT:Policy returned:
[11/26/19 08:47:35.378]:Primula PT:
<nds dtdversion="3.0">
<source>
<product build="2018-12-11 22:12:13" instance="Primula" version="1.2.201812112212">Generic File Driver</product>
<contact>VanCauwenberge.info</contact>
</source>
<input>
<modify class-name="raPersonal" dest-dn="RA\Personal\testuser" dest-entry-id="44234" event-id="gfd-pub-1" src-dn="123456781234">
<association>123456781234</association>
<modify-attr attr-name="raEnhet">
<remove-value>
<value timestamp="1574754455#25" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnh">
<remove-value>
<value timestamp="1574754455#27" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="Login Expiration Time">
<remove-value>
<value timestamp="1574754455#21" type="time">1577750400</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="raAvgDatum">
<remove-value>
<value timestamp="1574754455#13" type="string">20191231</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="Full Name">
<remove-value>
<value timestamp="1574754455#23" type="string">Test User</value>
</remove-value>
<add-value>
<value type="string"> </value>
</add-value>
</modify-attr>
</modify>
</input>
</nds>
[11/26/19 08:47:35.380]:Primula PT:Applying policy: %+C%14CVeto all%-C.
[11/26/19 08:47:35.380]:Primula PT: Applying to modify #1.
[11/26/19 08:47:35.381]:Primula PT:Policy returned:
[11/26/19 08:47:35.381]:Primula PT:
<nds dtdversion="3.0">
<source>
<product build="2018-12-11 22:12:13" instance="Primula" version="1.2.201812112212">Generic File Driver</product>
<contact>VanCauwenberge.info</contact>
</source>
<input>
<modify class-name="raPersonal" dest-dn="RA\Personal\testuser" dest-entry-id="44234" event-id="gfd-pub-1" src-dn="123456781234">
<association>123456781234</association>
<modify-attr attr-name="raEnhet">
<remove-value>
<value timestamp="1574754455#25" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="raEnh">
<remove-value>
<value timestamp="1574754455#27" type="string">Kulturvårdsstöd</value>
</remove-value>
<add-value>
<value type="string"/>
</add-value>
</modify-attr>
<modify-attr attr-name="Login Expiration Time">
<remove-value>
<value timestamp="1574754455#21" type="time">1577750400</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="raAvgDatum">
<remove-value>
<value timestamp="1574754455#13" type="string">20191231</value>
</remove-value>
</modify-attr>
<modify-attr attr-name="Full Name">
<remove-value>
<value timestamp="1574754455#23" type="string">Test User</value>
</remove-value>
<add-value>
<value type="string"> </value>
</add-value>
</modify-attr>
</modify>
</input>
</nds>
[11/26/19 08:47:35.383]:Primula PT:Filtering out notification-only attributes.
[11/26/19 08:47:35.383]:Primula PT:Pumping XDS to eDirectory.
[11/26/19 08:47:35.383]:Primula PT:Performing operation modify for RA\Personal\testuser.
[11/26/19 08:47:35.383]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Duplicating : context = 212271186, tempContext = 212271244
[11/26/19 08:47:35.384]:Primula PT:Modifying entry RA\Personal\testuser.
[11/26/19 08:47:35.391]:Primula PT:--JCLNT-- \RAA-META\System\DirXML-DriverSet\Primula - Publisher : Calling free on tempContext = 212271244
[11/26/19 08:47:35.391]:Primula PT:
DirXML Log Event -------------------
Driver: \RAA-META\System\DirXML-DriverSet\Primula
Channel: Publisher
Object: 123456781234 (RA\Personal\testuser)
Status: Success
[11/26/19 08:47:35.391]:Primula PT:Fixing up association references.
[11/26/19 08:47:35.392]:Primula PT:

 

Labels (1)
0 Likes
1 Solution

Accepted Solutions
Knowledge Partner
Knowledge Partner

Re: Optimize Modify headaches

Jump to solution

IDM versions from 3.6.1-ish to 4.7.2 always optimize modifies when merges happen, the filter setting only applies to associated modifies.

I've opened a bug about this a couple of years ago and it was finally fixed by implementing a new ECV in 4.7.3. From the readme:

Ignoring Optimization of Modify Events When the Publisher Channel is Performing a Merge Event#

This release introduces a new Engine Control Value named Optimize Modify on Publisher Merge. This control enables the Identity Manager Engine to decide whether to optimize the changes that are sent to the Identity Vault at the time when the Publisher channel is processing a merge operation. By default, this is set to true. This setting allows the Identity Manager Engine to optimize the changes sent to the Identity Vault.

So patch to 4.7.3 and this should be fixable. 🙂

______________________________________________
https://www.is4it.de/identity-access-management

View solution in original post

3 Replies
Knowledge Partner
Knowledge Partner

Re: Optimize Modify headaches

Jump to solution

IDM versions from 3.6.1-ish to 4.7.2 always optimize modifies when merges happen, the filter setting only applies to associated modifies.

I've opened a bug about this a couple of years ago and it was finally fixed by implementing a new ECV in 4.7.3. From the readme:

Ignoring Optimization of Modify Events When the Publisher Channel is Performing a Merge Event#

This release introduces a new Engine Control Value named Optimize Modify on Publisher Merge. This control enables the Identity Manager Engine to decide whether to optimize the changes that are sent to the Identity Vault at the time when the Publisher channel is processing a merge operation. By default, this is set to true. This setting allows the Identity Manager Engine to optimize the changes sent to the Identity Vault.

So patch to 4.7.3 and this should be fixable. 🙂

______________________________________________
https://www.is4it.de/identity-access-management

View solution in original post

Knowledge Partner
Knowledge Partner

Re: Optimize Modify headaches

Jump to solution
Brilliant!
I will patch tomorrow.
0 Likes
Knowledge Partner
Knowledge Partner

Re: Optimize Modify headaches

Jump to solution

I did patch it up.

Actually up to 4.8 while I was at it.

The ECV is there, took a while to find since it wasn't so pretty in my not yet updated desiger.

 

I did't find that this worked though.

I had to change the behaviour of the driver from sending the default event add to dynamic. So it first queries for an association.

Then it started to work as expected.

 

Thanks for the info about the merge processor. I had forgot about that.

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.