glassfish 4.1和JMS集群

时间:2016-02-06 19:18:05

标签: java java-ee glassfish cluster-computing

我创建了集群" mycluster",两个本地实例和资源jms / Queue1,jms / Queue2和jms / Topic与目标服务器和集群。

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

  • create-cluster mycluster

  • create-instance --node localhost-domain1 --cluster mycluster instance01

  • create-instance --node localhost-domain1 --cluster mycluster instance02

[...]

  • start-cluster mycluster

  • deploy --target mycluster Coo.ear

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

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

加载应用程序时出现异常:EJB容器初始化错误。有关更多详细信息,请参阅server.log。

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

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

[...]

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

On [instance01 the cluster] hostname:28080 / FE-war

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

我得到了这个绝望的HTTP状态404 - Not Found(((

完成日志文件服务器,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:Errore di connessione al server localhost sulla porta 1527 con messaggio Connessione rifiutata。 错误代码:0 [...]

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

在其中一个群集主机或DAS主机上启动derby数据库服务器。

asadmin start-database

您还需要在管理控制台中重新配置jdbc / __默认数据源的URL。选择DerbyPool连接池的Additional Properties选项卡,并将serverName从localhost更改为您启动数据库的服务器的主机名。

JDBC Settings for the DerbyPool