Федеративное хранилище с репозиториями с другого сервера - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу создать абстрактный репозиторий для федеративного хранилища в AllegroGraph.

Я могу подключиться к репозиториям, хранящимся на другом сервере. Но когда я пытаюсь объединить их, используя функцию объединения, выдает ошибку, что не может найти хранилище на втором сервере.

Я нашел тот же вопрос в этой ссылке , но это не помогает. Есть намеки?

Это мой код:

AGServer server = new AGServer(SERVER_URL, USERNAME, PASSWORD);
AGServer server2 = new AGServer(SERVER_URL2, USERNAME2, PASSWORD2);
println("Available catalogs: " + server.listCatalogs());
AGRepositoryConnection custCon = server.createRepositoryConnection("repo1", CATALOG_ID, false);
AGRepositoryConnection supCon = server2.createRepositoryConnection("repo2", CATALOG_ID, false);
AGAbstractRepository rainbowRepo = server2.federate(custCon.getRepository(), supCon.getRepository());

rainbowRepo.initialize();
AGRepositoryConnection rainbowConn = rainbowRepo.getConnection();

1 Ответ

0 голосов
/ 24 апреля 2018

SailRepository класс реализует FederatedServiceResolverClient для контекста федерации, поэтому вы можете использовать класс SailRepository для добавления федеративного хранилища с различными репозиториями:

AGServer server = new AGServer(SERVER_URL, USERNAME, PASSWORD);
AGServer server2 = new AGServer(SERVER_URL2, USERNAME2, PASSWORD2);

AGRepository repo1 = server.getCatalog(CATALOG_ID).openRepository("repo1");
AGRepository repo2 = server2.getCatalog(CATALOG_ID).openRepository("repo2");

Federation federation = new Federation();
federation.addMember(repo1);
federation.addMember(repo2);
federation.setReadOnly(true); 

SailRepository rainbowRepo  = new SailRepository(federation);
rainbowRepo .initialize();

SailRepositoryConnection rainbowConn  =  rainbowRepo .getConnection(); //for querying and updating the contents of the repository.
...