我对这个项目还不熟悉,但仍有很多事情要想清楚。多年来一直是一名经验丰富的web开发人员。
我的QA人员来找我说,“我们有个问题。我们过去可以关闭QA框上的hibernate缓存,在应用程序外运行查询,然后在应用程序中查看结果,但现在已经不起作用了。”
所以我研究了这个问题,他们把下面的一行设置环境蝙蝠(在Windows Server 2012 R2 Standard上运行的Tomcat 7),
set JAVA_OPTS=%JAVA_OPTS% -Dnet.sf.ehcache.disabled=true
根据他们的说法,这个以前有用,但现在不行了。
所以,问题一是,我们在开发环境中运行应用程序的方式与在QA和生产环境中运行应用程序的方式不同。(我知道,我知道)我们运行maven脚本来启动一切,我可以让javaopts正常工作。
有趣的是,我做这个已经很多年了,我对这个一无所知设置环境蝙蝠. 我在这里读过:
https://tomcat.apache.org/tomcat-7.0-doc/RUNNING.txt
上面说设置环境蝙蝠将tomcat作为服务运行时不起作用。
所以,我登录到QA框,挖掘并发现,果然,tomcat是作为服务运行的。服务启动tomcat7.exe//RS//tomcat7。(不确定tomcat7.exe是什么。)
所以根据上面的文件,我设置了CATALINA\u选项=-数据集.sf.ehcache.disabled=true并重新启动服务器。
同时,我还编写了一个方便的小servlet来转储所有的系统属性,这样我就可以立即知道我的更改有什么影响。我运行它,它说
net.sf.ehcache.disabled=false
. 很明显,有什么东西压倒了我的改变。
所以我在这里读到:
https://tomcat.apache.org/tomcat-7.0-doc/windows-service-howto.html
并将环境变量设置为PR\u JvmOptions=-数据集.sf.ehcache.disabled=true并重新启动服务器。运行我的小servlet并:
net.sf.ehcache.disabled=false
所以,很明显,不管我做什么,都有东西在覆盖我的设置。医生说它忽略了设置环境蝙蝠我不知道还能在哪里找到这个超控。