com.ibm.security.access.ldap.utils.AttributeUtil.
I am providing the mapping rule code that I have tried to get the replication pending change count and replication status. But the code below is returning the other parameters of replications and not the replication pending change count and replication status.
importClass(Packages.com.tivoli.am.fim.trustserver.sts.utilities.IDMappingExtUtils);
importClass(Packages.com.ibm.security.access.server_connections.ServerConnectionFactory);
importClass(Packages.com.tivoli.am.fim.trustserver.sts.utilities.OAuthMappingExtUtils);
importClass(Packages.com.tivoli.am.fim.trustserver.sts.uuser.Attribute);
importPackage(Packages.com.tivoli.am.fim.trustserver.sts.utilities);
importClass(Packages.com.ibm.security.access.user.User);
importClass(Packages.com.ibm.security.access.ldap.utils.AttributeUtil);
importClass(Packages.com.tivoli.am.fim.trustserver.sts.uuser.Attribute);
importClass(Packages.com.tivoli.am.fim.trustserver.sts.uuser.ContextAttributes);
IDMappingExtUtils.traceString("Entering Replication Info");
success.setValue(false);
IDMappingExtUtils.traceString("Inside :::");
var attrUtil = new AttributeUtil();
var contextAttr = new ContextAttributes();
var myLDAPConnection = ServerConnectionFactory.getLdapConnectionByName("LDAPProd");
IDMappingExtUtils.traceString("TmyLDAPConnection:::"+myLDAPConnection);
attrUtil.init(myLDAPConnection,"LDAPProd","o=companyName,c=ae");
var filter = "(&(objectclass=ibm-repl*nt)(objectClass=ibm-replicationagreement))";
IDMappingExtUtils.traceString("filter :::"+filter);
var searchAttrs = ['ibm-replicationLastChangeId'];
var searched = attrUtil.search('O=companyName,C=AE', filter, searchAttrs);
var result = searched.getNamingEnumeration();
var responseControl = searched.getResponseControls();
IDMappingExtUtils.traceString("responseControl::: " + responseControl);
if(responseControl != null){
while (responseControl.hasMore()) {
var attrsResponse = responseControl.next().getAttributes();
IDMappingExtUtils.traceString("Iterating each attrsResponse::: " + attrs);
}
}
IDMappingExtUtils.traceString("after search result : " + result);
while (result.hasMore()) {
var attrs = result.next().getAttributes();
if(attrs.get("ibm-replicationLastChangeId")){
IDMappingExtUtils.traceString(attrs.get("ibm-replicationLastChangeId"));
IDMappingExtUtils.traceString(":::::::::::::::::::::::::::::::::::::");
IDMappingExtUtils.traceString(attrs.get("ibm-replicationLastChangeId").get());
}
//var attrs = result.next().getAttributeValueByName('ibm-replicationLastChangeId');
IDMappingExtUtils.traceString("Iterating each attributes : " + attrs);
}
var getContextReplicaInfo= contextAttr.getAttributeValueByName('ibm-replicationLastChangeId');
IDMappingExtUtils.traceString("contextGetReplicaInfo Value::: " +getContextReplicaInfo);
attrUtil.close();
But I am getting the below for this code.
Output: -
"{ibm-replicamethod=ibm-replicamethod: 1, ibm-replicaconsumerid=ibm-replicaconsumerid: 7bf77940-6d61-103b-9d7a-f40c0b10f439, ibm-replicationonhold=ibm-replicationonhold: FALSE, ibm-replicaurl=ibm-replicaurl: ldap://hostname:389, ibm-replicacredentialsdn=ibm-replicacredentialsdn: cn=mycreds,cn=replication,cn=IBMpolicies, objectclass=objectclass: ibm-replicationagreement, top, cn=cn: hostname:389}"
Please any me know how can get the replication pending change count and replication status.