2017-06-06 2 views
0

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?

Antwort

0

Einstellung user.timezone ist das korrekte Verfahren. Wenn es immer noch nicht funktioniert, versuchen Sie upgrade auf die neueste jdk, sagen Sie jdk 7 update 131 oder 141. Wenn das keine Option ist, versuchen Sie das "Timezone Updater tool". Weitere Informationen finden Sie hier: http://www.oracle.com/technetwork/java/javase/dst-faq-138158.html

+0

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

+0

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

Verwandte Themen