Thread: Execute and PortalSuspended needs explicit transaction to work?

Execute and PortalSuspended needs explicit transaction to work?

From
"Francisco Figueiredo Jr."
Date:
-----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-----



Re: Execute and PortalSuspended needs explicit transaction

From
Oliver Jowett
Date:
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


Re: Execute and PortalSuspended needs explicit transaction

From
"Francisco Figueiredo Jr."
Date:
 --- 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


Re: Execute and PortalSuspended needs explicit transaction

From
"Francisco Figueiredo Jr."
Date:
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