如何在同一个tomcat服务器上安装多个实例DSpace?

时间:2016-06-03 16:28:13

标签: tomcat7 dspace

我想创建另一个dspace实例来处理不同的项目。但是我不知道它是如何或者是否与这种运行相冲突。

2 个答案:

答案 0 :(得分:2)

虽然技术上可行,但我会建议不要出于以下三个主要原因:

  1. DSpace的一些配置方面仍然指望Tomcat重启才能生效。如果您在同一个Tomcat中运行了两个实例,则意味着当您想要更新其中一个实例时,必须将它们都关闭。

  2. 即使您只在一个Tomcat中运行一个实例,与DSpace相关的性能相关问题已经远非琐碎。如果你运行两个实例,很可能你只会让这个更难。

  3. 这种设置是非标准的。与所有非标准设置一样,您会发现获得社区支持更加困难,因为很少有其他人会在同一条船上。

  4. 所以......要么在一个VM上运行两个VM,要么只运行两个Tomcat进程。

    如果在这些警告之后,您仍然希望这样做,那么基本操作就是在tomcat上,在不同的端口上运行您想要两次的所有Web应用程序。您需要的最小值是2x XMLUI或JSPUI和2x SOLR。可以运行一个solr webapp,并在这个SOLR webapp中保留2个搜索,统计,权限和oai索引,但我不知道副作用是什么。

答案 1 :(得分:1)

1)显然,每个实例都应该安装到不同的目录集中。

2a)为每个实例创建一个单独的Context。这会给他们不同的路径:URL Encodehttp://legion.example.com/one/ ....我一直在我的开发工作站上这样做。

2b)您还可以创建单独的域和IP地址,将它们绑定到单个Tomcat配置中的多个Host对象:http://legion.example.com/two/http://one.example.com/ ....我有四个小批量生产DSpace在中型主机上的一个Tomcat实例中运行的实例。

每个DSpace实例都需要自己的数据库,但PostgreSQL可以托管数十个。您应该考虑为每个帐户创建单独的数据库用户帐户。

对于每个DSpace,您还需要单独的Handle解析器,就像每个实例都在其自己的主机上一样。当为DSpace配置时,Handle解析器使用DSpace数据库而不是它自己的数据库,因此它特定于单个实例。

Solr应该能够为多个DSpace提供多组内核,但是您必须进行大量配置才能使它们保持不同,并确保每个DSpace都使用自己的集合。对于使用单个DSpace安装的强制Solr实例,您将学到更多关于Solr的知识。

但是,您还将学习更多关于Tomcat的 lot ,而不是您需要知道的单个DSpace ....

如果您在外部文件([Tomcat] /config/Catalina/localhost/one.xml等)中声明上下文并且您已自动部署设置正确,则可以“触摸”其中一个上下文以重新启动它无需重新启动整个Tomcat。否则,您可以使用Tomcat Manager webapp执行此操作。但是要考虑是否要让Manager运行,因为它非常强大并且在网络上公开。我在另一个不可路由的地址上运行此类应用程序,因此无法从外部访问它们。

DSpace不小,因此您需要确保有足够的内存来运行多个实例,并相应地调整Tomcat的内存限制。我建议还安装资源监视器,如Psi Probe,并定期浏览它。上述关于绩效的评论是现场评论。

学会完成所有这些工作充满乐趣,花了很长时间。另一方面,对于开发,您可能更喜欢像http://two.example.com/这样的东西,一个带有DSpace和内部朋友的打包虚拟机。