我在我的应用程序(这是Apache Tomcat服务器)上使用Oracle 11G版本。
某些用户在使用特定时区(例如ETC / Universal)时会对数据库进行某些查询时遇到问题。 Oracle引发以下异常:
ORA-01882:找不到时区区域
我找到了解决此问题的方法。启动JVM时,需要给它一个特定的参数:
-Doracle.jdbc.timezoneAsRegion=false
我想把它放在Tomcat的配置中。 我需要Windows和Linux解决方案。我可以在哪里放置此设置?
答案 0 :(得分:2)
您可以在Tomcat的启动脚本(通常是catalina.bat或catalina.sh)中添加JVM参数。
对于Windows(catalina.bat)
set JAVA_OPTS="%JAVA_OPTS% -Doracle.jdbc.timezoneAsRegion=false"
对于Linux(catalina.sh)
JAVA_OPTS="$JAVA_OPTS -Doracle.jdbc.timezoneAsRegion=false"
export JAVA_OPTS
您还可以在用于包含以下行的库的任何版本中更新文件oracle/jdbc/defaultConnectionProperties.properties
(即,在jar中- ojdbc7.jar或classes12.jar ):
oracle.jdbc.timezoneAsRegion=false