我创建了集群" 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 [...]
答案 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更改为您启动数据库的服务器的主机名。