Disconnect users from database

Posted by ozgunkus on 27-Aug-2014 05:13

Our ERP database Openedge 10.2b is running under Linux Redhat 6.0 . We have openedge RDBMS enterprise license . In this platform  is it possible to disconnect users from database who make no transaction in last 10 minutes or idle users ?

 I want to that, automatically when there is a user unconnected to the system, time-out is 10 minutes. How can I do ? Have you got any parameters for this ? I used -PendConnTime 900 parameter but İt doesn’t.

All Replies

Posted by James Palmer on 27-Aug-2014 05:14

Why would you want to do this? In my very humble opinion this is a very bad idea.

Posted by ozgunkus on 27-Aug-2014 05:27

That's your opinion , but in our ERP system ,idle users sometimes can cause craches with eachother. Additionally , I want to automatically disconnect users from database  who  do not any transaction. (Time - out ).If you do not have relevant information,Please do not respond. [mention:77cbb45621a246f9a1a1f2f378e535b1:e9ed411860ed4f2ba0265705b8793d05]

Posted by James Palmer on 27-Aug-2014 05:37

I'm only trying to get to the bottom of your request, as I feel it is ill-advised. It may be a sign that other things are not working correctly.

For example, I don't understand how idle users who aren't performing transactions, can cause crashes with each other.

Posted by ozgunkus on 27-Aug-2014 05:50

it is only one simple . For example an user enter ERP system . Generally users don't log off  from ERP.  Then they come to work after one day , They try to log in ERP ve sometimes they crashes themselves in database . So I want to automatically disconnect users from database  who  do not any transaction after 10 minutes. Ok ? Do you have any idea ? [mention:77cbb45621a246f9a1a1f2f378e535b1:e9ed411860ed4f2ba0265705b8793d05]

Posted by James Palmer on 27-Aug-2014 06:07

I can see that this is an issue. Are you able to modify the source of your ERP system? It would be better for the system to log users out when they are done rather than having a script to kill users. If you can't modify source, then maybe your vendor can advise a method that is safer than a script.

Posted by Paul Koufalis on 27-Aug-2014 06:11

If it is a ChUI app you can check the UNIX idle time for inactivity then the _Trans table.

Posted by ozgunkus on 27-Aug-2014 06:20

What is ChUI app ? Can you explain in detail ? [mention:3cb137fff0074190a2d3f32e55cf403a:e9ed411860ed4f2ba0265705b8793d05]

Posted by Stefan Marquardt on 27-Aug-2014 06:33

"They try to log in ERP ve sometimes they crashes themselves in database"

If they don't logoff then can't do a log in?!

I don't think that users like to be throwed out after 10 minutes inactivity.

You should solve the main problem because idle users shouldn't create any problems in any application.

Perhaps it would help to describe "crashes themselves " more precise?

Recognition of "idle" is not possible in a distributed app - only in CHaracterUserInterface where a process/terminal session can be watched.

Posted by Paul Koufalis on 27-Aug-2014 06:40

Stefan answered : Character user interface.

Posted by ozgunkus on 27-Aug-2014 06:51

Summurize , Is there any parameter or code to disconnect from database  for users who have any transaction or operation for unix ?

Progress has a parameter for this issue but ClientTimeOut Startup Parameter is running only windows server .

I need a paramter for unix server.

knowledgebase.progress.com/.../P15531

[mention:3cb137fff0074190a2d3f32e55cf403a:e9ed411860ed4f2ba0265705b8793d05] [mention:60ce6e5c50d843baae631b41add36c1b:e9ed411860ed4f2ba0265705b8793d05] [mention:77cbb45621a246f9a1a1f2f378e535b1:e9ed411860ed4f2ba0265705b8793d05]

Posted by ChUIMonster on 27-Aug-2014 07:01

The simple answer is "no, there is no parameter that will do what you are asking".

The longer answer is longer -- you could, in theory, write some scripts but as various people are trying to point out, there are many things to take into consideration if want those scripts to work well.

This is something that, superficially, seems simple and easy but, in reality it is much more complex than generally imagined.

The first problem is to define what you mean by "idle".  You say "no transactions for 10 minutes".  So you'd be happy to zap a user who has been doing inquires for 11 minutes?



On 8/27/14, 7:51 AM, ozgunkus wrote:
Reply by ozgunkus

Summurize , Is there any parameter or code to disconnect from database  for users who have any transaction or operation for unix ?

Progress has a parameter for this issue but ClientTimeOut Startup Parameter is running only windows server .

I need a paramter for unix server.

knowledgebase.progress.com/.../P15531

Stop receiving emails on this subject.

Flag this post as spam/abuse.



-- 
Tom Bascom
603 396 4886
tom@greenfieldtech.com

Posted by ozgunkus on 27-Aug-2014 07:20

Thank you for your reply [mention:dc2ff39fa15940708b78017f1194db6a:e9ed411860ed4f2ba0265705b8793d05]  

Do you have available script about this issue ?

Thank you

Posted by ChUIMonster on 27-Aug-2014 09:30

No, I do not have scripts for this -- my advice to clients is that they not pursue these sorts of things.  IMHO idle users are not a problem -- if they aren't truly doing anything they aren't causing any issues.  Almost every time that I have run into one of these "idle user killer" scripts it has been because it was killing users that it should not kill or it was killing them in an unsafe manner that was causing much, much bigger issues in the application.  It is a case of the "cure" being worse than the disease.

Also, many times the real impetus for these scripts is not any actual problem -- it is someone completely misunderstanding licensing.

I prefer to focus my efforts on actual problems that really need to be solved.


On 8/27/14, 8:20 AM, ozgunkus wrote:
Reply by ozgunkus

Thank you for your reply  

Do you have available script about this issue ?

Thank you

Stop receiving emails on this subject.

Flag this post as spam/abuse.



-- 
Tom Bascom
603 396 4886
tom@greenfieldtech.com

Posted by gus on 27-Aug-2014 09:50

@ozgunkus: i am sorry but there are no configuration parameters or other features in OpenEdge to disconnect "idle" users. also, we do not know what "idle" means for you.

you will have to make it part of your application and add code to perform the calculations required for your particular definition of "idle" to do it. you will find this to be quite difficult. alternatively, do as chuimonster has suggested and forget about it.

Posted by Thomas Mercer-Hursh on 27-Aug-2014 10:51

Bouncing the database over night is a simple way to ensure that everyone is logged out in the morning ....

Posted by Rob Fitzpatrick on 27-Aug-2014 11:22

Bouncing the DB also ensures that your cache is cold in the morning, potentially disrupts overnight batch processing, and necessitates verification that needed processes (AppServers, WS agents, batch clients, etc.) are running again after restart.  Again, this is addressing symptoms rather than defining and fixing problems.  

I think "idle" users (however one might define that) are a non-issue.

Posted by Thomas Mercer-Hursh on 27-Aug-2014 11:54

To be fair, this is hardly the first time that the issue of idle users has come up, so one shouldn't discount that some people see a problem here.  It is just that disconnection is using a sledgehammer to solve the problem. I understand that people do open sessions and then minimize them and open new ones and thus end up with multiple sessions, only one of which is actually in use.  Some people mistakenly see this as a license issue, but it can be a tuning or configuration problem, if nothing else.  The difficulty comes in identifying the right candidates for disconnection.  If one is at a main menu and one has something like a timer to update a clock on that menu, I have no problem with including a timer which will eventually log the session out if not reset.  But, I would make that interval a lot more than 10 minutes.  But, this does nothing at all for the user that goes into an inquiry and then leaves for lunch.  That kind of situation is very hard to distinguish from someone who has painstakingly found the piece of information they need and then it takes a while to act on it, perhaps because of an interrupting telephone call or whatever.   Log out that user and you will have an angry user.  There is a lot here where one needs some simple mechanisms reinforced by user education and monitoring.  A change that only impacts the main menu is very different from expecting something to work everywhere in every circumstance.  An alert that one is already logged on is probably simple to implement and not offensive and yet likely to catch many issues.

Posted by Lieven De Foor on 03-Sep-2014 09:50

Assuming you have the source of the application, there are several ways to build in some sort of time-out mechanism on the client side.

In classic UI you can use WAIT-FOR xxx PAUSE statement to timeout (and then check for any active transactions and quit the session if needed); in .NET UI you can look at the ApplicationIdle .net component (www.codeproject.com/.../Application-Idle).

This thread is closed