软件开发db2 9.7db2故障

操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null

DB2 9.7 + JBMP4.4 报了这个异常。
从异常信息中得到的信息是,是由DB2发生的异常:
com.ibm.db2.jcc.am.SqlException: [jcc][10120][11936][3.57.82] 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
导致JBPM内部发生了异常:
couldn't extract bytes out of blob

org.jbpm.api.JbpmException: couldn't extract bytes out of blob


根据网上的信息已经尝试过如下操作:
1.在执行db2set DB2_RESTRICT_DDF=true,重新数据库
2.在数据库连接url中加入参数:progressiveStreaming=2;
3.在数据库连接url中加入参数:driverType=4;fullyMaterializeLobData=true;fullyMaterializeInputStreams=true;progressiveStreaming=2;progresssiveLocators=2;
4.在数据库连接url中加入参数:lob threshold=11777216;
5.在Hibernate的配置中将auto此属性去掉

都无效,想看看有人遇到到同样的情况吗?


couldn't extract bytes out of blob

org.jbpm.api.JbpmException: couldn't extract bytes out of blob

at org.jbpm.pvm.internal.lob.BlobStrategyBlob.get(BlobStrategyBlob.java:27)

at org.jbpm.pvm.internal.lob.Lob.extractBytes(Lob.java:102)

at org.jbpm.pvm.internal.repository.DeploymentImpl.getBytes(DeploymentImpl.java:188)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)

at org.jbpm.pvm.internal.repository.DeploymentImpl_$$_javassist_242.getBytes(DeploymentImpl_$$_javassist_242.java)

at org.jbpm.pvm.internal.repository.ProcessDeployer.deploy(ProcessDeployer.java:62)

at org.jbpm.pvm.internal.repository.DeployerManager.deploy(DeployerManager.java:46)

at org.jbpm.pvm.internal.repository.RepositorySessionImpl.getObject(RepositorySessionImpl.java:130)

at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.getProcessDefinition(ProcessDefinitionQueryImpl.java:92)

at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.execute(ProcessDefinitionQueryImpl.java:72)

at org.jbpm.pvm.internal.query.AbstractQuery.execute(AbstractQuery.java:83)

at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)

at org.jbpm.pvm.internal.tx.SpringCommandCallback.doInTransaction(SpringCommandCallback.java:45)

at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:128)

at org.jbpm.pvm.internal.tx.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:49)

at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInExistingEnvironment(EnvironmentInterceptor.java:47)

at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:42)

at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)

at org.jbpm.pvm.internal.query.AbstractQuery.untypedUniqueResult(AbstractQuery.java:74)

at org.jbpm.pvm.internal.query.ProcessDefinitionQueryImpl.uniqueResult(ProcessDefinitionQueryImpl.java:161)

at com.winssage.bpm.module.bpmbase.service.impl.JbpmServiceImpl.getProcessDefinitionById(JbpmServiceImpl.java:197)

at com.winssage.bpm.module.bpmbase.service.impl.JbpmServiceImpl.getMappingActionForCurrentByTaskId(JbpmServiceImpl.java:619)

at com.winssage.bpm.module.bpmbase.service.impl.JbpmServiceImpl$$FastClassByCGLIB$$d9cd507e.invoke()

at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)

at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:77)

at com.winssage.bpm.module.bpmbase.aspect.ProcessEngineServiceAspect.aroundPointcut(ProcessEngineServiceAspect.java:43)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:627)

at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:616)

at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:64)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)

at com.winssage.bpm.module.bpmbase.service.impl.JbpmServiceImpl$$EnhancerByCGLIB$$e9813c80.getMappingActionForCurrentByTaskId()

at com.winssage.bpm.module.bpmbase.service.impl.ProcessEngineServiceImpl.findMappingActionForCurrentTask(ProcessEngineServiceImpl.java:766)

at com.winssage.bpm.module.bpmcommon.biz.impl.ProcessEngineBizImpl.findTargetActionUrlForCurrentTask(ProcessEngineBizImpl.java:91)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

at com.sun.proxy.$Proxy68.findTargetActionUrlForCurrentTask(Unknown Source)

at com.winssage.bpm.module.bpmcommon.action.ProcessDispatchAction.dispatch(ProcessDispatchAction.java:150)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)

at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)

at com.winssage.framework.server.interceptor.CommonInterceptor.intercept(CommonInterceptor.java:36)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.winssage.base.module.frameworkimpl.interceptor.AfterDownloadInterceptor.intercept(AfterDownloadInterceptor.java:35)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.winssage.framework.server.interceptor.SecurityInterceptor.intercept(SecurityInterceptor.java:102)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)

at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)

at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at com.winssage.framework.server.interceptor.ErrorInterceptor.intercept(ErrorInterceptor.java:45)

at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at com.winssage.brmp.module.cas.filter.CasLoginUserSetFilter.doFilter(CasLoginUserSetFilter.java:106)

at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)

at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:50)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:167)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.jasig.cas.client.authentication.AuthenticationFilter.doFilter(AuthenticationFilter.java:111)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:99)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)

at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)

at org.eclipse.jetty.server.Server.handle(Server.java:370)

at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)

at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)

at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)

at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)

at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)

at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)

at java.lang.Thread.run(Thread.java:662)
Caused by: com.ibm.db2.jcc.am.SqlException: [jcc][10120][11936][3.57.82] 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null

at com.ibm.db2.jcc.am.bd.a(bd.java:660)

at com.ibm.db2.jcc.am.bd.a(bd.java:60)

at com.ibm.db2.jcc.am.bd.a(bd.java:94)

at com.ibm.db2.jcc.am.be.d(be.java:67)

at com.ibm.db2.jcc.am.be.r(be.java:56)

at com.ibm.db2.jcc.am.be.length(be.java:41)

at org.hibernate.lob.SerializableBlob.length(SerializableBlob.java:54)

at org.jbpm.pvm.internal.lob.BlobStrategyBlob.get(BlobStrategyBlob.java:25)

... 148 more
参与5

4同行回答

小偌小偌软件开发工程师广州文讯信息科技有限公司
在公司运维人员的帮助下终于解决了!他叫我开启了归档模式,然后就可以了。但要注意的是,开启归档后,还是要执行如下设置:db2set DB2_RESTRICT_DDF=TRUE以下是归档具体操作,本身不是很熟,是从网上copy下来的。1、查看默认情况下的设置:db2 get db cfg for db_name |grep -i log&nbs...显示全部
在公司运维人员的帮助下终于解决了!他叫我开启了归档模式,然后就可以了。但要注意的是,开启归档后,还是要执行如下设置:
db2set DB2_RESTRICT_DDF=TRUE

以下是归档具体操作,本身不是很熟,是从网上copy下来的。

1、查看默认情况下的设置:

db2 get db cfg for db_name |grep -i log

  运行结果如下:

Log retain for recovery enabled             (LOGRETAIN) = OFF

User exit for logging enabled                (USEREXIT) = OFF

HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC

First log archive method                 (LOGARCHMETH1) = OFF

默认情况为循环日志

2、更改为归档日志:

db2 update db cfg for db_name using LOGRETAIN ON

  运行结果如下:

Log retain for recovery enabled             (LOGRETAIN) = RECOVERY

User exit for logging enabled                (USEREXIT) = OFF

HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC

First log archive method                 (LOGARCHMETH1) = LOGRETAIN

3、更改归档目录:

db2 update db cfg for db_name using LOGARCHMETH1 "disk:/db2/archive"

  运行结果如下:

Log retain for recovery enabled             (LOGRETAIN) = RECOVERY

User exit for logging enabled                (USEREXIT) = OFF

HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC

First log archive method                 (LOGARCHMETH1) = DISK:/db2/archive收起
软件开发 · 2015-09-24
浏览10159
小偌小偌软件开发工程师广州文讯信息科技有限公司
回复 3# masaly 设置完DB2_RESTRICT_DDF=TRUE,重启数据库,还是不行。。。显示全部
回复 3# masaly

设置完DB2_RESTRICT_DDF=TRUE,重启数据库,还是不行。。。收起
软件开发 · 2015-09-14
浏览9746
masalymasaly其它易诚
遇到过,从v9.1升级到v9.5后。设置DB2_RESTRICT_DDF=TRUE,重启实例能解决该问题。progressive streaming详细的资料请参考:http://www-01.ibm.com/support/kn ... imjcc_r0053795.html显示全部
遇到过,从v9.1升级到v9.5后。

设置DB2_RESTRICT_DDF=TRUE,重启实例能解决该问题。

progressive streaming详细的资料请参考:
http://www-01.ibm.com/support/kn ... imjcc_r0053795.html收起
软件开发 · 2015-09-09
浏览10103
小偌小偌软件开发工程师广州文讯信息科技有限公司
在使用DB2 v9.5/v9.7的版本时,取用BLOB或XML的数据,且这些数据的大小大于32K时,可能会出现如下异常:com.ibm.db2.jcc.b.SqlException: [jcc][10120][11936][3.50.152] 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null这是由于如果数据库支持progressive streaming(或称d...显示全部
在使用DB2 v9.5/v9.7的版本时,取用BLOB或XML的数据,且这些数据的大小大于32K时,可能会出现如下异常:
com.ibm.db2.jcc.b.SqlException: [jcc][10120][11936][3.50.152] 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
这是由于如果数据库支持progressive streaming(或称dynamic data format (DDF)),那么数据库驱动就会开启progressive streaming的支持,而有些应用代码并不支持此技术,就会产生上述异常。
解决方法为:设置JDBC驱动的progressiveStreaming属性值为2或在服务端执行"db2set DB2_RESTRICT_DDF=TRUE"命令并重启数据库。


网上大部分都是这样子处理的,但我执行完为何还是不行呢?收起
软件开发 · 2015-09-09
浏览9294

提问者

小偌
软件开发工程师广州文讯信息科技有限公司

相关问题

问题状态

  • 发布时间:2015-09-09
  • 关注会员:1 人
  • 问题浏览:20259
  • 最近回答:2015-09-24
  • X社区推广