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