Timeouts

Is there any way to change the timeouts for executing code? I need to run some code that hits an external website. This code in normal processing could take several minutes to complete. I have included the stack trace as a reference below.

Thanks, Jason Workman

Caught Exception for IP: 69.169.144.5: Alphora.Dataphor.DataphorException: Runtime error: The operation has timed out ---> Alphora.Dataphor.DataphorException: The operation has timed out
--- End of inner exception stack trace ---

Server stack trace:
at Alphora.Dataphor.DAE.Server.RemoteServerExpressionPlan.Evaluate(RemoteParamData& AParams, TimeSpan& AExecuteTime, ProcessCallInfo ACallInfo)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)

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 Alphora.Dataphor.DAE.IRemoteServerExpressionPlan.Evaluate(RemoteParamData& AParams, TimeSpan& AExecuteTime, ProcessCallInfo ACallInfo)
at Alphora.Dataphor.DAE.Server.LocalExpressionPlan.Evaluate(DataParams AParams)
at Alphora.Dataphor.DAE.Client.DataSessionBase.Evaluate(IServerProcess AProcess, String AExpression, DataParams AParams)

Can you post the server-side stack trace?

Hi Jason,

There is an execution timeout setting in the server, but the error message you are getting is not specific enough to know whether or not that is the one being reached. You can set it by updating the ServerSettings catalog table:

update ServerSettings set { ProcessWaitTimeout := Seconds(100) };

There are also connection and execution timeouts in the device layer that can be set with the attributes of the class definition used to create the device.

Bryn Rhodes
Database Consulting Group LLC

Thank you

I'll try the server setting change you suggested.

I am not sure what you mean by the device. The problem doesn't appear to be database connection that times out on our SQLServer device. Our timeout happens when our server makes a call to an external DLL. Is there some default 'device' for this operation?

The call is made using something similar to this:
create operator OperatorName (const Info: row) : Boolean
class "Abc.DoSomething" static tags { DAE.IsRemotable = "False" };

Thanks again, Jason

This looks like a tcp/ip timeout

There aren't any execution timeouts in the core runtime, the message posted in the above stack trace appears to be coming from the external call. Does the service you are using have any way to change the timeouts?

Bryn Rhodes
Database Consulting Group LLC