java.net.BindException:Glassfish 3.1中没有范围内的空闲端口

时间:2011-06-28 23:51:13

标签: glassfish-3

今天我已经通过Jenkins CI将应用程序部署到生产应用程序服务器GlassfishV3到autodeploy文件夹。应用程序服务器出现故障,我无法重新启动它。

我的目标是让服务器启动并运行与部署应用程序之前相同。这就是我所做的:

  1. 首先找到在端口4848上运行的进程的PID:nestat -nlept
  2. 然后通过执行kill -9 PID
  3. 来终止PID
  4. 删除Jenkinks刚刚放入autodeploy目录的war文件,万一这是问题所在。
  5. 执行./asadmin start-domain domain1
  6. 再次启动服务器
  7. 服务器需要FOREVER启动!实际上它永远不会成功启动,因为我无法访问管理控制台4848或任何已经运行的其他应用程序。但是,它会在4848处运行进程。
  8. 我查看了jvm.log和server.log,发现java.net.BindException:范围内没有自由端口.........
  9. 所以我的问题如下:

    1. 你知道发生了什么吗?
    2. 你知道怎么解决吗?
    3. 您是否知道加速./asadmin start-domain domain1进程的方法?
    4. 注意:在我们的QA应用服务器(相同版本,相同操作系统,相同Java,相同Grails)中,它不会发生。真的很沮丧这个问题。

      非常感谢你的帮助。任何帮助将非常感激,因为这是一个生产问题,已经有几个应用程序已经停止了几个小时。

      • 的Dario

1 个答案:

答案 0 :(得分:2)

我现在可以部署我的应用程序,基本上它可以归结为增加MaxPermSize jvm选项

在配置文件夹下,修改 domain.xml 并将默认大小更改为:

<强> -XX:MaxPermSize参数=256米

您可以随时增加它。

此外,如果这还不够,您还可以更改同一文件中的最大堆大小

-Xmx512m 。我已将其保留原样,但如果需要,您可以在64位操作系统上将其更改为6g或更多。在32位操作系统上,它最多只能识别3.5g。

希望这有助于将来的其他人,因为这个问题让我一直工作到晚上9点

<强>更新

我再次遇到了性能问题,我在Joshi的科技博客中找到了另一个解决方案: http://joshitech.blogspot.com/2009/09/glassfish-application-server.html

基本上在domain.xml中添加以下jvm选项。它应该增加Glassfish启动和部署性能:

<jvm-options>-server</jvm-options>
<jvm-options>-Xms3000m</jvm-options>
<jvm-options>-Xmx3000m</jvm-options>
<jvm-options>-XX:MaxPermSize=192m</jvm-options> 
<jvm-options>-XX:NewRatio=2</jvm-options> 
<jvm-options>-XX:+AggressiveHeap</jvm-options>
<jvm-options>-XX:+AggressiveOpts</jvm-options>
<jvm-options>-XX:+UseParallelGC</jvm-options>
<jvm-options>-XX:+UseParallelOldGC</jvm-options>
<jvm-options>-XX:ParallelGCThreads=5</jvm-options>