[紧急]JBoss集群部署不成功的原因,在线等

pushboy 2007-12-05 10:06:55
部署两台JBoss4.0.3SP1
修改了cluster-service.xml & jboss-service.xml的配置
但是启动JBoss,日志中是这样的信息
-------------------------------------------------------
GMS: address is sztp02:32850
-------------------------------------------------------
2007-12-05 09:54:07,912 INFO [org.jboss.cache.TreeCache] viewAccepted(): new members: [sztp02:32845]
2007-12-05 09:54:07,919 INFO [org.jboss.cache.TreeCache] state could not be retrieved (must be first member in group)
......

GMS: address is sztp02:32847 (additional data: 18 bytes)
-------------------------------------------------------
2007-12-05 09:54:12,547 INFO [org.jboss.ha.framework.interfaces.HAPartition.test] Number of cluster members: 1
2007-12-05 09:54:12,550 INFO [org.jboss.ha.framework.interfaces.HAPartition.lifecycle.test] New cluster view for partition test (id: 0, delta: 0) : [192.168.0.238:1099]
2007-12-05 09:54:12,551 INFO [org.jboss.ha.framework.interfaces.HAPartition.test] Other members: 0
2007-12-05 09:54:12,552 INFO [org.jboss.ha.framework.interfaces.HAPartition.test] Fetching state (will wait for 30000 milliseconds):

使用客户端测试,也只能一台服务器接收到消息,请问这是哪里的配置的原因呢
谢谢
...全文
1173 38 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
pushboy 2008-05-16
  • 打赏
  • 举报
回复
不好意思,很久没来了
这个问题已经搞定
以前的UDP改成IP模式就可以了
多谢各位
结贴
knowledge_Is_Life 2008-04-30
  • 打赏
  • 举报
回复
不会,帮顶
JBossWeek 2007-12-28
  • 打赏
  • 举报
回复
不知道有没有在没有修改cluster-service.xml的情况下测试过线上环境的集群情况?
JBossWeek 2007-12-28
  • 打赏
  • 举报
回复
怎么看不见最新的回复31-34呢?
moonstone2007 2007-12-27
  • 打赏
  • 举报
回复
关注
pushboy 2007-12-25
  • 打赏
  • 举报
回复
...还是老样子
能改的都改了
pushboy 2007-12-18
  • 打赏
  • 举报
回复
1、使用loadbalancer是看资料上面说:
"将文件夹%jboss%\docs\examples\varia\loadbalancer\loadbalancer.sar拷贝到%jboss%\ server\all\deploy下,并且修改loadbalancer.sar\loadbalancer.sar\META-INF\jboss- service.xml,在<host>标签中类出所有节点,在<sticky-session>标签中指定是否使用粘性 session。"

我就照葫芦画瓢了...

2、线上环境和线下环境而言都是一样的,除了一点,也是我现在怀疑的,就是网络环境可能会不同
但是涉及到的端口都是通连的,所以不知道到底是哪里的影响

3、"由于修改了partition的名称导致的集群的问题",你指的是什么?我的partition名称一直是test,还是说修改了jboss默认的集群名称?

谢谢你的一直关注
JBossWeek 2007-12-17
  • 打赏
  • 举报
回复
1、有点不太明白,根据你的描述应该使用的ejb3的集群服务,但是你却使用loadbalancer配制了web层的集群,不知道有何用途?
2、按照你的描述在线下环境没有问题,而线上环境有问题,那么线上环境和线下环境区别在哪里,操作系统是否相同?配置文件是否相同?等等
3、有点怀疑是否由于修改了partition的名称导致的集群的问题,ejb3集群对partition的支持还不是太好。不知道楼主有没有在没有修改过partition名称的集群上测试过?
pushboy 2007-12-16
  • 打赏
  • 举报
回复
1、逻辑结构:
Server提供EJB接口;Client初始化时候lookup到Ejb;用户界面操作触发客户端调用Ejb接口,完成业务逻辑,返回值;

2、部署结构
服务端:Server1 & Server2 部署为Jboss/server/all/deploy/deploy.last/Core.sar
客户端:Client1 & Client2 & client3...jndi.prop指定EJB集群属性;jndi.prop位置在引用的服务端Jar包内,如下:
Server.jar
¦--com(服务端类包)
¦--META-INF
¦--jndi.properties

3、测试方法:有一组测试类,不断的大并发的调用客户端方法,期望服务端能够通过负载分发来响应这些客户端请求

涉及到的配置文件内容基本在上面都有
主要是服务端的cluster-service.xml & jboss-service.xml
客户端的jndi.properties
pushboy 2007-12-15
  • 打赏
  • 举报
回复

这里没有web应用,是ejb组件没有收到消息
客户端loopup到ejb,然后直接调用接口方法

奇怪的是,我把线上这个环境拷到线下两台机器之后
直接修改对应的IP,就完全可以负载分发
是否和端口相关?
但是我查了涉及到的端口,都是没有问题的
[root@sz03 bin]# lsof -i :1098
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
java 14583 root 149u IPv4 201013 TCP *:1098 (LISTEN)
问题会在哪里呢?

另外,我修改jndi.prop配置为
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=jboss.naming:org.jnp.interfaces
jnp.partitionName=test

之后,客户端会报错如下:
{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, jnp.partitionName=test, java.naming.factory.url.pkgs=jboss.naming:org.jnp.interfaces}
java.lang.IndexOutOfBoundsException: Index: 3, Size: 0
at java.util.ArrayList.RangeCheck(ArrayList.java:547)
at java.util.ArrayList.get(ArrayList.java:322)
at com.a8.tptm.ice.mo.server.MoServerI$TimeOutThread.doEvent(MoServerI.java:331)
at com.a8.tptm.ice.mo.server.MoServerI$TimeOutThread.sendMoMsg2(MoServerI.java:292)
at com.a8.tptm.ice.mo.server.MoServerI$TimeOutThread.run(MoServerI.java:276)
javax.naming.CommunicationException: Receive timed out [Root exception is java.net.SocketTimeoutException: Receive timed out]
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1302)
at org.jnp.interfaces.NamingContext.checkRef(NamingContext.java:1419)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:579)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:572)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at com.a8.tptm.ice.mo.server.MoServerI.init(MoServerI.java:93)
at com.a8.tptm.ice.mo.server.MoServerI.<init>(MoServerI.java:55)
at com.a8.tptm.ice.mo.server.MoServer.main(MoServer.java:91)
Caused by: java.net.SocketTimeoutException: Receive timed out
at java.net.PlainDatagramSocketImpl.receive0(Native Method)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:136)
at java.net.DatagramSocket.receive(DatagramSocket.java:712)
at org.jnp.interfaces.NamingContext.discoverServer(NamingContext.java:1272)
... 7 more

socket连接不上......
JBossWeek 2007-12-15
  • 打赏
  • 举报
回复
pushboy,能把应用的逻辑结构和部署结构简单的说说吗?
bao19840910 2007-12-15
  • 打赏
  • 举报
回复
我的妈,看晕了,学习中~~
pushboy 2007-12-14
  • 打赏
  • 举报
回复
启动命令改成
./run.sh -c all -Djboss.partition.name=test &
现在看MBean的状态是UP
[[URL=http://192.168.0.16/, State=UP, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]], [URL=http://192.168.0.224/, State=UP, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]], [URL=http://192.168.0.232/, State=UP, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]]]

ejb3-interceptors-aop.xml文件,没做过改动,应该没问题的吧

但是16那台机器还是没有收到消息
JBossWeek 2007-12-14
  • 打赏
  • 举报
回复
是web层没有收到测试消息,还是ejb3组件里没有接到消息?
JBossWeek 2007-12-12
  • 打赏
  • 举报
回复
1、因为修改了集群partition的名称,所以ejb3的定义为:
@Stateless
@Clustered(partition="test")
public class ServiceInvokerBean implements IServiceInvokerRemote{
}
如果使用的ejb3是rc9版本,最好是在自己应用的/META-INFO目录下创建一个jboss.xml文件,在该文件里进行集群的配置

2、ejb3的集群是在JBossAOP的基础上实现的,如果有问题,请检查一下ejb3-interceptors-aop.xml是否正确
pushboy 2007-12-12
  • 打赏
  • 举报
回复
[[URL=http://192.168.0.16/, State=DOWN, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]], [URL=http://192.168.0.232/, State=DOWN, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]], [URL=http://192.168.0.224/, State=DOWN, LbFactor=1, Stats=[CurrentConnections=0, Requests=0, AvgResponseTime=0]]]

555,仔细一看,MBean的状态都是down
这是怎么回事阿
pushboy 2007-12-12
  • 打赏
  • 举报
回复
又查了一下http://192.168.0.16:8080/web-control
在JBoss.Web.loadbalancer下面明明的看到了三个节点
但是负载就是不起作用,真怪
要疯掉了
pushboy 2007-12-11
  • 打赏
  • 举报
回复
看资料,全是apache的mod_jk负载介绍
就没有jboss自身负载介绍
不过我觉得配置应该没错啊
真奇怪
pushboy 2007-12-11
  • 打赏
  • 举报
回复

我客户端是模拟的大并发的情况
在服务端一次处理的过程中,会有多个客户端请求过来
这样,服务器A来说,当他正在处理请求时候,又有新的请求过来,这时候,是排队等待他的处理,还是将此请求分配给另外一台闲置的服务器B来处理呢?我觉得应该是分配给服务器B来处理,否则负载岂不是失去了他的意义?
但是测试结果看到的是A在哪里不停的处理,B却是一动不动


你说的"ejb的集群配置可能有问题",具体指哪一部分?
谢谢你的回复
pushboy 2007-12-11
  • 打赏
  • 举报
回复
现在看起来应该是负载均衡没起作用
查了手头所有的资料,都是指向在%jbossnew%/server/all/deploy/loadbalancer.sar/META-INF/jboss-service.xml中的<host>节点配置
看不出来问题阿
郁闷死
加载更多回复(18)

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧