我已经创建了群集“ mycluster”,两个本地实例以及具有目标服务器和群集的资源jms / Queue1,jms / Queue2和jms / Topic。

因此,我以这种方式创建了集群:


创建群集mycluster
create-instance --node localhost-domain1 --cluster mycluster instance01
create-instance --node localhost-domain1 --cluster mycluster instance02


[...]


启动群集mycluster
部署--target mycluster Coo.ear


以名称Coo部署的应用程序。

警告:命令_deploy在服务器实例instance01上未成功完成:远程故障:无法在实例instance01上加载应用程序。该应用程序将无法正常运行。请修正您的应用程序并重新部署。

加载应用程序时发生异常:EJB容器初始化错误。请参阅server.log以获取更多详细信息。

警告:命令_deploy在服务器实例instance02上未成功完成:远程故障:无法在实例instance02上加载应用程序。该应用程序将无法正常运行。请修正您的应用程序并重新部署。

加载应用程序时发生异常:EJB容器初始化错误。请参阅server.log以获取更多详细信息。
命令部署已完成,并带有警告。

[...]

在[服务器]上:主机名:8080 / FE-war /。

在[instance01群集]上的主机名:28080 / FE-war



在[instance02集群]上的主机名:28081 / FE-war

我得到了这个绝望的HTTP状态404-未找到((((

完整的日志文件服务器,instance01,instance02,[...]:

https://drive.google.com/folderview?id=0B7CqU8774DG8RGx0VkRVeEZXclE&usp=sharing

2016-02-06T17:00:24.593 + 0100] [glassfish 4.1] [SEVERE] [] [org.eclipse.persistence.session./file:/home/glassfish/glassfish4/glassfish/nodes/localhost-domain1/Coo1/ applications / ejb-timer-service-app / WEB-INF / classes / ___ EJB__Timer__App.ejb] [tid:_ThreadID = 22 _ThreadName = RunLevelControllerThread-1454774410800] [timeMillis:1454774424593] [levelValue:1000] [[

本地异常堆栈:
异常[EclipseLink-4002](Eclipse Persistence Services-2.6.1.v20150605-31e8258):org.eclipse.persistence.exceptions.DatabaseException
内部异常:java.sql.SQLException:分配连接时出错。原因:无法分配连接,因为:java.net.ConnectException:连接服务器本地主机sulla porta 1527错误消息。
错误代码:0
[...]

最佳答案

您的数据库/数据源配置不正确。当前,它要连接到localhost:1527上的数据库,但这意味着每个实例都将尝试连接到自身本地的数据库。显然,这不是您想要的-无论您使用什么实例,您都希望您的应用程序始终连接到同一数据库。

您需要在群集配置中编辑数据源以使用正确的主机名,以便每个实例都连接到例如dbserver:1527,如果是生产部署,则将数据库从Derby更改为其他名称(例如MySQL,MariaDB) ,PostgreSQL等)。 Apache Derby不适合生产使用。

08-18 14:01