Обсуждение: Resource temporarily unavailable

Поиск
Список
Период
Сортировка

Resource temporarily unavailable

От
"Nico"
Дата:
I have a servlet that generates a framesetpage. Each of the three frames on
that framesetpage is also a link to a the same servlet, only with other
parameters. The framesetpage has two parts: a topframe and a bottomframe.
The bottomframe has again two parts: a leftframe and a rightframe. The
topframe gets data from two tables, so does the left and the right. They
each make a connection and a resultset for each (6 of them) query based on
those tables. Additionally, they use a common table for metadata.
After a few refreshes(three or four), he gives me an error: resource
temporarily unavailable. How can I resolve this issue? Sometimes, I don't
even have to refresh to get the error. The server my servlet is running
under has a threadpool. But how do I prevent this error from occurring
again? I don't need much, but I have to at least support 5 users at a time.
I have tought about threading or connection pools, but I know very little
about it.

Any help is appreciated.
Nico.



Re: Resource temporarily unavailable

От
Tom Lane
Дата:
"Nico" <nicohmail-postgresql@yahoo.com> writes:
> topframe gets data from two tables, so does the left and the right. They
> each make a connection and a resultset for each (6 of them) query based on
> those tables. Additionally, they use a common table for metadata.
> After a few refreshes(three or four), he gives me an error: resource
> temporarily unavailable. How can I resolve this issue?

I think you're running into a processes-per-user limit, preventing the
postmaster from spawning more backend processes.  You can and should
raise that limit (see your kernel documentation for details --- without
knowing what platform you're running on, I can't help).  But you should
also rethink the strategy of opening a separate database connection for
each individual query.  The overhead of doing things that way is
enormous.

            regards, tom lane

Re: Resource temporarily unavailable

От
"Nico"
Дата:
The kernel is 2.4.21-15.0.2.ELsmp. Don't know which Linux distribution,
since it's a remote server.
So you think, I should keep the connection open the whole time until the
servlet is finished, instead of opening and closing it everytime I need it?

"Tom Lane" <tgl@sss.pgh.pa.us> schreef in bericht
news:12612.1103945229@sss.pgh.pa.us...
> "Nico" <nicohmail-postgresql@yahoo.com> writes:
>> topframe gets data from two tables, so does the left and the right. They
>> each make a connection and a resultset for each (6 of them) query based
>> on
>> those tables. Additionally, they use a common table for metadata.
>> After a few refreshes(three or four), he gives me an error: resource
>> temporarily unavailable. How can I resolve this issue?
>
> I think you're running into a processes-per-user limit, preventing the
> postmaster from spawning more backend processes.  You can and should
> raise that limit (see your kernel documentation for details --- without
> knowing what platform you're running on, I can't help).  But you should
> also rethink the strategy of opening a separate database connection for
> each individual query.  The overhead of doing things that way is
> enormous.
>
> regards, tom lane
>
> ---------------------------(end of broadcast)---------------------------
> TIP 8: explain analyze is your friend
>



Re: Resource temporarily unavailable

От
John R Pierce
Дата:
Nico wrote:
> The kernel is 2.4.21-15.0.2.ELsmp. Don't know which Linux distribution,
> since it's a remote server.

`cat /etc/issue` will usually tell you...

    $ cat /etc/issue
    Red Hat Linux release 8.0 (Psyche)
    Kernel \r on an \m

that sounds like Redhat Enterprise 3 to me, but thats a wild guess.

Re: Resource temporarily unavailable

От
"Nico"
Дата:
I don't have enough access to do that. I have no control over the remote
server. But I solved myself: I forgot to close one of my connections. I no
longer have the problem. Thanks anyway.

"John R Pierce" <pierce@hogranch.com> schreef in bericht
news:41CE004A.9080709@hogranch.com...
> Nico wrote:
>> The kernel is 2.4.21-15.0.2.ELsmp. Don't know which Linux distribution,
>> since it's a remote server.
>
> `cat /etc/issue` will usually tell you...
>
> $ cat /etc/issue
> Red Hat Linux release 8.0 (Psyche)
> Kernel \r on an \m
>
> that sounds like Redhat Enterprise 3 to me, but thats a wild guess.
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
>