cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to set message status

Former Member
0 Kudos

Hi All,

We are getting the below error and due to this message is stuck in To Be Delivered status for long. There are no Holding or System Error messages in the system.

Setting the message status to DLVD failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error updating message status. Reason: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Failed to log msg a8f7541d-f6a9-11e5-b07e-0000008b8b3f(OUTBOUND). Reason: com.sap.sql.exception.OpenSQLException: caused by java.io.IOException: stream exceeds expected length
at com.sap.sql.jdbc.common.dispatch.BlobHostVariable$SecureLengthInputStream.read(BlobHostVariable.java:93)
at com.sap.sql.jdbc.oracle.Oracle11gPreparedStatement.convertStreamToBytes(Oracle11gPreparedStatement.java:441)
at com.sap.sql.jdbc.oracle.Oracle11gPreparedStatement.setBinaryStream(Oracle11gPreparedStatement.java:271)
at com.sap.sql.jdbc.direct.DirectPreparedStatement.setBinaryStream(DirectPreparedStatement.java:838)
at com.sap.sql.jdbc.common.dispatch.BlobHostVariable.setBinaryStream(BlobHostVariable.java:125)
at com.sap.sql.jdbc.common.dispatch.SetterDispatcherImpl.setBinaryStream(SetterDispatcherImpl.java:76)
at com.sap.sql.jdbc.common.CommonPreparedStatement.setBinaryStream(CommonPreparedStatement.java:795)
at com.sap.engine.services.dbpool.wrappers.PreparedStatementWrapper.setBinaryStream(PreparedStatementWrapper.java:597)
at com.sap.engine.messaging.impl.api.logger.DBMessageLoggerFactory$DBMessageLogger.logWrite(DBMessageLoggerFactory.java:639)
at com.sap.engine.messaging.impl.api.logger.DBMessageLoggerFactory$DBMessageLogger.log(DBMessageLoggerFactory.java:283)
at com.sap.engine.messaging.impl.api.logger.DBMessageLoggerFactory$DBMessageLogger.log(DBMessageLoggerFactory.java:251)
at com.sap.engine.messaging.impl.core.status.StatusCollector.logMessageForSyncStatusChange(StatusCollector.java:1223)
at com.sap.engine.messaging.impl.core.status.StatusCollector.checkLoggingForSyncStatusChange(StatusCollector.java:1172)
at com.sap.engine.messaging.impl.core.status.StatusCollector.update(StatusCollector.java:505)
at com.sap.engine.messaging.impl.core.status.StatusCollector.update(StatusCollector.java:656)
at com.sap.engine.messaging.impl.core.status.StatusCollector.update(StatusCollector.java:384)
at com.sap.engine.messaging.impl.core.status.StatusCollector.update(StatusCollector.java:362)
at com.sap.engine.messaging.impl.core.store.MessageStore.updateMessageStatus(MessageStore.java:1813)
at com.sap.engine.messaging.impl.core.MessageController.updateMessageStatus(MessageController.java:374)
at com.sap.engine.messaging.impl.core.MessageController.updateMessageStatus(MessageController.java:335)
at com.sap.engine.messaging.impl.core.service.Send.execute(Send.java:195)
at com.sap.engine.messaging.impl.spi.ServicesImpl.send(ServicesImpl.java:195)
at com.sap.aii.adapter.xi.ms.XIEventHandler.onSend(XIEventHandler.java:366)
at com.sap.engine.messaging.impl.api.ConnectionImpl.send(ConnectionImpl.java:186)
at com.sap.engine.messaging.impl.api.ConnectionImpl.send(ConnectionImpl.java:227)
at com.sap.engine.messaging.impl.api.ConnectionImpl.send(ConnectionImpl.java:261)
at com.sap.aii.af.app.listener.AFWListenerBean.handleResponseMessage(AFWListenerBean.java:694)
at com.sap.aii.af.app.listener.AFWListenerBean.onMessage(AFWListenerBean.java:551)
at sun.reflect.GeneratedMethodAccessor603.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:47)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:50)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:37)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:21)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_MethodRetry.invoke(Interceptors_MethodRetry.java:46)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:191)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:23)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:25)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:17)
at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:179)
at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:138)
at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:172)
at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:99)
at com.sun.proxy.$Proxy546.onMessage(Unknown Source)
at com.sap.engine.messaging.impl.spi.ServicesImpl.deliver(ServicesImpl.java:361)
at com.sap.aii.adapter.xi.ms.XIEventHandler$TRPProcessingBlock.process(XIEventHandler.java:1816)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.proceedToProcessingBlock(ProcessorImpl.java:100)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.proceedToProcessingBlock(ProcessorImpl.java:115)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.proceedToProcessingBlock(ProcessorImpl.java:115)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.proceedToProcessingBlock(ProcessorImpl.java:115)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.proceedToProcessingBlock(ProcessorImpl.java:115)
at com.sap.engine.messaging.impl.spi.stage.ProcessorImpl.processMessage(ProcessorImpl.java:71)
at com.sap.aii.adapter.xi.ms.XIEventHandler.onTransmit(XIEventHandler.java:483)
at com.sap.engine.messaging.impl.core.queue.consumer.CallConsumer.onMessage(CallConsumer.java:74)
at com.sap.engine.messaging.impl.core.queue.Queue.run(Queue.java:1061)
at com.sap.engine.messaging.runtime.MSWorkWrapper.run(MSWorkWrapper.java:58)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:185)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:302)

OpenSQLExceptionCategories: []


Thanks,

Shaibayan

Accepted Solutions (0)

Answers (2)

Answers (2)

former_member182412
Active Contributor
0 Kudos

Hi Shaibayan,

Check this sap note is applicable to your system 1882948 - XI Message cannot be persisted in Database



This exception is caused by improper calculation of message size. It may happen with multipart XI message that contains characters in the headers encoded with double bytes using the default character encoding of the Java VM. Typically, the content-type header includes the name of the file attachment. In case the file name is non-ASCII string, the size of the message is not calculated properly and SQL error occurs.


Regards,

Praveen.

engswee
Active Contributor
0 Kudos

Check if there are any messages in Delivering status that is blocking the queues. Refer following blog

Former Member
0 Kudos

Hi,

On checking we found that the message is sent to the target system. Only the message status was not updated due to the above reason.

Any idea?

Thanks,

Shaibayan

former_member182412
Active Contributor
0 Kudos

did you check the note which referred below??