[Stackoverflow] [Progress OpenEdge ABL] Connection from .net to Progress.OpenClient throws Object is no longer available for use. (7260)

Status
Not open for further replies.
S

Spikee

Guest
Background

My C# code hasn't been touched in a long time (1 year+), suddenly I get the following error when connecting to our Progress server:

Progress.Open4GL.Exceptions.Open4GLException
HResult=0x80131500
Message=Object is no longer available for use. (7260)
Source=Progress.o4glrt
StackTrace:
at Progress.Open4GL.Proxy.OpenAppObject.RunProc(String procName, ParamArray paramArray)
at My.Service.Progress.LoadStuff.<Handle>d__2.MoveNext() in C:\MyRepo\My.Service.Progress\LoadStuff.cs:line 34


This is called via a Progress client dll reference:

<package id="Progress.OpenClient" version="11.7.1" targetFramework="net471" />


Like so:

public async Task Handle(GetStuffToLoad message, IMessageHandlerContext context)
{
var parameters = new ParamArray(4);

parameters.AddCharacter(0, message.param1, ParamArrayMode.INPUT);
parameters.AddCharacter(1, message.param2, ParamArrayMode.INPUT);
parameters.AddDecimal(2, decimal.Parse(message.param3), ParamArrayMode.INPUT);
parameters.AddLongChar(3, null, ParamArrayMode.OUTPUT);

_trisClient.RunProc("loadStuff", parameters);

var stuffContent = (string)parameters.GetOutputParameter(3);
}


Symptoms

  • On the very first try, everything's okay. No errors.
  • Doing a second call soon after the first gives the above error.
  • I'm calling our TEST environment locally.
  • As far as we know, TEST does not have the same symptoms.

I logged an earlier bugfix request to the Progress team, I got that when calling the progress TEST environment from multiple threads:

Progress.Open4GL.Exceptions.BusySessionException
HResult=0x80131500
Message=Session is busy. Another request is executing or there is an open result set(s). (7226)
Source=Progress.o4glrt
StackTrace:
at Progress.Open4GL.DynamicAPI.Session.runProcedure(String requestID, String procedureName, ParameterSet parms, Boolean persistent, Boolean internal_Renamed, Int64 procId, MetaSchema localSchema, Int32 stateModel)


At the time it was decided to refactor my side to not run in parallel, so that the underlying connections are flooded.

But, with what I found out now, I'm inclined to believe the two issues are related.

Both share that HResult=0x80131500 report.

What I think is going on

As the first try works and the second doesn't, I think that either the progress TEST server, or the Progress OpenClient, does not correctly close a connection and/or transaction.


What needs to happen to fix the issue? Is it something on my side or something with the Progress server (dll or actual server)?

Continue reading...
 
Status
Not open for further replies.
Top