On Mon, 5 Mar 2007, Jan Wieck wrote: > On 2/27/2007 3:53 PM, Jeff Frost wrote: >> On Mon, 19 Feb 2007, Jeff Frost wrote: >> >>> On Fri, 9 Feb 2007, Jan Wieck wrote: >>> >>>>> >>>>> CREATE SET (id = 9998, origin = 1, comment = 'temp set'); >>>>> SET ADD TABLE (set id=9998, origin=1, id=15, >>>>> FULL QUALIFIED NAME = 'public.test', comment='test table'); >>>>> >>>>> SUBSCRIBE SET (id=9998, provider=1, receiver=2); >>>>> WAIT FOR EVENT (origin=2, confirmed=1, wait on=2); >>>>> >>>>> SYNC(id = 1); >>>>> WAIT FOR EVENT (origin=1, confirmed =2, wait on=1); >>>>> >>>>> MERGE SET ( id = 1, add id = 9998, origin = 1 ); >>>>> ======== >>>>> >>>>> yah? >>>> >>>> Nod! >>> >>> Looks like I still have it slightly off. The following is from a 3 node >>> slony cluster with node 3 getting its data from node 2 running >>> slony1-1.2.2: >> >> I have another one which is simpler, but also did not work. What am I >> doing wrong? Naturally, if I go back and try to merge the sets a few >> seconds later, it works great. Here's the error: >> >> [EMAIL PROTECTED] ~]$ /tmp/v022-012-CreateEmailAddressBook-dev_slony.slonik >> /tmp/v022-012-CreateEmailAddressBook-dev_slony.slonik:20: PGRES_FATAL_ERROR >> select "_T1".mergeSet(1, 9998); - ERROR: Slony-I: set 9998 has >> subscriptions in progress - cannot merge >> >> And here's the slonik script. This is with slony1-1.2.6 and postgresql >> 8.1.8: >> >> #!/usr/local/slony/bin/slonik >> >> INCLUDE </home/postgres/lib/preamble-dev_slony.slonik>; >> >> CREATE SET (id = 9998, origin = 1, comment = 'temp set'); >> SET ADD TABLE (set id=9998, origin=1, id=126, >> FULL QUALIFIED NAME = 'public.email_address_book', >> comment='email_address_book table'); >> SET ADD TABLE (set id=9998, origin=1, id=127, >> FULL QUALIFIED NAME = 'public.email_address', comment='email_address >> table'); >> SET ADD TABLE (set id=9998, origin=1, id=128, >> FULL QUALIFIED NAME = 'public.email_group', comment='email_group >> table'); >> SET ADD TABLE (set id=9998, origin=1, id=129, >> FULL QUALIFIED NAME = 'public.email_address_group', >> comment='email_address_group table'); >> >> SUBSCRIBE SET (id=9998, provider=1, receiver=2, forward=yes); >> WAIT FOR EVENT (origin=2, confirmed =1, wait on=2); >> SYNC(id = 1); >> WAIT FOR EVENT (origin=1, confirmed =2, wait on=1); >> >> MERGE SET ( id = 1, add id = 9998, origin = 1 ); > > This is indeed very odd. When the SUBSCRIBE SET was confirmed by 1, it should > have generated the internal ENABLE_SUBSCRIPTION event. The SYNC and WAIT FOR > on 1 are the way to make sure that the subscription is indeed complete and > that this fact is known on 1. I fail to see how this can result in the above > error ... would have to do some testing myself.
Well, I'm happy to hear that I'm using the correct syntax, but sad that it doesn't appear to work in spite of that, but it seems reproducible about 50% of the time on this particular server. -- Jeff Frost, Owner <[EMAIL PROTECTED]> Frost Consulting, LLC http://www.frostconsultingllc.com/ Phone: 650-780-7908 FAX: 650-649-1954 _______________________________________________ Slony1-general mailing list [email protected] http://gborg.postgresql.org/mailman/listinfo/slony1-general
