Meine Firma hat eine Webanwendung auf einem Oracle WebLogic-Server bereitgestellt. Wir arbeiten daran, ein Upgrade auf WebLogic 12c durchzuführen und die Anwendung von Java 1.5 auf 1.7.0_15 zu aktualisieren.Java verwendet nicht die richtige Zeitzone
Wenn Sie den Anwendungsserver starten, wurden wir die folgende Störung zu erhalten:
<Jun 6, 2017 12:09:31 PM EDT> <Error> <Deployer> <BEA-149205> <Failed to initialize the application "SIMPLeBDataSource" due to error weblogic.application.ModuleException: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection for datasource 'SIMPLeBDataSource'. The DBMS driver exception was: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
weblogic.application.ModuleException: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection for datasource 'SIMPLeBDataSource'. The DBMS driver exception was: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:350)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:175)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:170)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42)
Truncated. see log file for complete stacktrace
Caused By: weblogic.common.ResourceException: weblogic.common.ResourceException: Could not create pool connection for datasource 'SIMPLeBDataSource'. The DBMS driver exception was: ORA-00604: error occurred at recursive SQL level 1
ORA-01882: timezone region not found
at weblogic.jdbc.common.internal.ConnectionEnvFactory.createResource(ConnectionEnvFactory.java:360)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1320)
at weblogic.common.resourcepool.ResourcePoolImpl.makeResources(ResourcePoolImpl.java:1237)
at weblogic.common.resourcepool.ResourcePoolImpl.start(ResourcePoolImpl.java:240)
at weblogic.jdbc.common.internal.ConnectionPool.doStart(ConnectionPool.java:1624)
Truncated. see log file for complete stacktrace
>
Wir fanden, dass -Duser.timezone='Canada/Eastern'
zu den Server-Startparameter Hinzufügen das Problem behoben. Die Serverprotokolle und log4j-Protokolle zeichnen jedoch nicht den richtigen Zeitstempel auf. sie sind eine Stunde zurück.
Ich fügte TimeZone localTimeZone = TimeZone.getDefault();
dem Code hinzu und loggte localTimeZone.toString() und erhielt sun.util.calendar.ZoneInfo[id="GMT-05:00",offset=-18000000,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]
.
Eastern Standard Zeit ist GMT-5 und wir sind derzeit in Daylight Savings, die es GMT-4 macht, so scheint es, dass es den angegebenen Java-Startparameter verwendet, aber nicht erkennen, dass es in DST sein soll. Gibt es eine Möglichkeit, DST in den Startparametern anzugeben?
Es ist nicht möglich, dies mit dem Timezone Updater Tool zu beheben, da es eine Internetverbindung benötigt und diese Box keine Internetverbindung hat. Was das JDK-Update anbetrifft, bin ich etwas verwirrt darüber, wie ich Update 141 bekommen würde, da es nicht öffentlich verfügbar ist. – korshyadoo
Ich würde denken, das Herunterladen des Tools und dann kopieren über wäre eine Option, aber ich habe es noch nie zuvor versucht. Update 141 ist verfügbar, wenn Sie Zugriff auf die Support-Site von Oracle haben. – bubbly