从数据缓冲区读取消息列表时出错

2020-09-20 00:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在SAP MII中处...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在SAP MII中处理Idoc时,出现错误"从数据缓冲区读取消息列表时出错"。 我们的MII版本是15.0,调度程序作业的状态为"待处理"。

下面是完整的错误消息

............................................... .......

从数据缓冲区读取消息列表时出错[EXCEPTION] com.microsoft.sqlserver.jdbc.SQLServerException:结果集没有当前行。 在com.microsoft.sqlserver.jdbc.SQLServerResultSet.getterGetColumn的com.microsoft.sqlserver.jdbc.SQLServerServerSet.verifyResultSetHasCurrentRow(SQLServerResultSet.java:483)的com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190) (SQLServerResultSet.java:2047)在com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2082)在com.microsoft.sqlserver.jdbc.SQLServerResultSet.getValue(SQLServerResultSet.java:2067)在com.microsoft。 com.sap.sql.jdbc.basic.BasicResultSet.getLong(BasicResultSet.java:89)上的sqlserver.jdbc.SQLServerResultSet.getLong(SQLServerResultSet.java:2328)com.sap.sql.jdbc.mss.MssInetResultSet.getInt( com.sap.sql.jdbc.direct.DirectResultSet.getInt(DirectResultSet.java:233)处的mssInetResultSet.java:63)com.sap.sql.jdbc.common.dispatch.IntegerResultColumn.getInt(IntegerResultColumn.java:23)处的MssInetResultSet.java:63) 在com.sap.engine.services.dbpool的com.sap.sql.jdbc.common.CommonResultSet.getInt(CommonResultSet.java:391)处。 com.sap.xmii.databuffer.sqlj.JCoDAO.readMessages(JCoDAO.com)上的wrappers.ResultSetWrapper.getInt(ResultSetWrapper.java:343)位于com.sap.xmii.databuffer.sqlj.JCoDAO.getCategoryType(JCoDAO.java:2885) com.sap.xmii.databuffer.sqlj.JCoDAO.readMessages(JCoDAO.java:550)处com.sap.xmii.databuffer.sqlj.JCoDAO.readMessageList(JCoDAO.java:534)处的java:586) 位于com.sap.xmii.bls.executables.actions.sap.DataBufferActions.dataBufferQuery(DataBufferActions.java:126)的.xmii.databuffer.util.JCoDataBufferManager.readMessageFromBuffer(JCoDataBufferManager.java:50)在sun.reflect.GeneratedMethodAccessor1105.invoke (未知来源)在com.sap.xmii.bls.engine.ReflectiveAction.doExecute上的java.lang.reflect.Method.invoke(Method.java:597)上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) (ReflectiveAction.java:837)在com.sap.xmii.bls.engine.BaseNode.executeNode(BaseNode.java:203)在com.sap.xmii.bls.engine.BaseAction.execute(BaseAction.java:86)在 com.sap.xmii.bls.engin com.sap.xmii.bls.executables.sequences.Sequence.execute(Sequence.java:50)的com.sap.xmii.bls.engine.runners的e.runners.ProductionRunner.runAction(ProductionRunner.java:199)。 com.sap.xmii.bls.engine.TransactionInstance.execute(TransactionInstance.com)上的ProductionRunner.runSequence(ProductionRunner.java:172)位于com.sap.xmii.bls.executables.sequences.RootNode.execute(RootNode.java:39) com.sap.xmii.bls.engine.TransactionInstance.run(TransactionInstance.java:808)处com.sap.xmii.scheduler.XacuteWorker $ 1.run(XacuteWorker.java:245)处java.security。 com.sap.xmii.scheduler.XacuteWorker.execute(XacuteWorker.java:242)处java.security.auth.Subject.doAs(Subject.java:394)处的AccessController.doPrivileged(本机方法)。 位于sun.reflect.GeneratedMethodAccessor1076.invoke的ejb.JobBean.onMessage(JobBean.java:89)位于sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)处的java.lang.reflect.Method.invoke(未知源) com.s上的Method.java:597) com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)处的ap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)。 com上的sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)位于com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)上的sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:50) com上的sap.engine.services.ejb3.runtime.impl.Interceptors_MessageListenerType.invoke(Interceptors_MessageListenerType.java:86)在com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179) sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed (AbstractInvocationContext.java:191)在com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:23)在com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed (AbstractInvocationContext.java:179)at sun.reflect.GeneratedMethodAccessor431.invoke(未知源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597) ),位于com.sap.engine.services.ejb3.jacc.ExecuteMethodPrivilegedAction.run(ExecuteMethodPrivilegedAction.java:38)上com.sap.engine.services.ejb3.util.BeanMethods.executeReflectMethod(BeanMethods.java:314)处。 位于com.sap.engine.services.ejb3.jacc.ContainerJ2EESecurityProviderBaseImpl.doAs(ContainerJ2EESecurityProviderBaseImpl.java:262)处的javax.security.auth.Subject.doAs(Subject.java:394)处的security.AccessController.doPrivileged(本机方法) com.sap.engine.services.ejb3.runtime.impl.Interceptors_Run com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)的com.sap.engine.services.ejb3.runtime.impl的As.invoke(Interceptors_RunAs.java:24)。 位于com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)处的Interceptors_SecurityCheck.invoke(com.sap.engine.services.ejb3.runtime.impl。 Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)位于com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)位于com.sap.engine.services.ejb3.runtime.impl。 位于com.sap.engine.services.ejb3.runtime.impl的Interceptors_Lock.invoke(Interceptors_Lock.java:21)位于com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)。 com.sap.engine.services.ejb3.runtime.imp上的DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138) l.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:172)位于com.sap.engine.services.ejb3.runtime.impl.MDBProxyInvocationHandler.invoke(MDBProxyInvocationHandler.java:142)位于com.sun.proxy。$ Proxy4130.onMessage(未知 来源)com.sap.jms.client.session.JMSSession.deliverMessage(JMSSession.java:1075)com.sap.jms.client.session.JMSSession.run(JMSSession.java:898)com.sap.jms .resourceadapter.RaServerSession.run(RaServerSession.java:139)位于com.sap.engine.services.connector.jca15.work.TaskImpl.run(TaskImpl.java:410)位于com.sap.engine.core.thread.execution com.sap.engine.core.thread.execution上的.Executable.run(Executable.java:122)。com.sap.engine.core.thread.execution.CentralExecutor $ SingleThread上的.E​​xecutable.run(Executable.java:101) .run(CentralExecutor.java:328)

1条回答
SAP砖家
2020-09-20 01:06

亲爱的钱德拉巴布,


首先,我建议您转到运行的事务,然后检查操作" QueryDataBuffer"的参数" MessageCategory"的设置(如果正确)。


可能您有一个调度的消息调度程序事务,用于调度两种类型的消息。 但是,不同的事务会保存到用于入站和出站消息的自定义操作队列中。

另一个原因可能是长时间运行的线程可能导致"待处理"状态。

为了解决该问题,请停止所有作业的调度程序,然后重新启用它们,此后,长时间运行的线程可能会消失,子事务开始运行。


此后,请密切注意SAP MMC上的线程和内存使用情况。 如果问题仍然存在,您可以重新启动整个应用程序服务器以清除内存和线程。

致谢,
BarnabásPaksi

一周热门 更多>