Execute and PortalSuspended needs explicit transaction to work?

Started by Francisco Figueiredo Jr.almost 21 years ago4 messages
#1Francisco Figueiredo Jr.
fxjrlists@yahoo.com.br

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

I'm playing with Execute messages with a non-zero max number of rows so
that I can get some PortalSuspended messages on Npgsql.

After some testing, I could send an Execute message with 2 as the manx
number of rows. After the second execute I get the following:

portal "" does not exist
Severity: ERROR
Code: 34000

I noticed that I could only get it working if I explicitly create a
transaction.

I thought it could be some Sync() messages I was sending after the first
execute, but when I removed them, I still get the problems.

Is this by design? I mean, do I need to have an explicit transaction to
get multiple executes work when getting portalsuspended messages? Or am
I missing something?

Thanks in advance.

- --
Regards,

Francisco Figueiredo Jr.
Membro Fundador do Projeto MonoBrasil - MonoBrasil Project Founder Member
http://monobrasil.softwarelivre.org

- -------------
"Science without religion is lame;
religion without science is blind."

~ ~ Albert Einstein

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iQEVAwUBQiPOIP7iFmsNzeXfAQKGEAgAgCoF0BhPXXaS/T2Wa97T1SD90N1hWs6j
DEfcfS2poXp+lLB64oLi1Q9gZAtzpHqDpYYsM5UA1JBtIE4X5ljOgtyKDdXhQVbM
hn0rtRGYE7TLFSowVvODsu7qrchbAQVcE+rlKd91QmO9S7ibXxXaE//xAjGKvSng
h4au7Id+dhZhjTJATFHBURV8IzJg3xK2/Kxg4BwY5p0yyUlBp+cHEv5ANBdvO1ms
QVQt5QnUHobeIFfAVZvh466n36I8UhvMVaFfCxnzgPiGv2t9fnKBUEcGJrwMghm0
emx0O3Xni6xWBdW3R/aHo+XoARfwdNiW89fm2YKxWPjGzqTZHjfjng==
=C5uE
-----END PGP SIGNATURE-----

#2Oliver Jowett
oliver@opencloud.com
In reply to: Francisco Figueiredo Jr. (#1)
Re: Execute and PortalSuspended needs explicit transaction

Francisco Figueiredo Jr. wrote:

After some testing, I could send an Execute message with 2 as the manx
number of rows. After the second execute I get the following:

portal "" does not exist
Severity: ERROR
Code: 34000

I noticed that I could only get it working if I explicitly create a
transaction.

I thought it could be some Sync() messages I was sending after the first
execute, but when I removed them, I still get the problems.

If you're sending any Sync messages at all between the two Executes, it
will indeed cause problems as Sync causes any implicitly-opened
transaction to be closed, which will in turn invalidate any non-holdable
portals.

Do you have a trace of all the messages sent?

-O

#3Francisco Figueiredo Jr.
fxjrlists@yahoo.com.br
In reply to: Oliver Jowett (#2)
Re: Execute and PortalSuspended needs explicit transaction
 --- Oliver Jowett <oliver@opencloud.com> escreveu: 

Francisco Figueiredo Jr. wrote:

After some testing, I could send an Execute message with 2 as the manx
number of rows. After the second execute I get the following:

portal "" does not exist
Severity: ERROR
Code: 34000

I noticed that I could only get it working if I explicitly create a
transaction.

I thought it could be some Sync() messages I was sending after the first
execute, but when I removed them, I still get the problems.

If you're sending any Sync messages at all between the two Executes, it
will indeed cause problems as Sync causes any implicitly-opened
transaction to be closed, which will in turn invalidate any non-holdable
portals.

Ok.

The strange part to me is that even after removing the sync calls, I still got
the problem :(

Do you have a trace of all the messages sent?

I'm not at my devel box right now, but when I get home I will send you.

Thanks in advance, Oliver.

Regards,

Francisco Figueiredo Jr.

_______________________________________________________
Yahoo! Acesso Gr�tis - Instale o discador do Yahoo! agora. http://br.acesso.yahoo.com/ - Internet r�pida e gr�tis

#4Francisco Figueiredo Jr.
fxjrlists@yahoo.com.br
In reply to: Oliver Jowett (#2)
Re: Execute and PortalSuspended needs explicit transaction

Oliver Jowett wrote:

Francisco Figueiredo Jr. wrote:

After some testing, I could send an Execute message with 2 as the manx
number of rows. After the second execute I get the following:

portal "" does not exist
Severity: ERROR
Code: 34000

I noticed that I could only get it working if I explicitly create a
transaction.

I thought it could be some Sync() messages I was sending after the first
execute, but when I removed them, I still get the problems.

If you're sending any Sync messages at all between the two Executes, it
will indeed cause problems as Sync causes any implicitly-opened
transaction to be closed, which will in turn invalidate any non-holdable
portals.

Do you have a trace of all the messages sent?

-O

Hi Oliver.

Sorry for late response.

I have this sequence of calls from my client app:

Parse

Bind

Execute passing 2 as max rows.

And later a second Execute passing 2 as max rows.

Is there some flag or opt I can pass to postmaster so that it could log
the messages received?

On this second execute I get the error I told you. If I use an explicit
transaction, it works.

Thanks in advance.

--
Regards,

Francisco Figueiredo Jr.
Membro Fundador do Projeto MonoBrasil - MonoBrasil Project Founder Member
http://monobrasil.softwarelivre.org

-------------
"Science without religion is lame;
religion without science is blind."

~ Albert Einstein