OpenAM (Forgerock) - "ds replication" Session replication problem

354 views Asked by At

I have two WEB nodes/servers where two “OpenAM” instances run under “Apache Tomcat” Web Server. I would like to apply the “Session Replication”, on these two nodes, using the OpenAM’s standard "ds replication" commands :

dsreplication.bat enable --host1 [host/server 1 FQDN] --port1 4444 --bindDN1 "cn=Directory Manager" --bindPassword1 Test123 --replicationPort1 58989 --host2 [host/server 1 FQDN] --port2 4444 --bindDN2 "cn=Directory Manager" --bindPassword2 Test123 --replicationPort2 58989 --adminUID replicationAdmin --adminPassword Test456 --baseDN "dc=XXX,dc=YYYY" -X -n

I don't have any kind of problem if the Web Servers have only one network adapter and therefore the FQDN/Server Name corresponds to one and only one "IP address"

Unfortunately I find myself in a situation in which the Web Servers have 2 network adapter and therefore 2 “IP Addresses” : “FE- Front End” and “BE – Back End” IP address

• “Web Server 1” sees/resolves its hostname with the “FE- Front End” IP address • “Web Server 2” sees/resolves its hostname with the “FE- Front End” IP address

• “Web Server 1” sees/resolves the hostname of “Web Server 2” with the “BE – Back End” IP address • “Web Server 2” sees/resolves the hostname of “Web Server 1” with the “BE – Back End” IP address

I think this “network configuration” (double “network adapter” and “IP Address” for each Web Server) creates some communication problems when I run the “ds replication” command to apply the "Session Replication" between Web Server 1 and Web Server 2

the "ENABLE" command of "dsreplication.bat" seems invoked correctly ... But I get an error during execution

dsreplication.bat enable --host1 [host/Web server 1 FQDN] --port1 4444 --bindDN1 "cn=Directory Manager" --bindPassword1 Test123 --replicationPort1 58989 --host2 [host/Web server 1 FQDN] --port2 4444 --bindDN2 "cn=Directory Manager" --bindPassword2 Test123 --replicationPort2 58989 --adminUID replicationAdmin --adminPassword Test456 --baseDN "dc=XXX,dc=YYY",dc=ZZZ" -X -n

Establishing connections ..... Done Checking registration information ..... Done Configuring Replication port on server WebServer1:4444... Done Configuring Replication port on server WebServer2:4444 ..... Done Updating replication configuration for baseDN dc=XXX,dc=YYY,dc=ZZZ on server WebServer1:4444.....Done Updating replication configuration for baseDN dc=XXX,dc=YYY,dc=ZZZ on server WebServer2:4444.....Done Updating registration configuration on server WebServer1:4444.....Done Updating registration configuration on server WebServer2:4444.....Done Updating replication configuration for baseDN cn=schema on server WebServer1:4444.....Done Updating replication configuration for baseDN cn=schema on server WebServer2:4444.....Done

Initializing registration information on server WebServer2:4444with the contents of server WebServer1:4444..... ERROR during the initialization with contents from server WebServer1:4444. Last log details: [07/mag/2021:10:27:01+0200] nseverity="NOTICE"msgCount=0 msgID=org.opends.messages.backend-413 message="Initialize From Replica task setup-initialize-1 started execution". Task state: STOPPED_BY_ERROR. Check the error logs of WebServer1:4444 for more information. ….\Temp\opendj-replication-4691783391363351360.log for detailed log of this

Unfortunately the log file "opendj-replication-4691783391363351360.log" is EMPTY! Into the LOG files of Apache Tomcat I do NOT find anything about it.

Is it necessary to specifically modify the "ENABLE" command of "dsreplication.bat" in order to manage two Network adapters n Web Server? is there anyone who can help me with this issue?

1

There are 1 answers

0
Hamza Tahiri On

If i understand correctly, you need to activate replication between two ldap, of course the command you used wont work, first because you are trying to use the same port twice on the same machine:

dsreplication.bat enable --host1 [host/server 1 FQDN] --port1 4444 --bindDN1 "cn=Directory Manager" --bindPassword1 Test123 --replicationPort1 58989 --host2 [host/server 1 FQDN] --port2 4444 --bindDN2 "cn=Directory Manager" --bindPassword2 Test123 --replicationPort2 58989 --adminUID replicationAdmin --adminPassword Test456 --baseDN "dc=XXX,dc=YYYY" -X -n

You dont have to use fqdn for your machines, you can use ipAdressess directly or even update you respective fqdns on both machine so that that have a secondary name used only for opendj purposes.

If ipAdresses is not an option (for example you run this on cloud), and you cant tweak the fqdn, then unfortunatly there is no way to use replicaiton. Forgerock DS 7.1 apparently solves this problemes which was very common on cloud, i didnot test it yet. The opensource version wont have any updates to resolve this.