首页 > 解决方案 > 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 的 Introspection Exception。任何帮助将不胜感激。

                       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,offset=-18000000,dstSavings=3600000,useDaylight=true,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

依赖项

依赖 2

依赖项 3

标签: javaspringhibernateweblogic

解决方案


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

来自 Oracle:禁用数据类型对象的包装

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

要禁用 JDBC 数据类型对象的包装:

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

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

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

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

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

在 Wrap Data Types 中,取消选中复选框以禁用换行。单击保存。

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

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


推荐阅读