大型机USS运行Jar时,如何修改H2数据库Trace文件存储目录?
解决H2数据库Trace文件权限问题:指定自定义存储目录
我之前在类似的受限环境里也碰到过一模一样的H2 trace文件权限问题,默认路径的权限限制真的挺头疼的。别担心,你可以通过JVM系统属性直接指定H2 trace文件的存储目录,操作起来很简单:
核心解决方案
在java -jar命令中添加-Dh2.trace.dir参数,指定一个你有读写权限的目录,注意这个参数要放在-jar之前。
示例命令:
java -Dh2.trace.dir=/u/youruser/accessible-h2-traces -jar Batch.jar Batch.cfg
把这里的/u/youruser/accessible-h2-traces替换成你实际有权限的目录就行,比如USS环境中你自己的专属用户目录。
额外定制细节
- 如果需要自定义trace文件名,还可以搭配
h2.trace.file属性:
这样trace文件会变成java -Dh2.trace.dir=/u/youruser/accessible-h2-traces -Dh2.trace.file=my-batch-trace.db -jar Batch.jar Batch.cfg/u/youruser/accessible-h2-traces/my-batch-trace.db,更方便区分不同任务的日志文件。 - 这个属性是H2数据库专属的JVM参数,从H2 1.3.x版本开始就支持,你的错误信息显示版本是1.4.190,完全兼容这个配置。
修改后,H2就会把trace文件写到你指定的目录里,再也不会触发根目录的权限报错啦。
内容的提问来源于stack exchange,提问作者skg
相关产品推荐
相关产品推荐

