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
>
>
>
>
>