Persistence problem

Discussion of open issues, suggestions and bugs regarding ADO.NET provider for Oracle
Post Reply
elzamek
Posts: 4
Joined: Thu 25 Jun 2015 09:58

Persistence problem

Post by elzamek » Thu 25 Jun 2015 10:06

hello,I'm using oracle provider for workflow persistence it was working fine until i moved the application to production server, the problem is that persistence fails randomly when i tried to trace the error all i found was the exception you will find below, I'm stuck and any help would be much appreciated.


<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
<System xmlns="http://schemas.microsoft.com/2004/06/wi ... log/system">
<EventID>131075</EventID>
<Type>3</Type>
<SubType Name="Error">0</SubType>
<Level>2</Level>
<TimeCreated SystemTime="2015-06-25T07:42:29.4491734Z" />
<Source Name="System.ServiceModel" />
<Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
<Execution ProcessName="w3wp" ProcessID="9056" ThreadID="194" />
<Channel />
<Computer>PENTA-B-TEST</Computer>
</System>
<ApplicationData>
<TraceData>
<DataItem>
<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2 ... raceRecord" Severity="Error">
<TraceIdentifier>http://msdn.microsoft.com/en-US/library ... Identifier>
<Description>Throwing an exception.</Description>
<AppDomain>/LM/W3SVC/1/ROOT/UrbanPlanningWF-5-130796916417447022</AppDomain>
<Source>System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel/9809214</Source>
<Exception>
<ExceptionType>System.ServiceModel.CommunicationObjectAbortedException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>The communication object, System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel, cannot be used for communication because it has been Aborted.</Message>
<StackTrace>
at System.ServiceModel.Channels.CommunicationObject.ThrowIfAborted()
at System.ServiceModel.Channels.InputQueueChannel`1.EndDequeue(IAsyncResult result, TDisposable& item)
at System.ServiceModel.Channels.ReplyChannel.EndTryReceiveRequest(IAsyncResult result, RequestContext& context)
at System.ServiceModel.Dispatcher.ReplyChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ChannelHandler.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ChannelHandler.AsyncMessagePump(IAsyncResult result)
at System.ServiceModel.Dispatcher.ChannelHandler.OnAsyncReceiveComplete(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.InputQueue`1.AsyncQueueReader.Set(Item item)
at System.Runtime.InputQueue`1.Shutdown(Func`1 pendingExceptionGenerator)
at System.ServiceModel.Channels.InputQueueChannel`1.OnClosing()
at System.ServiceModel.Channels.CommunicationObject.Abort()
at System.ServiceModel.Dispatcher.ReplyChannelBinder.Abort()
at System.ServiceModel.Channels.ServiceChannel.OnAbort()
at System.ServiceModel.Channels.CommunicationObject.Abort()
at System.ServiceModel.Dispatcher.ListenerHandler.AbortChannels()
at System.ServiceModel.Dispatcher.ListenerHandler.OnAbort()
at System.ServiceModel.Channels.CommunicationObject.Abort()
at System.ServiceModel.Dispatcher.ChannelDispatcher.OnAbort()
at System.ServiceModel.Channels.CommunicationObject.Abort()
at System.ServiceModel.ServiceHostBase.OnServiceHostFaulted(Object sender, EventArgs args)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.ServiceModel.Channels.CommunicationObject.OnFaulted()
at System.ServiceModel.Channels.CommunicationObject.Fault()
at System.ServiceModel.Channels.CommunicationObject.Fault(Exception exception)
at System.ServiceModel.Activities.Dispatcher.DurableInstanceManager.WaitAndHandleStoreEventsCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)
at System.Runtime.Fx.AsyncThunk.UnhandledExceptionFrame(IAsyncResult result)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously)
at System.Runtime.AsyncResult.Complete(Boolean completedSynchronously, Exception exception)
at System.Runtime.DurableInstancing.InstanceHandle.WaitForEventsAsyncResult.Canceled()
at System.Runtime.DurableInstancing.InstanceHandle.Free()
at Devart.Data.Oracle.DurableInstancing.i.b(Int64 A_0)
at Devart.Data.Oracle.DurableInstancing.a4.a(Exception A_0)
at Devart.Data.Oracle.DurableInstancing.ax.a(IAsyncResult A_0)
at Devart.Data.Oracle.DurableInstancing.a5.b(Boolean A_0)
at Devart.Data.Oracle.DurableInstancing.a.c()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
</StackTrace>
<ExceptionString>System.ServiceModel.CommunicationObjectAbortedException: The communication object, System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel, cannot be used for communication because it has been Aborted.</ExceptionString>
</Exception>
</TraceRecord>
</DataItem>
</TraceData>
</ApplicationData>
</E2ETraceEvent>

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: Persistence problem

Post by Shalex » Thu 25 Jun 2015 13:26

elzamek wrote:<Message>The communication object, System.ServiceModel.Channels.TransportReplyChannelAcceptor+TransportReplyChannel, cannot be used for communication because it has been Aborted.</Message>
Please refer to If this doesn't help, try to localize the issue and send us a small test project for reproducing.

elzamek
Posts: 4
Joined: Thu 25 Jun 2015 09:58

Re: Persistence problem

Post by elzamek » Thu 25 Jun 2015 16:26

thanks for your reply but i have already encountered these links and they do no solve my problem also i can't reproduce the problem as it happens on the production server only what I'm trying to figure out is how to get the database exception that causes the problem i should be able to do this :
<system.diagnostics>
<sources>
<source name="System.Activities.DurableInstancing" switchValue="Verbose">
<listeners>
<add name="textListener" />
<remove name="Default" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="textListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="c:\Log\persistenceproblem.txt" traceOutputOptions="ProcessId, DateTime" />
</sharedListeners>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="textListener" />
</listeners>
</trace>
</system.diagnostics>

but it is not working i assume because I'm using dotconnect 3rd party, so the question is : is there anyway to trace persistence errors while using the devart dll ?

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: Persistence problem

Post by Shalex » Fri 26 Jun 2015 15:09

1. Run the dbMonitor tool (documentation, download link) to enable tracing of the database activity. It also allows monitoring applications deployed remotely. Are there any errors when provider executes the generated SQL?

2. If your deployment environment allows debugging with Visual Studio, make the following settings before running the code in the debug mode: a) in the (Debug | Exceptions) window select Common Language Runtime Exceptions; b) in the (Tools | Options) window, Debugging | General clear Enable Just My Code (Managed Only). Are there any provider specific exceptions?

elzamek
Posts: 4
Joined: Thu 25 Jun 2015 09:58

Re: Persistence problem

Post by elzamek » Sun 28 Jun 2015 14:14

thanks a lot i will give it a try.

elzamek
Posts: 4
Joined: Thu 25 Jun 2015 09:58

Re: Persistence problem

Post by elzamek » Sat 08 Aug 2015 15:17

hello,

using dbmonitor tool didn't solve the problem,it didn't log anything when the exception was raiseded(even didn't log there was a connection to the database), also the exception settings you provided led to this exception :

System.ServiceModel.FaultException was caught
_HResult=-2146233087
_message=The execution of an InstancePersistenceCommand was interrupted by an error.
HResult=-2146233087
IsTransient=false
Message=The execution of an InstancePersistenceCommand was interrupted by an error.
RemoteStackTrace=
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:

Source=mscorlib
StackTrace:
Server stack trace:
at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at ConsoleApplication3.ServiceReference2.IUrbanPlanningWF.Submit(SubmitRequest request)
at ConsoleApplication3.ServiceReference2.UrbanPlanningWFClient.ConsoleApplication3.ServiceReference2.IUrbanPlanningWF.Submit(SubmitRequest request) in c:\Users\Administrator\Desktop\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3\Service References\ServiceReference2\Reference.cs:line 150
at ConsoleApplication3.ServiceReference2.UrbanPlanningWFClient.Submit(REQUEST req) in c:\Users\Administrator\Desktop\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3\Service References\ServiceReference2\Reference.cs:line 156
at ConsoleApplication3.Program.Main(String[] args) in c:\Users\Administrator\Desktop\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3\Program.cs:line 80
InnerException:


but I'm still not able to solve the problem,any help will be appreciated also i can provide teamviewer access to production environment if needed.

thanks in advance

Shalex
Site Admin
Posts: 9543
Joined: Thu 14 Aug 2008 12:44

Re: Persistence problem

Post by Shalex » Thu 13 Aug 2015 11:13

elzamek wrote:i can provide teamviewer access to production environment if needed
Thank you but this doesn't help to debug our code and investigate the issue. Our internal policy doesn't allow developers to upload sources to remote workstations, so we can debug the code only locally (in our network).
elzamek wrote:also the exception settings you provided led to this exception
Have you tried to skip (press the "Continue" button or F5) this and other non provider specific exceptions to get the provider specific one?
elzamek wrote:using dbmonitor tool didn't solve the problem,it didn't log anything when the exception was raiseded(even didn't log there was a connection to the database)
Looks like this is a configuration issue (not provider specific). If posssible, please try using System.Data.SqlClient in the same application. Does it work?

Post Reply