You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Jean-Marc MALMEDY <jm...@yahoo.com> on 2008/08/19 14:49:20 UTC

Kill user session

Hi,
I'd like to know whether there is a way to retrieve the list of the users currently connected to Derby (network server environment) and their running transactions. Is it possible to force the disconnection of a user and to kill his running transactions without having to restart the server?
Thank you in advance.
JM Malmedy



      

Re: Kill user session

Posted by JM Malmedy <jm...@yahoo.com>.
Hello,

Unfortunately, the users connect to the database using products like
SQuirreL or some reporting products. That means I have no control on the way
they connect their sessions.

I know this is not the best way to work and certainly not the safest.
Unfortunately that's the choice of the customers I work for and I have to
deal with it.

Anyway thank you very much for your advices.

JM Malmedy


Rick Hillegas-2 wrote:
> 
> Hi Jean-Marc,
> 
> I don't know of any support in Derby for this. Maybe you could code the 
> support outside Derby. For instance, if your clients got their sessions 
> from a connection  manager which you controlled, then you could cache 
> open connections and kill them as needed. To kill a connection, I think 
> that the following would work:
> 
>   conn.rollback();
>   conn.close();
> 
> If you are running Derby under an application server, it is possible 
> that the application server may provide some support for what you need 
> to do.
> 
> Hope this helps,
> -Rick
> 
> JM Malmedy wrote:
>> Hi Rick,
>>
>> First of all, thank you for your fast and useful answer.
>>
>> In fact my problem is that the database is used together by customer GUI
>> applications that execute small and well-controlled transactions but also
>> by
>> some "power" users that execute their own SQL requests for reporting.
>> Very
>> often these users run a SQL which is not optimized and that take a lot of
>> resources and, of course, that's very disturbing for the GUI
>> applications.
>> That's why I'd like to be able to kill these SQL requests when needed
>> directly on the server. Is there any workaround to do this?
>>
>> Thanks again.
>>
>> Jean-Marc
>>
>>
>> Rick Hillegas-2 wrote:
>>   
>>> Hi Jean-Marc,
>>>
>>> The following query will list the in-flight transactions and the users 
>>> who are running them. For more information, please see the section 
>>> titled "SYSCS_DIAG diagnostic tables and functions" in the Derby 
>>> Reference Manual: http://db.apache.org/derby/docs/10.4/ref/
>>>
>>>    select * from SYSCS_DIAG.TRANSACTION_TABLE
>>>
>>> I'm not aware of any graceful way to terminate another user's session.
>>>
>>> Hope this helps,
>>> -Rick
>>>
>>> Jean-Marc MALMEDY wrote:
>>>     
>>>> Hi,
>>>> I'd like to know whether there is a way to retrieve the list of the
>>>> users
>>>> currently connected to Derby (network server environment) and their
>>>> running transactions. Is it possible to force the disconnection of a
>>>> user
>>>> and to kill his running transactions without having to restart the
>>>> server?
>>>> Thank you in advance.
>>>> JM Malmedy
>>>>
>>>>
>>>>
>>>>       
>>>>   
>>>>       
>>>
>>>     
>>
>>   
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Kill-user-session-tp19050316p19083549.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.


Re: Kill user session

Posted by Rick Hillegas <Ri...@Sun.COM>.
Hi Jean-Marc,

I don't know of any support in Derby for this. Maybe you could code the 
support outside Derby. For instance, if your clients got their sessions 
from a connection  manager which you controlled, then you could cache 
open connections and kill them as needed. To kill a connection, I think 
that the following would work:

  conn.rollback();
  conn.close();

If you are running Derby under an application server, it is possible 
that the application server may provide some support for what you need 
to do.

Hope this helps,
-Rick

JM Malmedy wrote:
> Hi Rick,
>
> First of all, thank you for your fast and useful answer.
>
> In fact my problem is that the database is used together by customer GUI
> applications that execute small and well-controlled transactions but also by
> some "power" users that execute their own SQL requests for reporting. Very
> often these users run a SQL which is not optimized and that take a lot of
> resources and, of course, that's very disturbing for the GUI applications.
> That's why I'd like to be able to kill these SQL requests when needed
> directly on the server. Is there any workaround to do this?
>
> Thanks again.
>
> Jean-Marc
>
>
> Rick Hillegas-2 wrote:
>   
>> Hi Jean-Marc,
>>
>> The following query will list the in-flight transactions and the users 
>> who are running them. For more information, please see the section 
>> titled "SYSCS_DIAG diagnostic tables and functions" in the Derby 
>> Reference Manual: http://db.apache.org/derby/docs/10.4/ref/
>>
>>    select * from SYSCS_DIAG.TRANSACTION_TABLE
>>
>> I'm not aware of any graceful way to terminate another user's session.
>>
>> Hope this helps,
>> -Rick
>>
>> Jean-Marc MALMEDY wrote:
>>     
>>> Hi,
>>> I'd like to know whether there is a way to retrieve the list of the users
>>> currently connected to Derby (network server environment) and their
>>> running transactions. Is it possible to force the disconnection of a user
>>> and to kill his running transactions without having to restart the
>>> server?
>>> Thank you in advance.
>>> JM Malmedy
>>>
>>>
>>>
>>>       
>>>   
>>>       
>>
>>     
>
>   


Re: Kill user session

Posted by JM Malmedy <jm...@yahoo.com>.
Hi Rick,

First of all, thank you for your fast and useful answer.

In fact my problem is that the database is used together by customer GUI
applications that execute small and well-controlled transactions but also by
some "power" users that execute their own SQL requests for reporting. Very
often these users run a SQL which is not optimized and that take a lot of
resources and, of course, that's very disturbing for the GUI applications.
That's why I'd like to be able to kill these SQL requests when needed
directly on the server. Is there any workaround to do this?

Thanks again.

Jean-Marc


Rick Hillegas-2 wrote:
> 
> Hi Jean-Marc,
> 
> The following query will list the in-flight transactions and the users 
> who are running them. For more information, please see the section 
> titled "SYSCS_DIAG diagnostic tables and functions" in the Derby 
> Reference Manual: http://db.apache.org/derby/docs/10.4/ref/
> 
>    select * from SYSCS_DIAG.TRANSACTION_TABLE
> 
> I'm not aware of any graceful way to terminate another user's session.
> 
> Hope this helps,
> -Rick
> 
> Jean-Marc MALMEDY wrote:
>> Hi,
>> I'd like to know whether there is a way to retrieve the list of the users
>> currently connected to Derby (network server environment) and their
>> running transactions. Is it possible to force the disconnection of a user
>> and to kill his running transactions without having to restart the
>> server?
>> Thank you in advance.
>> JM Malmedy
>>
>>
>>
>>       
>>   
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Kill-user-session-tp19050316p19064917.html
Sent from the Apache Derby Users mailing list archive at Nabble.com.


Re: Kill user session

Posted by Rick Hillegas <Ri...@Sun.COM>.
Hi Jean-Marc,

The following query will list the in-flight transactions and the users 
who are running them. For more information, please see the section 
titled "SYSCS_DIAG diagnostic tables and functions" in the Derby 
Reference Manual: http://db.apache.org/derby/docs/10.4/ref/

   select * from SYSCS_DIAG.TRANSACTION_TABLE

I'm not aware of any graceful way to terminate another user's session.

Hope this helps,
-Rick

Jean-Marc MALMEDY wrote:
> Hi,
> I'd like to know whether there is a way to retrieve the list of the users currently connected to Derby (network server environment) and their running transactions. Is it possible to force the disconnection of a user and to kill his running transactions without having to restart the server?
> Thank you in advance.
> JM Malmedy
>
>
>
>       
>