我们目前正在测试从Wildfly 8.2.0迁移到Wildfly 9.0.0.CR1(或从快照构建的CR2).系统是使用mod_cluster的集群,并且在VPS上运行,实际上阻止它使用多播.
在8.2.0我们一直使用以下配置的modcluster运行良好:
<mod-cluster-config proxy-list="1.2.3.4:10001,1.2.3.5:10001" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
Run Code Online (Sandbox Code Playgroud)
不幸的是,在9.0.0上,不推荐使用proxy-list,服务器的启动将以错误结束.可怕的文档缺乏,但经过几次尝试后,我发现代理列表被替换为代理,这些代理是出站套接字绑定列表.因此,配置如下所示:
<mod-cluster-config proxies="mc-prox1 mc-prox2" advertise="false" connector="ajp">
<dynamic-load-provider>
<load-metric type="cpu"/>
</dynamic-load-provider>
</mod-cluster-config>
Run Code Online (Sandbox Code Playgroud)
并且应该将以下内容添加到相应的socket-binding-group中(在我的情况下为full-ha):
<outbound-socket-binding name="mc-prox1">
<remote-destination host="1.2.3.4" port="10001"/>
</outbound-socket-binding>
<outbound-socket-binding name="mc-prox2">
<remote-destination host="1.2.3.5" port="10001"/>
</outbound-socket-binding>
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.在此之后,httpd集群开始注册节点.但是我从负载均衡器得到错误.当我查看/ mod_cluster-manager时,我看到一些Node REMOVED行,还有很多错误,如:
ERROR [org.jboss.modcluster] (UndertowEventHandlerAdapter - 1) MODCLUSTER000042: Error MEM sending STATUS command to node1/1.2.3.4:10001, configuration will be reset: MEM: Can't read node
Run Code Online (Sandbox Code Playgroud)
在mod_cluster的日志中有相应的警告:
manager_handler STATUS error: MEM: Can't read node
据我所知,问题是虽然wildfly/modcluster能够连接到httpd/mod_cluster,但它不能以其他方式工作.不幸的是,即使经过广泛的努力,我也被困住了.
有人可以帮助为没有广告的Wildfly 9.0.0设置mod_cluster吗?非常感谢.
在我们从Wildfly 8.2.1.Final升级到Wildfly 9.0.1.Final后,我们开始收到很多警告,如下所示:
WARNING [org.jgroups.protocols.TCP] (INT-1,ee,dev6.example.com:server1) JGRP000012: discarded message from different cluster hq-cluster (our cluster is ee). Sender was ad3f8046-3c95-f6d4-da13-3019d931f9e4 (received 4 identical messages from ad3f8046-3c95-f6d4-da13-3019d931f9e4 in the last 64159 ms)
Run Code Online (Sandbox Code Playgroud)
这些消息适用于主机上的各种主机和服务器.同样的事情是在Betas和CR版本的Wildfly中,另一方面,它不是版本8.我们使用TCP作为传输,但根据其他资源,相同的是UDP.
有人有解决方案(当然除了提高日志的严重性级别)?谢谢.
我在NetBeans和Maven下进行Wildfly测试时遇到问题.我可以从IDE启动应用程序,我甚至可以使用Netbeans调试器调试它,但是一旦我开始单元测试,我就会收到以下错误:
No EJBContainer provider available: no provider names had been found.
javax.ejb.EJBException
at javax.ejb.embeddable.EJBContainer.reportError(EJBContainer.java:216)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:146)
at javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:102)
at cz.interactsys.ejb.StatefulSessionBeanTest.setUp(StatefulSessionBeanTest.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:175)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:107)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:68) …Run Code Online (Sandbox Code Playgroud) 在Wildfly 9中显示已注册的JNDI名称的正确方法是什么?
对于旧版本,可以使用/subsystem=naming:jndi-view,但它似乎不再起作用.在域模式下运行时.
感谢帮助.