Spring App正在获取“连接已关闭”,获取Blob的长度

问题描述

我有一个Spring应用程序,其中Weblogic从12.2.1.0.0升级到12.2.1.4.0,并且在升级获取Blob长度时,我开始收到错误消息“连接已关闭”。我在此应用程序和Java 1.8中运行Spring 4.2.6和Hibernate 5.0.1。我尝试使用Stream,但是在尝试更改它时,使用blob的getter和setter获取了自省异常。任何帮助将不胜感激。

                       try {
                              usageList.addAll(dailyUsageUtils.convertEDMSBlobToUsageArray(interval
                                                          .getUsageBlob(),interval
                                                         .getIntervalCount(),interval.getSpi()
                                                          .longValue(),intervalStart.getTimeInMillis()));
                       } catch (sqlException e) {
                              throw new ProcessException("EDMS Interval data not valid");
                       } 

方法:应用的blob.length失败

public List<DailyUsgBase> convertEDMSBlobToUsageArray(Blob blob,int totalIntervals,long spi,long start)
    throws sqlException
{ 
   
    List<DailyUsgBase> usageList = new ArrayList<DailyUsgBase>();
    final String timerId = "ConvertBlob";
    StopWatch stopWatch = new StopWatch();
    stopWatch.start(timerId);
    if (null != blob) {
           int blobLength = (int) blob.length();
           // double[] reads = new double[totalIntervals];
           byte[] blobBytes = blob.getBytes(1,blobLength);
           blob.free();
           for (int x = 0; x < totalIntervals; x++)
           {
10:09:42.516 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 0
10:09:42.517 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAKFBAAA]
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 1
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAASPLAAE]
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 2
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAkZ7AAB]
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 3
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAqXaAAF]
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 4
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAA418AAJ]
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 5
10:09:42.526 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABA2IAAA]
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 6
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABK/NAAB]
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 7
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABTLeAAH]
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 8
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABld7AAH]
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result set row: 9
10:09:42.527 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.loader.Loader - Result row: EntityKey[com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABxUPAAC]
10:09:42.528 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAKFBAAA]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAKFBAAA]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAASPLAAE]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAASPLAAE]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAkZ7AAB]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAkZ7AAB]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAqXaAAF]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAAqXaAAF]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAA418AAJ]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAAA418AAJ]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABA2IAAA]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABA2IAAA]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABK/NAAB]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABK/NAAB]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABTLeAAH]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABTLeAAH]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABld7AAH]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABld7AAH]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Resolving associations for [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABxUPAAC]
10:09:42.529 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.engine.internal.TwoPhaseLoad - Done materializing entity [com.dukeenergy.sg.dailyusage.model.EdmsIntervalElectric#AABbRuAAAAABxUPAAC]
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.resource.jdbc.internal.LogicalConnectionManagedImpl - Initiating JDBC connection release from afterTransaction
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG com.dukeenergy.itoa.common.dao.GenericDaoImpl - Cannot write hibernate statistics because statistics are not enabled. 
 Please 'set hibernate.generate_statistics=true' and 
 optionally set 'hibernate.cache.use_structured_entries=true'
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] INFO com.dukeenergy.sg.dailyusage.service.impl.EdmsIntervalElectricServiceImpl - StopWatch: Edms Interval Retrieval : Edms Interval Retrieval : milliseconds to execute : 00:00:00.427
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.hibernate.internal.SessionImpl - disconnecting session
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager - Initiating transaction commit
10:09:42.532 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager - Committing JDBC transaction on Connection [weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@e4]
10:09:42.533 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Resetting read-only flag of JDBC Connection [weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@e4]
10:09:42.533 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.jdbc.datasource.DataSourceTransactionManager - Releasing JDBC Connection [weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@e4] after transaction
10:09:42.533 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
10:09:42.534 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG com.dukeenergy.sg.dailyusage.service.impl.DailyUsageServiceImpl - Start java.util.GregorianCalendar[time=1577854800000,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="America/New_York",offset=-18000000,dstSavings=3600000,useDaylight=true,transitions=235,lastRule=java.util.SimpleTimeZone[id=America/New_York,startYear=0,startMode=3,startMonth=2,startDay=8,startDayOfWeek=1,startTime=7200000,startTimeMode=0,endMode=3,endMonth=10,endDay=1,endDayOfWeek=1,endTime=7200000,endTimeMode=0]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=0,WEEK_OF_YEAR=1,WEEK_OF_MONTH=1,DAY_OF_MONTH=1,DAY_OF_YEAR=1,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=0,ZONE_OFFSET=-18000000,DST_OFFSET=0]
10:09:42.534 [[ACTIVE] ExecuteThread: '9' for queue: 'weblogic.kernel.Default (self-tuning)'] DEBUG com.dukeenergy.sg.dailyusage.util.impl.DailyUsageUtilsImpl - Inside convertEDMSBlobToUsageArray Method
Oct 06,2020 10:09:42 AM com.sun.xml.ws.server.sei.TieHandler createResponse
SEVERE: java.sql.sqlException: Connection has already been closed. EDMS Interval data not valid
com.dukeenergy.itoa.common.exceptions.ProcessException: java.sql.sqlException: Connection has already been closed. EDMS Interval data not valid
    at com.dukeenergy.sg.dailyusage.service.impl.DailyUsageServiceImpl.getEdmsElectricUsage(DailyUsageServiceImpl.java:361)
    at com.dukeenergy.sg.dailyusage.service.impl.DailyUsageServiceImpl.getUsage(DailyUsageServiceImpl.java:168)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:69)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
    at com.sun.proxy.$Proxy379.getUsage(UnkNown Source)
    at com.dukeenergy.sg.dailyusage.endpoint.DailyUsageServiceEndpoint.getUsage(DailyUsageServiceEndpoint.java:26)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:120)
    at weblogic.wsee.jaxws.WLSInstanceResolver$WLSInvoker.invoke(WLSInstanceResolver.java:93)
    at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149)
    at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88)
    at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)
    at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)
    at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)
    at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)
    at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)
    at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)
    at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)
    at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:169)
    at weblogic.wsee.jaxws.WLSServletAdapter.handle(WLSServletAdapter.java:246)
    at weblogic.wsee.jaxws.HttpServletAdapter$AuthorizedInvoke.run(HttpServletAdapter.java:667)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:386)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:163)
    at weblogic.wsee.util.ServerSecurityHelper.authenticatedInvoke(ServerSecurityHelper.java:108)
    at weblogic.wsee.jaxws.HttpServletAdapter$3.run(HttpServletAdapter.java:286)
    at weblogic.wsee.jaxws.HttpServletAdapter.post(HttpServletAdapter.java:295)
    at weblogic.wsee.jaxws.JAXWSServlet.doRequest(JAXWSServlet.java:128)
    at weblogic.servlet.http.AbstractAsyncServlet.service(AbstractAsyncServlet.java:103)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:295)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:353)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:250)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3793)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3763)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)
    at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
    at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
    at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
    at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2451)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2299)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1720)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1680)
    at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)
    at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
    at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
    at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
    at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
    at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)

<Oct 6,2020 10:09:42,534 AM EDT> <Error> <com.sun.xml.ws.server.sei.TieHandler> <BEA-000000> <java.sql.sqlException: Connection has already been closed. EDMS Interval data not valid
com.dukeenergy.itoa.common.exceptions.ProcessException: java.sql.sqlException: Connection has already been closed. EDMS Interval data not valid
    at com.dukeenergy.sg.dailyusage.service.impl.DailyUsageServiceImpl.getEdmsElectricUsage(DailyUsageServiceImpl.java:361)
    at com.dukeenergy.sg.dailyusage.service.impl.DailyUsageServiceImpl.getUsage(DailyUsageServiceImpl.java:168)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    Truncated. see log file for complete stacktrace

Dependencies

Dependencies 2

Dependencies 3

解决方法

在Weblogic服务器配置中为数据源禁用“包装数据类型”修复了该错误。

从Oracle: 禁止包装数据类型对象

默认情况下,使用WebLogic包装器包装Array,Blob,Clob,NClob,Ref,SQLXML和Struct的数据类型对象,以及ParameterMetaData和ResultSetMetaData对象。您可以禁用包装,这可以提高性能并允许应用程序直接使用本机驱动程序对象。请参阅使用解包的数据类型对象。

要禁用JDBC数据类型对象的包装,请执行以下操作:

如果尚未这样做,请在管理控制台的更改中心中,单击“锁定并编辑”(请参阅​​使用更改中心)。

在“域结构”树中,展开“服务”,然后选择“数据源”。

在“数据源摘要”页面上,单击数据源名称。

选择“配置:连接池”选项卡。

向下滚动并单击“高级”以显示高级连接池选项。

在“包装数据类型”中,取消选中该复选框以禁用包装。 点击保存。

要激活这些更改,请在管理控制台的“更改中心”中,单击“激活更改”。

并非所有更改都会立即生效-有些更改需要重新启动(请参阅使用更改中心)。