这是我第一次在 stackOverflow 中给出答案。我用jdk1.6.0_32在我的centos6.3中设置了MPJExpress-v0_42,最后一切似乎都OK了。
问题1:无法连接到机器和端口的守护进程
守护程序未运行时可能会发生这种情况。您可以尝试如下:
- 您可以使用它
sudo netstat -anp |grep port
来检查端口是否正在侦听并获取 processId。
在我的机器上,使用 启动守护程序后mpjdaemon -boot localhost
,我使用sudo netstat -apn |grep 4000
命令检查端口并得到以下信息。
tcp 0 0 :::40000 :::* LISTEN 8766/java
tcp 0 0 :::40001 :::* LISTEN 8766/java
端口配置在里面$MPJ_HOME/conf/wrap.conf
,我的配置如下:
#port number for the daemon.
wrapper.app.parameter.2=40001
#Socket Server Port Number.
wrapper.app.parameter.3=40000
我也是用jps -m
命令获取java daemon进程,结果如下:
8766 MPJDaemon 40001
30850 Jps -m
这里8766
是netstat
显示的processId,MPJDaemon
是守护进程,40001
是监听端口。
在您的问题中,您无法连接守护进程。执行以下操作:
- 你应该检查端口。如果找不到使用的端口
netstat
,一般是指MPJDaemon is not running
.
- 可以肯定的是,您也可以使用 jps 来检查进程。也许进程正在运行,但端口是另一个
- 不要使用
mpjboot machines
或之类的集群命令mpjrun.sh -np 2 -dev niodev HelloWorld
。您可以使用mpjdaemon -boot localhost
测试当前机器,如果它配置好,您可以使用一项设置机器文件localhost
并运行集群命令。
我遇到的其他问题。
问题2:使用ant编译失败
起初我使用MPJ-v0_44.zip
and jdk1.6.0
,但它无法编译并给出错误 that ProcessBuilder has no method of "interNIO"(something like that)
。我分析了源代码,猜测可能是因为JDK版本低了一点。鉴于升级 JDK 有点复杂,我找到了另一个 MPJ 版本,mpj-v0_42.zip
它编译正常。
问题 3:mpjdaemon -boot localhost
没有错误信息,但 MPJDeamon 没有运行。
在我配置了MPJ_HOME
from .bash_profile
to这样的环境变量后.bashrc
,问题就解决了。我不知道为什么。
问题 4:命令jps -m
说“MPJDeamon is running”,但mpjdaemon -status localhost
说“mpjdeamon is not running”。
我使用命令(ssh localhost nohup 'jps -m'
),它说jps
找不到命令,但我使用 jps 命令工作正常。我想可能是和上面一样的问题。jps的路径没有在路径环境变量中配置.bashrc
。因此,在添加一行PATH=/jpspath:$PATH
in后.bashrc
,一切正常。