oops, I have mistake in my question. sorry.
I have trouble when do provisioning not call read API.
As you say, read connector API is working well. It loads data from DB(Of
course My A and B server using same DB).
But during provisioning, Syncope loads data from spring bean factory is
managed in instance's InMemory(I guessed).
When run provisioning task, call doExecute method from
AbstractProvisioningJobDelegate.java
And it loads connector data via ConnectorFactory.java 's getConnector
method.
I can see getConnector method in ConnectorManager.java. It loads data from
beanFactory.
@Override
public Connector getConnector(final ExternalResource resource) {
// Try to re-create connector bean from underlying resource (useful for
managing failover scenarios)
if
(!ApplicationContextProvider.getBeanFactory().containsBean(getBeanName(resource)))
{
registerConnector(resource);
}
return (Connector) ApplicationContextProvider.getBeanFactory().
getBean(getBeanName(resource));
} So, After I update connector via Syncope server A , It updates DB and own
spring bean.
Then read connector API works well and I can see the updated connector data
from management console.
But server B's bean is not updated yet. In this case, If provisioning run
in Server B, B has 'old' connector data.
2018-04-02 11:03 GMT+09:00 Elena Hong <[email protected]>:
> How can each syncope servers in high available environment share connector
> which saved as spring bean at inmemory?
>
>
>
> * My environment.
>
> I set high available with two syncope servers called A, B and nginx.
>
>
>
> * My problem
>
> 1. I call connector update api to nginx.
>
> 2. nginx call syncope server A, and update connector 'new' data in DB and
> spring bean.
>
> 3. I call connector read api to nginx.
>
> 4. nginx call syncope server B, then B returned 'old' data at spring bean.
>
>
>
> How can I solved it..?
> give me a tip please..
>