FishEye 可以通过 Java Service Wrapper 作为Windows服务启动
这个服务包有以下优势:
- 允许 FishEye作为 Windows 服务启动.
- 无需用户登录系统, 或命令行启动 FishEye.
- 可以将 FishEye 作为后台服务运行, 提供系统性能和安全性
- 系统启动时自动运行FishEye而无需用户登录
- 用户无法停止、启动 或篡改FishEye参数,只有管理员才能操作
- 提供错误恢复, 以及分析功能
请注意:
- 本页面内容需要结合 在Windows上安装FishEye
- 你需要在32位Java环境运行这个java Service Wrapper, 即使是运行在64位机器上。
- 最好使用JDK而不是JRE, 来调用
-server参数
本页面内容:
相关页面:
安装 Java Service Wrapper
要在Windows上安装 Java Service Wrapper:
- 点击 here 下载wrapper.zip
- 解压文件到
<FishEye home directory>(即FishEye安装路径). 注意,最后文件夹结构应该为<FishEye home directory>\wrapper 或<FishEye home directory>\wrapper\bin, 等,而不是<FishEye home directory>\wrapper\wrapper或<FishEye home directory>\wrapper\wrapper\bin. wrapper 路径结构非常重要 编辑
<FishEye home directory>\wrapper\conf\wrapper.conf文件,配置JDK路径,找到:# Java Application wrapper.java.command=java
并替换为下面的内容,并注释掉不需要的参数:
# Java Application # Option 1: If you have JAVA_HOME defined in your Windows system environment variables (for example, if JAVA_HOME is defined as C:/Java/bin, then you can use: wrapper.java.command=%JAVA_HOME%/java # Option 2: If you have multiple JDKs installed, and you don't want to use a Windows environment variable to specify which one to use, provide the absolute path to where the JDK is installed (e.g. C:/Java/jdk1.7.0_05/bin/java): wrapper.java.command=C:/<path to Java location>/bin/java
在wrapper.conf 文件中添加下面的内容,以便于在wrapper 日志中检查Java JDK是否配置正确:
# Tell the Wrapper to log the full generated Java command line. wrapper.java.command.loglevel=INF
日志文件在:
<FishEye home directory>\var\log\wrapper.log.- 在
<FishEye home directory>\wrapper\conf\wrapper.conf文件中配置 FISHEYE_INST 环境变量, following the instructions below. - 按照下面步骤安装:
- 点击 '开始' 菜单,并搜索 'cmd',右键点击命令窗口,选择 以管理员身份运行
- 切换到
<FishEye home directory>\wrapper\bin目录,并运行Fisheye-Install-NTService.bat. 如果在启动 wrapper 过程中出现错误, 你可以在<FishEye home directory>\var\log\wrapper.log 中分析错误原因。
- 在Windows 控制面板 - 服务 中启动 FishEye 服务;
请注意:
- 如果你在FishEye服务运行过程中更改了 wrapper.conf 文件, 你必须停止并重新启动 FishEye服务,让修改的参数生效。
- 如果你移动了 FishEye 安装路径, 你必须卸载 (运行
Fisheye-Uninstall-NTService.bat) 并重新安装 FishEye 服务。
为Windows 服务设置FishEye环境变量
请注意, 如果你把 FishEye 作为 Windows 服务运行, 任何FishEye 特定的环境变量必须在 <FishEye home directory>\wrapper\conf\wrapper.conf 文件中设置。
如果在启动 wrapper 过程中出现错误, 你可以在 <FishEye home directory>\var\log\wrapper.log 中分析错误原因。
如果需要添加其他Java参数, 那么你需要将这些参数添加到下面这段配置中,例如
# JDK Additional Parameters for jmx wrapper.java.additional.4=-Dcom.sun.management.jmxremote wrapper.java.additional.5=-Dcom.sun.management.jmxremote.port=4242 wrapper.java.additional.6=-Dcom.sun.management.jmxremote.authenticate=false wrapper.java.additional.7=-Dcom.sun.management.jmxremote.ssl=false wrapper.java.additional.8=-Dcom.sun.management.jmxremote.password.file=./wrapper/jmxremote.password wrapper.java.additional.9=-Dwrapper.mbean.name="wrapper:type=Java Service Wrapper Control" wrapper.java.additional.10=-XX:PermSize=256m
要添加 FISHEYE_INST 环境变量, Java MaxPermSize 参数, 或 -Xrs 参数, 按照下面的写法:
wrapper.java.additional.11=-Dfisheye.inst="c:/path/to/FISHEYE_INST" wrapper.java.additional.12=-XX:MaxPermSize=128m wrapper.java.additional.13=-Xrs
注意 -Xrs 参数是用在Windows服务运行FishEye时使用的,用来防止用户注销导致JVM关闭。
内存配置也可以在这个文件中找到:
# Initial Java Heap Size (in MB) wrapper.java.initmemory=256 # Maximum Java Heap Size (in MB) wrapper.java.maxmemory=1024
如果有大量的源代码库,你可以考虑提升内存 (默认初始 256, 最大 1024 ).
Fisheye/Crucible 1.6.4 以及更高版本, 你可以在System Settings - System info 中检查JVM参数
故障处理
从 wrapper.zip 解压文件
一些客户报告运行 wrapper时发生错误. 可能是由于以下原因导致的:
- 使用Winzip 或 WinRar 解压 wrapper.zip 而没有使用 Windows 右键 提取全部 菜单。
- 如果在Windows资源管理器中看到 wrapper.zip 文件名呈现绿色而不是黑色, 你需要在解压前解码。 右键点击这个文件, 选择 属性, 点击 高级 按钮, 然后清除 为保护数据而对内容进行加密 选择框.
使用64位 Java JDK 的警告
当使用 64 Java JDK 运行 本文档中下载的wrapper时,你可能会在 wrapper.log 中看到下面的警告信息:
WARNING - Unable to load the Wrapper's native library 'wrapper.dll'. The file is located on the path at the following location but could not be loaded: C:\installs\service\fisheye28\wrapper\lib\wrapper.dll.
Please verify that the file is readable by the current user and that the file has not been corrupted in any way. System signals will not be handled correctly.
这是由于使用了 64位 JDK (即使是运行在 64位机器上). 将JDK更换为32位,就可以防止出现上述警告信息.
Wrapper 配置 "-server" 参数
请注意wrapper 配置可以使用 -server 参数来启用 Java HotSpot(TM) Server VM. 这个特性仅当你使用JDK时可用. 如果你使用 JRE 你会在日志中看到如下错误:
INFO | jvm 1 | 2010/12/20 18:19:28 | Error: missing `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.
如果你从 wrapper.conf 文件中移除这个-server参数 ,wrapper 脚本会忽略文件中任何后续的 JVM 参数,除非你更改顺序从 wrapper.java.additional.1 开始启动. 这是wrapper的缺陷。
在这种情况下,最好将FishEye/Crucible安装在JDK中,并使用 -server. 你也可以在wrapper.conf中强制 wrapper 使用指定路径的JDK thewrapper.conf。参见文档前面的说明。