Can not sustain ODBC connection with TakeStock

StingRayYellow0

New Member
Hello. I’m developing a .NET 3.5 integration with TakeStock, and can successfully read data with the Progress Openedge 10.1B Driver. My integration creates several hundred ODBC calls thruout the day, and takes special care to close and dispose of each connection after each use. I’ve noticed that if I open\close too many connections, I receive an error:
System.Data.Odbc.OdbcException: ERROR [08S01] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver]Socket closed.

I’ll see this error for EVERY connection I attempt to connect, until I kill & restart the application.
Is there a limit that I’ve reached? Please send me a suggestion on how to bypass this issue. My ODBC connection code is below.
Thank you for reading.

Code:
[FONT=Courier New][FONT=Courier New]      
[FONT=Courier New]         [COLOR=#2b91af]DataTable[/COLOR] EmpDT = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]DataTable[/COLOR]();[/FONT]
[FONT=Courier New]         [COLOR=#2b91af]OdbcDataAdapter[/COLOR] EmpAdapter = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]OdbcDataAdapter[/COLOR]();[/FONT]
[FONT=Courier New]         [COLOR=#2b91af]OdbcConnection[/COLOR] DBConSelect = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]OdbcConnection[/COLOR]([/FONT][COLOR=maroon][FONT=Times New Roman]"uid=reports;pwd=pwd;Driver={Progress Openedge 10.1B Driver};host=supnt04;port=2525;db=domdata;persist security info=true"[/FONT][/COLOR][FONT=Courier New]);[/FONT]
[FONT=Courier New]         [COLOR=#2b91af]OdbcCommand[/COLOR] SelectCommand = [COLOR=blue]new[/COLOR] [COLOR=#2b91af]OdbcCommand[/COLOR]();[/FONT]
[FONT=Courier New]         SelectCommand.CommandText = [/FONT][COLOR=maroon][FONT=Times New Roman]"[/FONT][/COLOR][COLOR=#a31515][FONT=Courier New]SELECT * FROM smphonehdr[/FONT][/COLOR][COLOR=maroon][FONT=Times New Roman]"[/FONT][/COLOR][FONT=Courier New];[/FONT]
[FONT=Courier New]         SelectCommand.CommandType = [COLOR=#2b91af]CommandType[/COLOR].Text;[/FONT]
[FONT=Courier New]         SelectCommand.Connection = DBConSelect;[/FONT]
[FONT=Courier New]         EmpAdapter.SelectCommand = SelectCommand;[/FONT]
[FONT=Courier New]         EmpAdapter.SelectCommand.CommandTimeout = myServerTimeoutSeconds;[/FONT]
[FONT=Courier New]         EmpAdapter.Fill(EmpDT);[/FONT]
[FONT=Courier New]         SelectCommand.Dispose();[/FONT]
[FONT=Courier New]         DBConSelect.Close();[/FONT]
[FONT=Courier New]         DBConSelect.Dispose();[/FONT]
[FONT=Courier New]         EmpAdapter.Dispose();[/FONT]
[FONT=Courier New]         [COLOR=blue]return[/COLOR] EmpDT;[/FONT]
[/FONT][/FONT]
 
You don't tell us anything 'bout how your database is set up. I suppose you're not using the database solely for ODBC connections ...

Therefore, if I must speculate, I would guess that you didn't setup a secondary login broker for your database. If that's the case you should have a look into the knowledge base searching for "secondary login broker". The result will explain the why and the how.

Regards, RealHeavyDude.
 
Thank you for the response. I apologize for my ignorance, but I have never used TakeStock or Progress Openedge. I’ve been presented with an ODBC connection, and asked to read data for an integration. I’ve searched your site for "secondary Login Broker" and noticed that there should be a dedicated user account for these type of activities. It would be VERY helpful if you could sum up what should be done to ensure a successful ODBC connection, and post it here. If you need to know specifics, please let me know what you need so I can research it. I do not have access to any knowledge base or help files other than this website forum.​
 
I'll take it from your response that you're not familiar with the database administration for a Progress database. The secondary login broker needs to be set up by the database administrator on the machine where the database is started. There is no way you can do this from the client. Therefore you need get a hold on THE somebody who is responsible for the database. Is there somebody available you could get in touch with?

Regards, RealHeavyDude.
 
I have a call with the database admin tomorrow. I'm going to request a secondary login broker. Are there any other magic words I should mention?
 
If the database admin is worth his/her pay then the request of a secondary login broker should be sufficient.

Good luck!

HTH, RealHeavyDude.
 
Back
Top