【问题标题】:Federated store with repositories from different server具有来自不同服务器的存储库的联合存储
【发布时间】:2018-04-24 13:02:25
【问题描述】:

我想为 AllegroGraph 中的联合存储创建一个抽象存储库。

我可以连接到存储在不同服务器上的存储库。但是当我尝试使用 federate 函数组合它们时,它会抛出一个错误,它无法在第二台服务器上找到存储库。

我在link 中发现了同样的问题,但没有帮助。有什么提示吗?

这是我的代码:

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();

【问题讨论】:

    标签: java sesame allegrograph federated


    【解决方案1】:

    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.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      相关资源
      最近更新 更多