Re: [U2] Universe Triggers
re. triggers Raid, I could not agree with Phil more. Well said. Come on, Rocket! On 7/19/2013 1:32 AM, Phil Walker wrote: Ken, I am glad you raised the issue about debugging a program with a file which has a trigger attached. I have been on to UV (Vmark/Ardent/IBM/Rocket for ages about fixing this pushing for the ability to be able to step into the trigger code, but at a VERY MINIMUM being able to debug the program and perform the write on the file, and in effect step over the trigger subroutine and carry on debugging. The issue is the trigger subroutine cannot support input, so what UV have done is basically say you are using the debugger so you are inputting debug commands so you will abort. They need to turn this restriction off for debugging so that either of the above two scenarios is supported. In a Microsoft world I can debug anything through the connected world of web/databases etc.. Have had no feedback from UV -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ken Ford Sent: Friday, 19 July 2013 9:48 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
I won't be holding my breath Charles ;-) -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Charles Stevenson Sent: Friday, 26 July 2013 9:22 p.m. To: U2 Users List Subject: Re: [U2] Universe Triggers re. triggers Raid, I could not agree with Phil more. Well said. Come on, Rocket! On 7/19/2013 1:32 AM, Phil Walker wrote: Ken, I am glad you raised the issue about debugging a program with a file which has a trigger attached. I have been on to UV (Vmark/Ardent/IBM/Rocket for ages about fixing this pushing for the ability to be able to step into the trigger code, but at a VERY MINIMUM being able to debug the program and perform the write on the file, and in effect step over the trigger subroutine and carry on debugging. The issue is the trigger subroutine cannot support input, so what UV have done is basically say you are using the debugger so you are inputting debug commands so you will abort. They need to turn this restriction off for debugging so that either of the above two scenarios is supported. In a Microsoft world I can debug anything through the connected world of web/databases etc.. Have had no feedback from UV -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ken Ford Sent: Friday, 19 July 2013 9:48 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
However, before you can add or activate any triggers, you must GRANT GRANT privileges to the user Attempting to add the triggers while you are the user uvsql if you want that user to be able To add triggers, otherwise, you will have to be user uvsql for any trigger activity. I also found you can not have any , * or - in the filename if you want to add triggers to it, If that is the case, you must create a Q pointer to the file with a name that is acceptable. You can not add a trigger to a file that is a q pointer to another directory, UNLESS, you create The Q pointer as a F type Voc entry, and use the full pathname to the files - then it's not Technically a Q pointer, but still behaves like one! These were things that I had the most trouble getting over Also, make sure any files that the trigger program will need are accessable. So if you put a trigger On a file, and the trigger program opens FILE A, and your in Account A - you must make sure that FILE A can be opened in Account A. If you move to Account B and the file that has the trigger on And you have a Q pointer to that file, make sure Account B has access to FILE A otherwise your Trigger program will bomb out. George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Mark Eastwood Sent: Thursday, July 18, 2013 8:33 AM To: U2 Users List Subject: Re: [U2] Universe Triggers Yes. Check out the SQL Reference Manual. The Trigger subroutine has a set defined number of parameters (it's in the doc). We use account type Pick (non-Schema) so a few notes: -Create a new VOC entry named ICATALOG (copy from CATALOG and change attr 6 to INFORMATION.FORMAT). Use this to catalog your Trigger Subroutine. -When we add Triggers to files, we always have all users logged off (paranoid). Here's a sample trigger subroutine (not a real program, only a demo) : SUBROUTINE TRIGGER.EXAMPLE(TRIGGER.NAME,SCHEMA,TABLE,EVENT,TIME, NEW.RECORD.ID,NEW.RECORD,OLD.RECORD.ID, OLD.RECORD,ASSOCIATION,ASSOCIATION.EVENT,COUNT,CHAIN.CASCADE,CASCADE) : OPEN 'AUDIT' TO AUDIT ELSE RETURN : * : UPDATE.TYPE = EVENT[1,1] ; * U,D,I : * : IF NEW.RECORD # OLD.RECORD THEN : READU X FROM AUDIT,NEW.RECORD.ID ELSE NULL : WRITE DATE():*:TIME() ON AUDIT,NEW.RECORD.ID : END : RETURN ; * RETURN TO CALLING PROGRAM :END Mark -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Daniel Jorgenson Sent: Wednesday, July 17, 2013 3:32 PM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers Has anyone setup and used Unix/Universe triggers. Where do you start? Any manuals to get started? Regards, Dan Jorgenson Senior Systems Analyst SICK, Inc. 6900 West 110th Street Minneapolis, MN 55438 USA Phone: 952.941.6780 Fax: 952.941.9287 Direct: 952.829.4732 http://www.sickusa.com This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use or distribution is prohibited. If you have received this communication in error, please notify us by reply email and immediately and permanently delete this message and any attachments. Thank you. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au --- Note: This email (inc all attachments) is for the use of the intended recipient(s) only. Privileged or confidential information may be contained in this communication. If you have received this email in error, please notify the sender immediately and then delete all copies of this message from your computer network. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this email without the author's prior permission. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future, then please respond to the sender to this effect. We have taken precautions to minimise the risk of transmitting software viruses, but advise you to carry out your own virus checks on this email and its attachments. We do not accept liability for any loss or damage caused by software viruses and do not represent that this transmission is free from viruses or other defects. Firstmac Limited (ABN 59 094 145 963) (AFSL 290600) --- ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Ken, I am glad you raised the issue about debugging a program with a file which has a trigger attached. I have been on to UV (Vmark/Ardent/IBM/Rocket for ages about fixing this pushing for the ability to be able to step into the trigger code, but at a VERY MINIMUM being able to debug the program and perform the write on the file, and in effect step over the trigger subroutine and carry on debugging. The issue is the trigger subroutine cannot support input, so what UV have done is basically say you are using the debugger so you are inputting debug commands so you will abort. They need to turn this restriction off for debugging so that either of the above two scenarios is supported. In a Microsoft world I can debug anything through the connected world of web/databases etc.. Have had no feedback from UV -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ken Ford Sent: Friday, 19 July 2013 9:48 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers Dan, In addition to the other responses you have received, I suggest the following: 1. Have one master file trigger subroutine (globally catalogued) that calls subroutines (locally catalogued) tailored to individual files. This means you don't have to stop and restart Universe when a new trigger is required or a change to an existing one. If the master subroutine changes, you do have to restart Universe. 2. Use a control record that records the subroutine name and state of the trigger for each file having a trigger. 3. Use a program to change the state of a trigger, using the control records in 2 above. 4. Make sure all background processes that have a file with a trigger open are logged out when recompiling the subroutine for that file trigger. 5. Remember that you can't do anything to a file with an active trigger whilst in the RAID debugger (it will crash). Rather, if you are testing a file trigger subroutine, drop the trigger and use a trigger testing program that calls the subroutine after taking a copy of the record being changed, pausing whilst you change it in another session, and then resuming, calling the subroutine. If you would like samples of any of the software mentioned above, let me know, and I can send them to you. Regards, Ken Ford Universe Software Developer t 07 3013 8605 | f 07 3002 8400 e ken.f...@firstmac.com.au | w firstmac.com.au --- Note: This email (inc all attachments) is for the use of the intended recipient(s) only. Privileged or confidential information may be contained in this communication. If you have received this email in error, please notify the sender immediately and then delete all copies of this message from your computer network. If you are not the intended recipient, you must not keep, use, disclose, copy or distribute this email without the author's prior permission. If you are the intended recipient and you do not wish to receive similar electronic messages from us in future, then please respond to the sender to this effect. We have taken precautions to minimise the risk of transmitting software viruses, but advise you to carry out your own virus checks on this email and its attachments. We do not accept liability for any loss or damage caused by software viruses and do not represent that this transmission is free from viruses or other defects. Firstmac Limited (ABN 59 094 145 963) (AFSL 290600) --- ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Universe Triggers
Has anyone setup and used Unix/Universe triggers. Where do you start? Any manuals to get started? Regards, Dan Jorgenson Senior Systems Analyst SICK, Inc. 6900 West 110th Street Minneapolis, MN 55438 USA Phone: 952.941.6780 Fax: 952.941.9287 Direct: 952.829.4732 http://www.sickusa.com This message and any attachments are solely for the intended recipient and may contain confidential or privileged information. If you are not the intended recipient, any disclosure, copying, use or distribution is prohibited. If you have received this communication in error, please notify us by reply email and immediately and permanently delete this message and any attachments. Thank you. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
FYI the best doco on using triggers is in Chapter 5 of the Universe SQL Reference pdf. It's pretty comprehensive. Regards. -Original Message- AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
David, I'd love to try it. The process of adding an H to the VOC pointer didn't do the trick and that was pretty much my last gasp. David A. Green wrote: Jeff, I've written a socket driven email subroutine. I haven't tried it from a trigger but you don't have to shell out so it might work. David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 12:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Jeff, I've written a socket driven email subroutine. I haven't tried it from a trigger but you don't have to shell out so it might work. David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 12:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Universe Triggers
AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: 0001: SUBROUTINE NEW_TRANSFER(SQLTRIG,SCHEMA,TABLE,EVENT,TIME,NEWID,NEWREC,OLD ID,OLDREC,ASSOC,ASSOC.EVENT,COUNT,CHAIN,CASCADE,CASCADE) Do I need to open the file to the SQLTRIG variable in the program? Do I need to open the dictionary to SCHEMA? I'm assuming that trigger_name below should be the catalog name of the program CREATE TRIGGER trigger_name [BEFORE | AFTER] INSERT Can someone provide a concise series of steps I need to take to set this up? -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Your subroutine has to be globally cataloged - nothing else will work. The syntax of the create trigger that works for me is this: CREATE TRIGGER BEFORE_INSERT BEFORE INSERT ON (FILE NAME) FOR EACH ROW CALLING *(subroutine name) BEFORE_INSERT - name I gave my trigger - can be anything you want (FILE NAME) - File trigger is attached to *(subroutine name) - globally cataloged subroutine that you want called Your sample subroutine below has 15 passed-in parameters and my programs only have 14 - I think you repeated the last one twice. Do I need to open the file to the SQLTRIG variable in the program? - No Do I need to open the dictionary to SCHEMA? - No Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 11:47 AM To: U2-Users@listserver.u2ug.org Subject: [U2] Universe Triggers AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: 0001: SUBROUTINE NEW_TRANSFER(SQLTRIG,SCHEMA,TABLE,EVENT,TIME,NEWID,NEWREC,OLD ID,OLDREC,ASSOC,ASSOC.EVENT,COUNT,CHAIN,CASCADE,CASCADE) Do I need to open the file to the SQLTRIG variable in the program? Do I need to open the dictionary to SCHEMA? I'm assuming that trigger_name below should be the catalog name of the program CREATE TRIGGER trigger_name [BEFORE | AFTER] INSERT Can someone provide a concise series of steps I need to take to set this up? -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users This e-mail (including any and all accompanying attachments) may contain privileged and confidential information only meant to be accessed and used by the intended recipient or the person(s) authorized to access and deliver the intended recipient's e-mail. This e-mail may contain information that is privileged or otherwise confidential. It should not be copied or forwarded to any unauthorized persons. If you received this e-mail in error, please delete it without copying or forwarding, and notify the sender by reply e-mail or by calling the MobilexUSA Privacy Office toll free at 1-866-686-1717. Thank you for your cooperation. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
While the trigger needs to be globally cataloged, it can call a locally cataloged routine. Every trigger we have simply calls a 2nd locally cataloged program that does all the work. Without this, it makes testing very difficult between a system that has live/test accounts on the same box. John Israel Senior Programmer/Analyst Dayton Superior Corporation 1125 Byers Road Miamisburg, OHÂ 45342 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 1:12 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank You. Now I need to drop the trigger and re create it. What is the drop trigger syntax? Is all this actually documented somewhere? Barry Rutherford wrote: Your subroutine has to be globally cataloged - nothing else will work. The syntax of the create trigger that works for me is this: CREATE TRIGGER BEFORE_INSERT BEFORE INSERT ON (FILE NAME) FOR EACH ROW CALLING *(subroutine name) BEFORE_INSERT - name I gave my trigger - can be anything you want (FILE NAME) - File trigger is attached to *(subroutine name) - globally cataloged subroutine that you want called Your sample subroutine below has 15 passed-in parameters and my programs only have 14 - I think you repeated the last one twice. Do I need to open the file to the SQLTRIG variable in the program? - No Do I need to open the dictionary to SCHEMA? - No Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 11:47 AM To: U2-Users@listserver.u2ug.org Subject: [U2] Universe Triggers AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: 0001: SUBROUTINE NEW_TRANSFER(SQLTRIG,SCHEMA,TABLE,EVENT,TIME,NEWID,NEWREC,OLD ID,OLDREC,ASSOC,ASSOC.EVENT,COUNT,CHAIN,CASCADE,CASCADE) Do I need to open the file to the SQLTRIG variable in the program? Do I need to open the dictionary to SCHEMA? I'm assuming that trigger_name below should be the catalog name of the program CREATE TRIGGER trigger_name [BEFORE | AFTER] INSERT Can someone provide a concise series of steps I need to take to set this up? -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Thank You. Now I need to drop the trigger and re create it. What is the drop trigger syntax? Is all this actually documented somewhere? Barry Rutherford wrote: Your subroutine has to be globally cataloged - nothing else will work. The syntax of the create trigger that works for me is this: CREATE TRIGGER BEFORE_INSERT BEFORE INSERT ON (FILE NAME) FOR EACH ROW CALLING *(subroutine name) BEFORE_INSERT - name I gave my trigger - can be anything you want (FILE NAME) - File trigger is attached to *(subroutine name) - globally cataloged subroutine that you want called Your sample subroutine below has 15 passed-in parameters and my programs only have 14 - I think you repeated the last one twice. Do I need to open the file to the SQLTRIG variable in the program? - No Do I need to open the dictionary to SCHEMA? - No Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 11:47 AM To: U2-Users@listserver.u2ug.org Subject: [U2] Universe Triggers AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: 0001: SUBROUTINE NEW_TRANSFER(SQLTRIG,SCHEMA,TABLE,EVENT,TIME,NEWID,NEWREC,OLD ID,OLDREC,ASSOC,ASSOC.EVENT,COUNT,CHAIN,CASCADE,CASCADE) Do I need to open the file to the SQLTRIG variable in the program? Do I need to open the dictionary to SCHEMA? I'm assuming that trigger_name below should be the catalog name of the program CREATE TRIGGER trigger_name [BEFORE | AFTER] INSERT Can someone provide a concise series of steps I need to take to set this up? -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Before any WRITE, you must do a READU first Mark -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 11:47 AM To: U2 Users List Subject: Re: [U2] Universe Triggers So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
How real-time does it need to be? Could you write them to a queue file and have a small batch process pick them up and email them? Rob Robert F. Porter, MCSE, CCNA, ZCE Lead Sr. Programmer / Analyst Laboratory Information Services Ochsner Health System This transmission (including any attachments) may contain confidential information, privileged material (including material protected by the solicitor-client or other applicable privileges), or constitute non-public information. Any use of this information by anyone other than the intended recipient is prohibited. If you have received this transmission in error, please immediately reply to the sender and delete this information from your system. Use, dissemination, distribution, or reproduction of this transmission by unintended recipients is not authorized and may be unlawful. Jeff Schasny jscha...@gmail.com 7/30/2010 2:47 PM Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
We have a similar process - we have the Trigger write a record to an audit file. Then there's a separate Phantom running that's polling the audit file and doing what-ever. Mark -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 12:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Have the subroutine that's called from your trigger routine write a record into a file with the details for emailing. Then create a program that runs in cron that reads that file and sends your emails Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 3:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users This e-mail (including any and all accompanying attachments) may contain privileged and confidential information only meant to be accessed and used by the intended recipient or the person(s) authorized to access and deliver the intended recipient's e-mail. This e-mail may contain information that is privileged or otherwise confidential. It should not be copied or forwarded to any unauthorized persons. If you received this e-mail in error, please delete it without copying or forwarding, and notify the sender by reply e-mail or by calling the MobilexUSA Privacy Office toll free at 1-866-686-1717. Thank you for your cooperation. ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Yeah, thats what I've been thinking. Thanks all. Barry Rutherford wrote: Have the subroutine that's called from your trigger routine write a record into a file with the details for emailing. Then create a program that runs in cron that reads that file and sends your emails Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 3:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
I was wondering if that's what you're up to. I'm not at my computer, but try PHANTOMing it. Henry Unger Sent from my iPad On Jul 30, 2010, at 3:48 PM, Jeff Schasny jscha...@gmail.com wrote: Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
In summary, to get triggers working as you want in UV you need to: a) Have a stub subroutine which is globally catalogued b) This stub subroutine is the one which you attach to the trigger c) This stub subroutine calls the main subroutine which does all the work The benefit of this is the stub subroutine will rarely change and so you will not Have to go through the whole drop/create trigger scenario. UV seems to keep Track if the called subroutine changes and will cause a runtime error if it has. You are then free to change your main subroutine as often as you like. You should Probably only catalog it though when the system is quiescent. d) If you want to execute a command from TCL which is on the banned list. Unban it e) On attribute 4 of the VOC entry for the verb e.g. SH, add an H to the list of letters. f) This will allow you to perform the command with a transaction. A trigger has an implicit transaction. This however does not get around the issue of trying to debug a program which accesses A file with a trigger on. If you execute a write or delete on this file while debugging then You will get an errorbut this is a separate issue and a pet peeve of mine which is hopefully Getting sorted. We have been using this for years with no adverse effects, but you do need to be aware that you Will not be able to rollback what you are doing...In the case of emailing though this is probably Not something that you care about. Regards, -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Barry Rutherford Sent: Saturday, 31 July 2010 8:01 a.m. To: U2 Users List Subject: Re: [U2] Universe Triggers Have the subroutine that's called from your trigger routine write a record into a file with the details for emailing. Then create a program that runs in cron that reads that file and sends your emails Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 3:47 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank you all. After much putzing with the various parts involved it is beginning to look like my original plan of having an email message sent when someone adds a new record to this file is not to be. Apparently executing an SH verb in a trigger program is not going to happen (Verb SH illegal when a transaction is active.). Boom Splat. Henry Unger wrote: Lock the record before you write it. Henry Unger Sent from my iPad On Jul 30, 2010, at 2:47 PM, Jeff Schasny jscha...@gmail.com wrote: So far so good. Trigger installed. Trigger blows up. My trigger program calls the *MAIL.SEND routine (which works when called from other programs in this account) which is apparently blowing up when attempting to write an item to the current directory (UFD) at line 214. Anyone have a guess on what this means? Program *MAIL.SEND: Line 214, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Error performing trigger for /upg/CUBUPG/CO.TF -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users This e-mail (including any and all accompanying attachments) may contain privileged and confidential information only meant to be accessed and used by the intended recipient or the person(s) authorized to access and deliver the intended recipient's e-mail. This e-mail may contain information that is privileged or otherwise confidential. It should not be copied or forwarded to any unauthorized persons. If you received this e-mail in error, please delete it without copying or forwarding, and notify the sender by reply e-mail or by calling the MobilexUSA Privacy Office toll free at 1-866-686-1717. Thank you for your cooperation
Re: [U2] Universe Triggers
dont forget that if the file is distributed that it requires a trigger on each file part. From: u2-users-boun...@listserver.u2ug.org [u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny [jscha...@gmail.com] Sent: Friday, July 30, 2010 10:12 AM To: U2 Users List Subject: Re: [U2] Universe Triggers Thank You. Now I need to drop the trigger and re create it. What is the drop trigger syntax? Is all this actually documented somewhere? Barry Rutherford wrote: Your subroutine has to be globally cataloged - nothing else will work. The syntax of the create trigger that works for me is this: CREATE TRIGGER BEFORE_INSERT BEFORE INSERT ON (FILE NAME) FOR EACH ROW CALLING *(subroutine name) BEFORE_INSERT - name I gave my trigger - can be anything you want (FILE NAME) - File trigger is attached to *(subroutine name) - globally cataloged subroutine that you want called Your sample subroutine below has 15 passed-in parameters and my programs only have 14 - I think you repeated the last one twice. Do I need to open the file to the SQLTRIG variable in the program? - No Do I need to open the dictionary to SCHEMA? - No Barry Rutherford Programmer / Analyst MobilexUSA 930 Ridgebrook Rd, 3rd Floor Sparks, MD 21152 Local: 443-662-4101 x 6162 Toll Free: 800-786-8015 x 6162 Fax: 443-662-4225 http://www.mobilexusa.com -Original Message- From: u2-users-boun...@listserver.u2ug.orgmailto:u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Friday, July 30, 2010 11:47 AM To: U2-Users@listserver.u2ug.orgmailto:U2-Users@listserver.u2ug.org Subject: [U2] Universe Triggers AIX 5.3 UV 10.2Universe I want to put a trigger on a file to send an email message then a new item is written. I have read the (very non-helpful) section on triggers in the Universe System Description documentation but I'm still a bit confused. I have a program (subroutine) written with the arguments as established in the manual: 0001: SUBROUTINE NEW_TRANSFER(SQLTRIG,SCHEMA,TABLE,EVENT,TIME,NEWID,NEWREC,OLD ID,OLDREC,ASSOC,ASSOC.EVENT,COUNT,CHAIN,CASCADE,CASCADE) Do I need to open the file to the SQLTRIG variable in the program? Do I need to open the dictionary to SCHEMA? I'm assuming that trigger_name below should be the catalog name of the program CREATE TRIGGER trigger_name [BEFORE | AFTER] INSERT Can someone provide a concise series of steps I need to take to set this up? -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com ___ U2-Users mailing list U2-Users@listserver.u2ug.orgmailto:U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
David, Thanks for the ideas. I don't have a great deal of access to this server, it's being managed by IBM. I think you can guess the kind of red tape involved with doing anything. I'm pretty sure that most if not all the UV config's are set to the defaults. I didn't think about comparing the two. I'll get a copy of both and do that this week. Thanks for the ideas, I'll post my findings. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Hona, David Sent: Tuesday, November 10, 2009 12:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Did you do a sanity check (on your system/UV setup - not you:))- being a Windows platform check- no real-time anti-virus scanner is in operation on every file modification and that the UV config is NOT using the defaults (perhaps you should be setting it to the something similar to your AIX UV config - as applicable). Or any run-away processes do you get them same thing after you rebooted your server? -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Sunday, 1 November 2009 12:15 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, This appears to be a Windows bug. I ran my test program on a Universe 10.3 AIX box and it also took just 2 seconds. Does anyone know if this bug is scheduled for resolution? Thanks everyone, for all the help Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Saturday, October 31, 2009 1:05 AM To: U2 Users List Subject: Re: [U2] Universe Triggers Universe 10.3.1 RHEL 4.x and 10.1.13 Dec Alpha -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 5:46 p.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, My test file is 1009,1 type 18. My record id is just a sequential number 1 to 10,000 for this test file and the data is only 40-50 more bytes. So I don't think the file size is the problem. I've tested the logic by calling the trigger subroutine direct from the program and I get a 2 second process time, so I don't think the logic is the problem either. Are you on Universe or Unidata? Thanks for the response. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Friday, October 30, 2009 5:39 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Did you do a sanity check (on your system/UV setup - not you:))- being a Windows platform check- no real-time anti-virus scanner is in operation on every file modification and that the UV config is NOT using the defaults (perhaps you should be setting it to the something similar to your AIX UV config - as applicable). Or any run-away processes do you get them same thing after you rebooted your server? -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Sunday, 1 November 2009 12:15 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, This appears to be a Windows bug. I ran my test program on a Universe 10.3 AIX box and it also took just 2 seconds. Does anyone know if this bug is scheduled for resolution? Thanks everyone, for all the help Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Saturday, October 31, 2009 1:05 AM To: U2 Users List Subject: Re: [U2] Universe Triggers Universe 10.3.1 RHEL 4.x and 10.1.13 Dec Alpha -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 5:46 p.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, My test file is 1009,1 type 18. My record id is just a sequential number 1 to 10,000 for this test file and the data is only 40-50 more bytes. So I don't think the file size is the problem. I've tested the logic by calling the trigger subroutine direct from the program and I get a 2 second process time, so I don't think the logic is the problem either. Are you on Universe or Unidata? Thanks for the response. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Friday, October 30, 2009 5:39 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Kevin, I resized the VOC and it did not help at all. It was worth a shot. Thanks for the idea. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Kevin King Sent: Saturday, October 31, 2009 11:25 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Crazy thought... Could it have anything to do with the VOC being too small? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Universe 10.3.1 RHEL 4.x and 10.1.13 Dec Alpha -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 5:46 p.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, My test file is 1009,1 type 18. My record id is just a sequential number 1 to 10,000 for this test file and the data is only 40-50 more bytes. So I don't think the file size is the problem. I've tested the logic by calling the trigger subroutine direct from the program and I get a 2 second process time, so I don't think the logic is the problem either. Are you on Universe or Unidata? Thanks for the response. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Friday, October 30, 2009 5:39 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 6:45 a.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Thanks Doug, That's pretty much the conclusion I came to after I ran my test on a 10.3.3 Universe system. Unfortunately, this application doesn't use a common WRITE or DELETE routine, so I get to update about 90 programs with the audit logic. It'll be tedious but not too bad. Thanks for the feedback Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions www.tri-sysconsulting.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Sent: Friday, October 30, 2009 12:19 PM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Phil, This appears to be a Windows bug. I ran my test program on a Universe 10.3 AIX box and it also took just 2 seconds. Does anyone know if this bug is scheduled for resolution? Thanks everyone, for all the help Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Saturday, October 31, 2009 1:05 AM To: U2 Users List Subject: Re: [U2] Universe Triggers Universe 10.3.1 RHEL 4.x and 10.1.13 Dec Alpha -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 5:46 p.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Phil, My test file is 1009,1 type 18. My record id is just a sequential number 1 to 10,000 for this test file and the data is only 40-50 more bytes. So I don't think the file size is the problem. I've tested the logic by calling the trigger subroutine direct from the program and I get a 2 second process time, so I don't think the logic is the problem either. Are you on Universe or Unidata? Thanks for the response. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Friday, October 30, 2009 5:39 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 6:45 a.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Thanks Doug, That's pretty much the conclusion I came to after I ran my test on a 10.3.3 Universe system. Unfortunately, this application doesn't use a common WRITE or DELETE routine, so I get to update about 90 programs with the audit logic. It'll be tedious but not too bad. Thanks for the feedback Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions www.tri-sysconsulting.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Sent: Friday, October 30, 2009 12:19 PM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users
Re: [U2] Universe Triggers
Crazy thought... Could it have anything to do with the VOC being too small? ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] Universe Triggers
IÂm testing using triggers to maintain an Audit log of transactions. Everything works, the file, the subroutine, but the trigger process is extremely slow. My test program loops through 1 to 1 and writes a record to my test file with the trigger. Without the trigger in place the program runs in 2 seconds, with the trigger in place the program runs in 25 seconds. The timings are roughly the same if the trigger program is doing nothing more than a return. IÂve also tested calling the trigger subroutine from the program (without the trigger on the file) and the process runs in 2-3 seconds. This is Universe 10.2.10 on a virtual Windows 2003 server. The trigger file is type 18 and the trigger was created with this statement; CREATE TRIGGER AUDIT_LOG BEFORE UPDATE OR INSERT OR DELETE ON TEST.TRIGGER.FILE FOR EACH ROW CALLING '*apps*AUDIT.LOG.TRIGGER'; It appears that just calling a trigger significantly degrades the process. Does anyone have any ideas or suggestions. Thanks for any help you can provide. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
is the trigger program doing any file opens? That would probably be your slow down. I've not tried to setup a common with any of the triggers I've setup, since the number of writes has been minimal for us (maybe 5 per hour maximum). George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:47 AM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers I'm testing using triggers to maintain an Audit log of transactions. Everything works, the file, the subroutine, but the trigger process is extremely slow. My test program loops through 1 to 1 and writes a record to my test file with the trigger. Without the trigger in place the program runs in 2 seconds, with the trigger in place the program runs in 25 seconds. The timings are roughly the same if the trigger program is doing nothing more than a return. I've also tested calling the trigger subroutine from the program (without the trigger on the file) and the process runs in 2-3 seconds. This is Universe 10.2.10 on a virtual Windows 2003 server. The trigger file is type 18 and the trigger was created with this statement; CREATE TRIGGER AUDIT_LOG BEFORE UPDATE OR INSERT OR DELETE ON TEST.TRIGGER.FILE FOR EACH ROW CALLING '*apps*AUDIT.LOG.TRIGGER'; It appears that just calling a trigger significantly degrades the process. Does anyone have any ideas or suggestions. Thanks for any help you can provide. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
I have written code to run in both UniData and UniVerse for tracking audit information within triggers.. In order to maintain a decent performance level by avoiding repetitive and expensive file opens, we use either a set of known named common variables for specific files, or we have a generic caching mechanism using named common that keeps files open for as long as there is activity within the application.. Basically, in the caching mode, we have a rotating list of 20 file handles that can be active at any point in time. All file opens are done via a standard open subroutine, which checks the cache list first for the file handle, and if found bumps its priority to ensure it remains in cache before returning the handle, if not found in cache the subroutine will open the file and optionally add its handle to cache for future use. If the cache is full, the file at the bottom of the list is dropped and flagged to be closed.. When the accompanying close subroutine is called, if the item is no longer on the cache, the file is closed. HTH Ray -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: 30 October 2009 15:38 To: U2 Users List Subject: Re: [U2] Universe Triggers is the trigger program doing any file opens? That would probably be your slow down. I've not tried to setup a common with any of the triggers I've setup, since the number of writes has been minimal for us (maybe 5 per hour maximum). George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:47 AM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers I'm testing using triggers to maintain an Audit log of transactions. Everything works, the file, the subroutine, but the trigger process is extremely slow. My test program loops through 1 to 1 and writes a record to my test file with the trigger. Without the trigger in place the program runs in 2 seconds, with the trigger in place the program runs in 25 seconds. The timings are roughly the same if the trigger program is doing nothing more than a return. I've also tested calling the trigger subroutine from the program (without the trigger on the file) and the process runs in 2-3 seconds. This is Universe 10.2.10 on a virtual Windows 2003 server. The trigger file is type 18 and the trigger was created with this statement; CREATE TRIGGER AUDIT_LOG BEFORE UPDATE OR INSERT OR DELETE ON TEST.TRIGGER.FILE FOR EACH ROW CALLING '*apps*AUDIT.LOG.TRIGGER'; It appears that just calling a trigger significantly degrades the process. Does anyone have any ideas or suggestions. Thanks for any help you can provide. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of George Gallen Sent: Friday, October 30, 2009 10:38 AM To: U2 Users List Subject: Re: [U2] Universe Triggers is the trigger program doing any file opens? That would probably be your slow down. I've not tried to setup a common with any of the triggers I've setup, since the number of writes has been minimal for us (maybe 5 per hour maximum). George -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:47 AM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers I'm testing using triggers to maintain an Audit log of transactions. Everything works, the file, the subroutine, but the trigger process is extremely slow. My test program loops through 1 to 1 and writes a record to my test file with the trigger. Without the trigger in place the program runs in 2 seconds, with the trigger in place the program runs in 25 seconds. The timings are roughly the same if the trigger program is doing nothing more than a return. I've also tested calling the trigger subroutine from the program (without the trigger on the file) and the process runs in 2-3 seconds. This is Universe 10.2.10 on a virtual Windows 2003 server. The trigger file is type 18 and the trigger was created with this statement; CREATE TRIGGER AUDIT_LOG BEFORE UPDATE OR INSERT OR DELETE ON TEST.TRIGGER.FILE FOR EACH ROW CALLING '*apps*AUDIT.LOG.TRIGGER'; It appears that just calling a trigger significantly degrades the process. Does anyone have any ideas or suggestions. Thanks for any help you can provide. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Thanks Doug, That's pretty much the conclusion I came to after I ran my test on a 10.3.3 Universe system. Unfortunately, this application doesn't use a common WRITE or DELETE routine, so I get to update about 90 programs with the audit logic. It'll be tedious but not too bad. Thanks for the feedback Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions www.tri-sysconsulting.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Sent: Friday, October 30, 2009 12:19 PM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 6:45 a.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Thanks Doug, That's pretty much the conclusion I came to after I ran my test on a 10.3.3 Universe system. Unfortunately, this application doesn't use a common WRITE or DELETE routine, so I get to update about 90 programs with the audit logic. It'll be tedious but not too bad. Thanks for the feedback Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions www.tri-sysconsulting.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Sent: Friday, October 30, 2009 12:19 PM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Universe Triggers
Phil, My test file is 1009,1 type 18. My record id is just a sequential number 1 to 10,000 for this test file and the data is only 40-50 more bytes. So I don't think the file size is the problem. I've tested the logic by calling the trigger subroutine direct from the program and I get a 2 second process time, so I don't think the logic is the problem either. Are you on Universe or Unidata? Thanks for the response. Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of phil walker Sent: Friday, October 30, 2009 5:39 PM To: U2 Users List Subject: Re: [U2] Universe Triggers Check your file sizes out or your logic, because I experience nothing like this still subsecond responses, and we use triggers for auditing/data quality/ and replication through a log/webservice to sql, although the later part of that is handled asynchronously -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users- boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Saturday, 31 October 2009 6:45 a.m. To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Thanks Doug, That's pretty much the conclusion I came to after I ran my test on a 10.3.3 Universe system. Unfortunately, this application doesn't use a common WRITE or DELETE routine, so I get to update about 90 programs with the audit logic. It'll be tedious but not too bad. Thanks for the feedback Curt Stewart TRI-SYS Consulting Integrated Multi-Value Business Solutions www.tri-sysconsulting.com -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Doug Sent: Friday, October 30, 2009 12:19 PM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers Curt, We run Web applications a 25 second delay would be a death march for our staff with the users pointing things at us. This is a known Universe issue and to be fixed on a later release according the folks at U2 University. We wrote our own auditing the works with Universe and Unidata. This is pretty easy for us since high percentage of our writes and deletes are handled out of a single subroutine. The programs that use their own WRITE or DELETE had to have all another line or two added to complete the auditing processes. We have about a 50-300ms delay for the additional read and writes to the audit file. This strategy works very well for our call center application. Regards, Doug -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Curt Stewart Sent: Friday, October 30, 2009 10:37 AM To: 'U2 Users List' Subject: Re: [U2] Universe Triggers The speed issue is not in the subroutine itself. I tried a subroutine that did nothing, just a return and the process takes 25 seconds compared to 2 seconds with out a trigger. My main trigger subroutine is using a common for the file opens and that did cut the processing time down from 2 minutes to 25 seconds, but 25 seconds still seems pretty slow. Does Universe require any special settings for triggers? Or file types? Does the account have to be a specific flavor of Pick? Permissions? I don't know any other thoughts or suggestions? My searches have not turned up anything useful but someone's post did say that they found it to be slow on 10.2 but they did not elaborate or get a response that I found. Thanks for your help. Curt ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
RE: [U2] Universe triggers (still more)
Great feedback Susan. Perhaps you should make some suggests to IBM U2 team for a few tweaks to UV triggers? I guess this highlights too different schools of thought. The quick and dirty world of PICK/U2 and the by-the-book of relational databases. Each has pros and cons. Where the two meet, we have a somewhat unhappy union - at times...such as it. You can have half-baked index-based triggers (I-types indexed and when updated call BASIC subroutines - all well documented by others in the past) or true triggers like UV offers. Originally, UV triggers were only available with SQL-ized UV tables only. Lots of power, but so much over-head too and some annoying constraints (in some respects). UniVerse BASIC has the ICHECK() function, but this is for pre-write data+key validation against SQL integrity constraints only. Perhaps IBM can make a enhancement to allow validation against the trigger as well (perhaps it does now days, I can't check at the moment). Regards, David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: Wednesday, 3 December 2008 12:16 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe triggers (still more) Thanks to the folks who gave me info on Unidata triggers. I've had those implemented for years and they do work very simply and well. Universe has been a whole different ballgame. SNIPPED Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Complete software development life-cycle management for U2. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers (still more)
Hello Susan, It seems that the SetDiagnostics() is a Function, you must use VAR=SetDiagnostics('errtxt') (I have not tested it into a trigger set on a non-SQL file !) If I want to refuse the update into the trigger, I make : newrec = oldrec. This don't change the record and don't crash the program :-) You must set the trigger on event UPDATE and time BEFORE. My two pence. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : lundi 1 dicembre 2008 17:16 @ : u2-users@listserver.u2ug.org Objet : [U2] Universe triggers (still more) Hi everyone, I have the triggers working - yay! Thanks Manu! - but now I'm to the next step, and of course stumbling again! My program sets a flag when it wants to disallow the write that called the trigger. The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? Susan --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers (still more)
Hi, Thanks Susan for the resume of the method. From IBM U2U UK, I read announcement for new Rapid Triggers on Universe 10.3 (or 11) ; I receive no specs but I hope the new implementation consider theses stuffs. Regards. Manu. -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mardi 2 dicembre 2008 14:16 @ : u2-users@listserver.u2ug.org Objet : Re: [U2] Universe triggers (still more) Thanks to the folks who gave me info on Unidata triggers. I've had those implemented for years and they do work very simply and well. Universe has been a whole different ballgame. It turns out that Universe has cleverly adapted the triggers from SQL. I say cleverly because it probably really is on some esoteric mathematical level. And certain from a viewpoint of 'using what you have'. But for an old Pickie like me it has been very foreign. Also they have made use of the Begin Transaction business - so that the writes can be rolled back using that existing logic, I reckon. Again, good re-use. But this is also an area that I'm not familiar with. The three problems that I had were with: 1) The SB+ COMMON block - this was resolved by adding $OPTIONS PICK to the trigger program - and to all the programs down the line that it called. 2) WRITES requiring locks: The Begin Transaction relies on a system variable called ISOMODE which can be set to 0,1 or 2 to control how rigorous the locking requirements are - as part of the 'transaction/rollback' stuff. I was able to get my programs working by making sure I had a READU before each WRITE (which I didn't have in some cases - where I had decided in my own wisdom that it was safe not to do it - audit logs, new items, etc.) but I can't get into the SB+ code and the authors thereof were also of this same wisdom. But it turned out that by using Uniadmin to set ISOMODE to 0, this problem was alleviated. 3) Last, I wanted to be able to control whether the write should occur. I can do it - the manual was not clear on the syntax and I kept thinking there was something more, but apparently as long as I put: DUMMY = SetDiagnostics(This message is about why the item cannot be written), the trigger will fail the write and display that message. I don't display that message, I don't use the variable DUMMY, I don't set any particular flag. The display and the failure to write is not pretty. 4) One thing I cannot overcome is that the triggers in Universe will not permit any interaction. So my program can't explain to the user why it doesn't think they should write and then allow them to make a decision. It throws them back into their item, though, so I guess they can save the item somewhere else or something from there. Again, thanks to Manu in particular who has obviously fought the exact same battle - and to those of you who offered up the how to in Unidata. You are so lucky you are doing it in Unidata! Hope this helps someone else, some day. Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Complete software development life-cycle management for U2. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers (still more) {Unclassified}
Susan, On a Windows system, you can write to the Event Log so that you can at least leave some 'footprints' when this happens - it's a general problem when you use Transaction State because it rolls back EVERYTHING which makes it hard when the transaction has been created from UniObjects. What I did was to use the UVRunCommand() function to call the DOS function eventcreate, like this:- == DOS.STRING = 'eventcreate /T ':EVENT.TYPE DOS.STRING := ' /ID ':EVENT.ID DOS.STRING := ' /L ':EVENT.LOG DOS.STRING := ' /SO ':QUOTE(EVENT.SOURCE) DOS.STRING := ' /D ':QUOTE(EVENT.DESCRIPTION) DOS.STATUS = UVRunCommand('c:\WINDOWS\system32\cmd.exe /c ':DOS.STRING) == Notes: 1) UVRunCommand() will work in Transaction State, whereas PERFORM 'DOS \c ...' won't 2) You can get most of the details on eventcreate by typing eventcreate /? at a Windows Command-Line (DOS) prompt. 3) It seems like you can't use the same 'Event Source' string to log events in more than one of the System and Application Event logs 4) Works on Windows XP, Windows Server 2003 and Windows Server 2008. Probably works on lots of Windows platforms, I just haven't tried it. 5) I wrapped all the code in a called SUBROUTINE so I could put in sensible defaults etc. YMMV and non-Windows platforms will obviously require different solutions Regards Mike -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: Wednesday, 3 December 2008 2:16 a.m. To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe triggers (still more) Thanks to the folks who gave me info on Unidata triggers. I've had those implemented for years and they do work very simply and well. Universe has been a whole different ballgame. It turns out that Universe has cleverly adapted the triggers from SQL. I say cleverly because it probably really is on some esoteric mathematical level. And certain from a viewpoint of 'using what you have'. But for an old Pickie like me it has been very foreign. Also they have made use of the Begin Transaction business - so that the writes can be rolled back using that existing logic, I reckon. Again, good re-use. But this is also an area that I'm not familiar with. The three problems that I had were with: 1) The SB+ COMMON block - this was resolved by adding $OPTIONS PICK to the trigger program - and to all the programs down the line that it called. 2) WRITES requiring locks: The Begin Transaction relies on a system variable called ISOMODE which can be set to 0,1 or 2 to control how rigorous the locking requirements are - as part of the 'transaction/rollback' stuff. I was able to get my programs working by making sure I had a READU before each WRITE (which I didn't have in some cases - where I had decided in my own wisdom that it was safe not to do it - audit logs, new items, etc.) but I can't get into the SB+ code and the authors thereof were also of this same wisdom. But it turned out that by using Uniadmin to set ISOMODE to 0, this problem was alleviated. 3) Last, I wanted to be able to control whether the write should occur. I can do it - the manual was not clear on the syntax and I kept thinking there was something more, but apparently as long as I put: DUMMY = SetDiagnostics(This message is about why the item cannot be written), the trigger will fail the write and display that message. I don't display that message, I don't use the variable DUMMY, I don't set any particular flag. The display and the failure to write is not pretty. 4) One thing I cannot overcome is that the triggers in Universe will not permit any interaction. So my program can't explain to the user why it doesn't think they should write and then allow them to make a decision. It throws them back into their item, though, so I guess they can save the item somewhere else or something from there. Again, thanks to Manu in particular who has obviously fought the exact same battle - and to those of you who offered up the how to in Unidata. You are so lucky you are doing it in Unidata! Hope this helps someone else, some day. Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Complete software development life-cycle management for U2. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ The information contained in this Internet Email message is intended for the addressee only and may contain privileged information, but not necessarily the official views or opinions of the New Zealand Defence Force. If you are not the intended recipient you must not use, disclose, copy or distribute this message or the information in it. If you have received this message in error, please Email or telephone the sender immediately. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Universe triggers (still more)
Hi everyone, I have the triggers working - yay! Thanks Manu! - but now I'm to the next step, and of course stumbling again! My program sets a flag when it wants to disallow the write that called the trigger. The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? Susan --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe triggers (still more)
quote who='Susan Joslyn' date='Monday 01 December 2008' Hi everyone, I have the triggers working - yay! Thanks Manu! - but now I'm to the next step, and of course stumbling again! My program sets a flag when it wants to disallow the write that called the trigger. The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? I can't comment for Universe, but in Unidata you set EXECSTAT to one of three values 0 = don't write the record 1 = write record, but don't allow trigger to have altered the contents 2 = write record and allow trigger to possibly have altered contents -- Jeff Butera, Ph.D. Administrative Systems Hampshire College [EMAIL PROTECTED] 413-559-5556 Where I'm from, we believe all sorts of things that aren't true. We call it 'history'. The Wizard, Wicked --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe triggers (still more)
Susan: To expand further on Jeff's comment, the EXECSTAT variable is part of the CALL arguements list. For instance, in UniData an update trigger might look like: 001 SUBROUTINE U2.MASTER.TRIGGER.U ( ExecStat, DictFlag, atFILENAME, atID, atRECORD ) The following table describes each parameter of the syntax. ** Parameter Description ** -- ** trignameThe name of the globally cataloged subroutine. ** execstatThe execution status returned by the trigger subroutine: ** 0 - No updates are allowed. ** 1 - Updates are allowed. ** 2 - Updates are allowed, using the return recordval. ** dictflagDICT - Indicates that the trigger is operating on the ** dictionary file. ** - Indicates that the trigger is operating on the ** data file. ** Note: the quotation marks are required. ** filenameThe name of the file on which the trigger is operating. ** item ID The item ID of the record to be updated. ** recordval The input record value submitted to the UPDATE trigger. ** recordval is both an input and output parameter. The ** trigger can change this value (for example, by performing ** a conversion). Then, if the trigger sets execstat to 2, ** this value is passed back in recordval and updates the ** data record. Only strings and numbers are valid. ** ** If the value returned in recordval is invalid, the record ** is not updated, even if the trigger subroutine sets execstat ** to 2. In this case, the UniBasic STATUS function returns 3 ** when executed immediately after the command that calls the ** trigger. Only strings and numbers are valid. Therefore, you pass EXESTAT in and out of the CALLed program, set its value, and UniData knows it and responds to the setting accordingly. HTH, Bill __ Jeff Butera wrote on 12/1/2008 8:46 AM: quote who='Susan Joslyn' date='Monday 01 December 2008' Hi everyone, I have the triggers working - yay! Thanks Manu! - but now I'm to the next step, and of course stumbling again! My program sets a flag when it wants to disallow the write that called the trigger. The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? I can't comment for Universe, but in Unidata you set EXECSTAT to one of three values 0 = don't write the record 1 = write record, but don't allow trigger to have altered the contents 2 = write record and allow trigger to possibly have altered contents --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[Fwd: Re: [U2] Universe triggers (still more)]
Susan: To expand further on Jeff's comment, the EXECSTAT variable is part of the CALL arguements list. For instance, in UniData an update trigger might look like: 001 SUBROUTINE U2.MASTER.TRIGGER.U ( ExecStat, DictFlag, atFILENAME, atID, atRECORD ) The following table describes each parameter of the syntax. ** Parameter Description ** -- ** trignameThe name of the globally cataloged subroutine. ** execstatThe execution status returned by the trigger subroutine: ** 0 - No updates are allowed. ** 1 - Updates are allowed. ** 2 - Updates are allowed, using the return recordval. ** dictflagDICT - Indicates that the trigger is operating on the ** dictionary file. ** - Indicates that the trigger is operating on the ** data file. ** Note: the quotation marks are required. ** filenameThe name of the file on which the trigger is operating. ** item ID The item ID of the record to be updated. ** recordval The input record value submitted to the UPDATE trigger. ** recordval is both an input and output parameter. The ** trigger can change this value (for example, by performing ** a conversion). Then, if the trigger sets execstat to 2, ** this value is passed back in recordval and updates the ** data record. Only strings and numbers are valid. ** ** If the value returned in recordval is invalid, the record ** is not updated, even if the trigger subroutine sets execstat ** to 2. In this case, the UniBasic STATUS function returns 3 ** when executed immediately after the command that calls the ** trigger. Only strings and numbers are valid. Therefore, you pass EXESTAT in and out of the CALLed program, set its value, and UniData knows it and responds to the setting accordingly. HTH, Bill __ Jeff Butera wrote on 12/1/2008 8:46 AM: quote who='Susan Joslyn' date='Monday 01 December 2008' Hi everyone, I have the triggers working - yay! Thanks Manu! - but now I'm to the next step, and of course stumbling again! My program sets a flag when it wants to disallow the write that called the trigger. The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? I can't comment for Universe, but in Unidata you set EXECSTAT to one of three values 0 = don't write the record 1 = write record, but don't allow trigger to have altered the contents 2 = write record and allow trigger to possibly have altered contents --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers (still more)
Setdiagnostics is a function which works by adding an error condition message into the SQL error stack. A trigger program comes from the SQL side of UV and runs within a transaction boundary, when the setdiagnostics() function is used it will cause the trigger to go into rollback mode on return from the trigger program. See the UniVerse BCI Guide Chap 7 for syntax... subroutine TRG.CUST.DELETE(...) open AR.TRANS to fvar then readu rec from fvar,oldnum then junk = setdiagnostics(Open receivables exist for customer :oldnum:. Clear transactions before deleting this customer.) end else gosub DeleteCustomer: end end return -Original Message- The manual seems to suggest that I could use SetDiagnostic to fail this . but I'm not even getting my program to compile and can't find further information on the syntax of that command. Anyone know how to tell the trigger to refuse the write? ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this communication in error, please reply to this e-mail to notify the sender of its incorrect delivery and then delete it and your reply. It is your responsibility to check this email and any attachments for viruses and defects before opening or sending them on. Spotless collects information about you to provide and market our services. For information about use, disclosure and access, see our privacy policy at http://www.spotless.com.au Please consider our environment before printing this email. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+
Manu, You are a life-saver! Thank you! I didn't know about $OPTIONS PICK and that truly solves the problem! Which took me to the next problem. The trigger program appears to be much more rigorous about record locks. That's fine for code that I can get to, but it announces that I don't have the record locked for stuff that's happening inside SB+ that I can't get to. Is there a way loosen up these constrictions? Program UV.ED: pc = 73EC, Program SB.GEN.DRIV.I: Line 793, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Susan Date: Tue, 25 Nov 2008 19:43:20 +0100 From: Manu Fernandes [EMAIL PROTECTED] Subject: Hi, Do you use the $OPTIONS PICK into the basic code before INCLUDE DMSKELCODE COMMON ? My two pence. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mardi 25 novembre 2008 18:10 @ : u2-users@listserver.u2ug.org Objet : [U2] Universe triggers + SB+ Has anyone successfully enabled Universe trigger programs that call SB+ enabled programs? I'm getting COMMON mis-match and other errors. TIA, Susan Joslyn --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+
Hi, Yes, a trigger starts a automatic BEGIN TRANSACTION !! With SB+, this is a trouble I suffer too, I've already submited to IBM to request a ISOMODE enforcement of SB+ internals subroutines. The IBM's doc says **we recommend that you modify any transactions that do not follow this rule as soon as possible** ; but The shoemaker is always the worst shod. Yes, there is a uvconfig param to change it : ISOMODE ( UV docs, Basic ref - Isolation levels - ISOMODE ) If set to 0, you don't need to acquire the READU lock before WRITE/DELETE !! (be carefull with it)) Manu Using the ISOMODE Configurable Parameter The ISOMODE parameter controls the minimum locking requirements for each UniVerse system. By enforcing a minimum level of locking, the transaction management subsystem guarantees that no transaction suffers a lost update due to the actions of another transaction. Protection against lost updates is an important property of serializability. You can set ISOMODE to one of the following settings: ISOMODE Settings Setting Description 0 Provides backward compatibility. Transactions are not required to use well-formed writes. 1 Enforces well-formed writes in UniVerse BASIC transactions. This is the default. 2 Enforces well-formed writes in UniVerse BASIC programs, whether or not they are in a transaction. The default ISOMODE setting 1 ensures that BASIC transactions obey the locking rules for isolation level 1, as described in the following table. This means a record cannot be written or deleted in a transaction unless the record or file is locked for update. A write or delete of a locked record is known as a well-formed write. ISOMODE setting 0 provides compatibility with earlier UniVerse releases that did not enforce the requirement for well-formed writes in transactions. Since transactions should always use well-formed writes, we recommend that you modify any transactions that do not follow this rule as soon as possible, so that you can set ISOMODE to 1. Setting ISOMODE to 2 enforces all writes and deletes in UniVerse BASIC to be well-formed. This mode is available so that when converting an application to use transactions, you can determine whether any programs have not yet been converted. You should not use ISOMODE 2 permanently since many UniVerse system programs are not (and need not be) transactional. -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mercredi 26 novembre 2008 11:26 @ : u2-users@listserver.u2ug.org Objet : RE: [U2] Universe triggers + SB+ Manu, You are a life-saver! Thank you! I didn't know about $OPTIONS PICK and that truly solves the problem! Which took me to the next problem. The trigger program appears to be much more rigorous about record locks. That's fine for code that I can get to, but it announces that I don't have the record locked for stuff that's happening inside SB+ that I can't get to. Is there a way loosen up these constrictions? Program UV.ED: pc = 73EC, Program SB.GEN.DRIV.I: Line 793, FATAL: The locks necessary for database operations at the current isolation level (0) are not held by this process. Susan Date: Tue, 25 Nov 2008 19:43:20 +0100 From: Manu Fernandes [EMAIL PROTECTED] Subject: Hi, Do you use the $OPTIONS PICK into the basic code before INCLUDE DMSKELCODE COMMON ? My two pence. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mardi 25 novembre 2008 18:10 @ : u2-users@listserver.u2ug.org Objet : [U2] Universe triggers + SB+ Has anyone successfully enabled Universe trigger programs that call SB+ enabled programs? I'm getting COMMON mis-match and other errors. TIA, Susan Joslyn --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+$ OPTIONS PICK
Hi, About $OPTIONS PICK, Yes it is important - to fix, we put it into the DMSKELCODE COMMON record ; on the first line - before COMMON statement. SB+ is PICK flavor compiled . On certain site, we have SB+ running under INFORMATION flavor account (backward compatibility of old application mixed with SB+ UI. To be in ad equation with SB+, the new basic code must be (force) compiled under PICK FLAVOR. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mercredi 26 novembre 2008 11:26 @ : u2-users@listserver.u2ug.org Objet : RE: [U2] Universe triggers + SB+ Manu, You are a life-saver! Thank you! I didn't know about $OPTIONS PICK and that truly solves the problem!snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+$ OPTIONS PICK
Does the common contain dimensioned arrays? Quite likely, I would have thought. And that would be why you need OPTIONS PICK. Ideal-flavour UV uses PI-style arrays which have an element (0). Pick-style arrays don't. I think there may also be something to do with how many entries in the common table are taken up by an array. Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Manu Fernandes Sent: 26 November 2008 12:47 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe triggers + SB+$ OPTIONS PICK Hi, About $OPTIONS PICK, Yes it is important - to fix, we put it into the DMSKELCODE COMMON record ; on the first line - before COMMON statement. SB+ is PICK flavor compiled . On certain site, we have SB+ running under INFORMATION flavor account (backward compatibility of old application mixed with SB+ UI. To be in ad equation with SB+, the new basic code must be (force) compiled under PICK FLAVOR. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mercredi 26 novembre 2008 11:26 @ : u2-users@listserver.u2ug.org Objet : RE: [U2] Universe triggers + SB+ Manu, You are a life-saver! Thank you! I didn't know about $OPTIONS PICK and that truly solves the problem!snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+$ OPTIONS PICK
Hi, Yes, SB+ work with DIM arrays. The difference between PICK/PI DIM arrays is the ability to redimension an array at runtime (PICK arrays are DIMed at compile time). Dimensioned arrays are allocated either at compile time or at run time, depending on the flavor of the account (or compile $OPTIONS FLAVOR directive). Arrays allocated at run time are called standard arrays. Arrays allocated at compile time are called fixed arrays. Standard arrays are redimensionable; Fixed arrays are not redimensionable and do not have a zero element. All arrays are standard unless the program is compiled in a PICK, IN2, or REALITY flavor account, in which case they are fixed arrays. To use fixed arrays in PIOPEN, INFORMATION and IDEAL flavor accounts, use the STATIC.DIM option of the $OPTIONS statement. To use standard arrays in PICK, IN2, and REALITY flavor accounts, use $OPTIONS bSTATIC.DIM Both vectors **var(n)** and matrices **var(n,n)** have a special zero element that is used in MATPARSE statement, MATREAD statements, and MATWRITE statements. The zero element of a vector is specified by vector.name(0), and the zero element of a matrix is specified by matrix.name(0,0). Zero elements are used to store fields that do not fit in the dimensioned elements on MATREAD or MATPARSE statements. My two pence. Manu -Message d'origine- DeB : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Anthony Youngman EnvoyC)B : mercredi 26 novembre 2008 15:48 CB : u2-users@listserver.u2ug.org ObjetB : RE: [U2] Universe triggers + SB+$ OPTIONS PICK Does the common contain dimensioned arrays? Quite likely, I would have thought. And that would be why you need OPTIONS PICK. Ideal-flavour UV uses PI- style arrays which have an element (0). Pick-style arrays don't. I think there may also be something to do with how many entries in the common table are taken up by an array. Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] On Behalf Of Manu Fernandes Sent: 26 November 2008 12:47 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe triggers + SB+$ OPTIONS PICK Hi, About $OPTIONS PICK, Yes it is important - to fix, we put it into the DMSKELCODE COMMON record ; on the first line - before COMMON statement. SB+ is PICK flavor compiled . On certain site, we have SB+ running under INFORMATION flavor account (backward compatibility of old application mixed with SB+ UI. To be in ad equation with SB+, the new basic code must be (force) compiled under PICK FLAVOR. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mercredi 26 novembre 2008 11:26 @ : u2-users@listserver.u2ug.org Objet : RE: [U2] Universe triggers + SB+ Manu, You are a life-saver! Thank you! I didn't know about $OPTIONS PICK and that truly solves the problem!snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] Universe triggers + SB+
Has anyone successfully enabled Universe trigger programs that call SB+ enabled programs? I'm getting COMMON mis-match and other errors. TIA, Susan Joslyn --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe triggers + SB+
Hi, Do you use the $OPTIONS PICK into the basic code before INCLUDE DMSKELCODE COMMON ? My two pence. Manu -Message d'origine- De : [EMAIL PROTECTED] [mailto:owner-u2- [EMAIL PROTECTED] De la part de Susan Joslyn Envoyi : mardi 25 novembre 2008 18:10 @ : u2-users@listserver.u2ug.org Objet : [U2] Universe triggers + SB+ Has anyone successfully enabled Universe trigger programs that call SB+ enabled programs? I'm getting COMMON mis-match and other errors. TIA, Susan Joslyn --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers [not-secure]
snip Ray, let's not talk about huge and (formerly) little known security flaws in UV now... :) /snip Why not? It's the little known security flaws that'll get you... It doesn't matter if it's Windows, Oracle, Aix or UniVerse... the more people know, the more they can guard against. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
In message [EMAIL PROTECTED], Ken Wallis [EMAIL PROTECTED] writes UniData has a VOC_READONLY environment variable which can be set that allows it to run successfully in a directory where the VOC has no write permission. Perhaps UniVerse has the same or similar. Bear in mind the OP of this particular thread said If I can update the VOC, then your comment is irrelevant, but from what Susan says, I presume she has some magic way of dealing with that. I can't conceive of a way to make this safe without setting suitable OS level permissions. I can see how it could be made safe enough that you couldn't get round it with normal verbs and editors, but I can't see how it could be fixed so that a programmer couldn't get around it, or even a savvy user setting up VOC pointers from another account. Exactly. How on earth is Remote VOC going to prevent me from messing about with the system if I have update capability and can recreate an unprotected, vanilla, VOC entry for ED or COPY or whatever verb happens to take my fancy ... ? Cheers, Wol -- Anthony W. Youngman [EMAIL PROTECTED] 'Yings, yow graley yin! Suz ae rikt dheu,' said the blue man, taking the thimble. 'What *is* he?' said Magrat. 'They're gnomes,' said Nanny. The man lowered the thimble. 'Pictsies!' Carpe Jugulum, Terry Pratchett 1998 Visit the MaVerick web-site - http://www.maverick-dbms.org Open Source Pick --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
You can even write to the VOC if you don't have write permission to the file. Hint: usd runs with superuser privileges. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Ray, let's not talk about huge and (formerly) little known security flaws in UV now... :) -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ray Wurlod Sent: Tuesday, 21 October 2008 12:44 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers You can even write to the VOC if you don't have write permission to the file. Hint: usd runs with superuser privileges. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
I bet you I can write to the VOC unless I do not have write permissions to the file. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: Friday, 17 October 2008 1:45 a.m. To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers That's really REALLY (I swear!) not true. Even if you can do stuff to the VOC, if you put the verbs into the remote VOC and lock that up, you can ABSOLUTELY prevent unauthorized TCL command usage. You can't copy a VOC command and make it work to bypass the wrapped one in the remote voc. Honestly, you really can't. I can explain in more detail how I did it for PRC if you like - but there are plenty of ways to do it - just read up on the remote VOC. Susan Date: Wed, 15 Oct 2008 13:40:20 +0100 From: Anthony Youngman [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers But IF you can update VOC, you CAN bypass remote voc, which is what David said! As part of your security you need to make sure that users CAN'T update VOC (which is rather harder than it seems at first glance). Cheers, Wol - -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: 15 October 2008 12:36 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! - -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. - --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
In my IBM Administering Universe from Unix manual, Chapter 5 System Security, in section 5-8, it deals with VOC file security issues and Security Subroutines using Remote pointers and a call to a 'security' subroutine. It isn't much doco to go on but it is what we based our VOC security on and it has been working for us for several years very successfully. Cheers Peter On 20/10/2008, at 11:07 AM, Hona, David S wrote: Yes, unless Susan is using some undocumented feature to block the update/deletion of VOC entries with remote pointers that also have security subroutines associated...then what she is saying isn't correct. I've never heard of such a thing in UV, but that doesn't mean it isn't hiding somewhere. Since she said look it up, it implies this so- called lock down of the VOC is documented...which I cannot find anywhere. She is offers no proof or IBM documentation to support her claim, then we can only suspect what she states is incorrect. UniVerse has poor security capabilities and I can't see this changing any time soon! :) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
That's really REALLY (I swear!) not true. Even if you can do stuff to the VOC, if you put the verbs into the remote VOC and lock that up, you can ABSOLUTELY prevent unauthorized TCL command usage. You can't copy a VOC command and make it work to bypass the wrapped one in the remote voc. Honestly, you really can't. I can explain in more detail how I did it for PRC if you like - but there are plenty of ways to do it - just read up on the remote VOC. Susan Date: Wed, 15 Oct 2008 13:40:20 +0100 From: Anthony Youngman [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers But IF you can update VOC, you CAN bypass remote voc, which is what David said! As part of your security you need to make sure that users CAN'T update VOC (which is rather harder than it seems at first glance). Cheers, Wol - -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: 15 October 2008 12:36 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! - -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. - --- --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
But IF you can update VOC, you CAN bypass remote voc, which is what David said! As part of your security you need to make sure that users CAN'T update VOC (which is rather harder than it seems at first glance). Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: 15 October 2008 12:36 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Is this because you can change the permissions on the VOC to read-only? Does this have an affect on anything else? Bill Susan Joslyn wrote on 10/15/2008 4:35 AM: David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Which can get interesting if you have some of that old pre-EXECUTE legacy code that generates a Proc, writes it to the VOC, and CHAINs to it. Or that executes CREATE.FILE. Or that... Of course, you can put a trigger on the VOC to log changes. Regards, Clif On Oct 15, 2008, at 5:40 AM, Anthony Youngman wrote: But IF you can update VOC, you CAN bypass remote voc, which is what David said! As part of your security you need to make sure that users CAN'T update VOC (which is rather harder than it seems at first glance). Cheers, Wol -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] ] On Behalf Of Susan Joslyn Sent: 15 October 2008 12:36 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers David, With the use of remote voc you really can prevent by-pass of wrapped TCL commands. Completely, unequivocably. Regards, Susan Joslyn SJ+ Systems Associates, Inc. PRC(r) Real software configuration management for U2! -- Date: Wed, 15 Oct 2008 08:26:00 +1100 From: Hona, David S [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers You can by-pass them if you can update the VOC. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Both Universe and Unidata have remote voc options which can enable you to wrap the tools such that TCL commands cannot be used to bypass them. To get a complete configuration management solution you may need to wrap tools and install triggers - since triggers cannot be use on your DIR type files and TCL commands can be used to move items. [AD] Naturally I will mention that if you'd like a complete solution, ready to go, feel free to contact me to talk about PRC - complete software configuration management / software development life-cycle management for U2. http://sjplus.com Regards, Susan -- Date: Mon, 13 Oct 2008 08:00:54 -0400 From: Israel, John R. [EMAIL PROTECTED] Subject: RE: [U2] Universe Triggers There is still a hole to the wrapper approach. Assuming you are trying to catch folks that use the ED (or AE) command, we have to assume that these folks have access to TCL. If you can get to TCL, and you are wanting to hide your tracks, you could still copy your record to a dir file, then use an OS native editor to make your sneaky change (like vi in Unix or Textpad in Windows), then copy the temp record back overwriting the original. You never used the ED command, but you were still able to change the data w/o the wrapper detecting it. Granted, the offender has to know they are being tracked and care enough to take an approach like this, but it would not be hard to do. A trigger would still detect this change, and so, IMHO, would be a more reliable approach. If used sparingly and wisely, triggers (and native indexes) are great! John Israel Sr. Programmer/Analyst Dayton Superior Corporation 721 Richard St. Dayton, OH 45342 937-866-0711 x44380 --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
You can by-pass them if you can update the VOC. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Susan Joslyn Sent: Tuesday, 14 October 2008 10:12 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Both Universe and Unidata have remote voc options which can enable you to wrap the tools such that TCL commands cannot be used to bypass them. To get a complete configuration management solution you may need to wrap tools and install triggers - since triggers cannot be use on your DIR type files and TCL commands can be used to move items. [AD] Naturally I will mention that if you'd like a complete solution, ready to go, feel free to contact me to talk about PRC - complete software configuration management / software development life-cycle management for U2. http://sjplus.com Regards, Susan --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
I think the purpose of the trigger is to capture all non-application changes. You can't by-pass the trigger easily, unless of course you disable it entirely. It has the advantage of being largely transparent (if written correctly, of course)...regards of where the file is accessed from. It has the advantage of having the ability to abort changes that should be done via (say) the line editor, should you code it to check and do so. With a wrap-style command, it has to be installed in all the UV accounts that you wish tracked, requiring the VOC to be updated and to remain unchanged. Of course, the wrapper is also much easier thing to install and configure, so worth considering anyway. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Webster Sent: Monday, 13 October 2008 3:51 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Hi Kate, As another suggestion (if only tracking changes by 'ED') why not wrap the 'ED' function and catalog it under a new name? Eg: catalog the below code as 'ED' and re-catalog 'ED' as some ambiguous name. [snipped] Regards, Dave. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
There is still a hole to the wrapper approach. Assuming you are trying to catch folks that use the ED (or AE) command, we have to assume that these folks have access to TCL. If you can get to TCL, and you are wanting to hide your tracks, you could still copy your record to a dir file, then use an OS native editor to make your sneaky change (like vi in Unix or Textpad in Windows), then copy the temp record back overwriting the original. You never used the ED command, but you were still able to change the data w/o the wrapper detecting it. Granted, the offender has to know they are being tracked and care enough to take an approach like this, but it would not be hard to do. A trigger would still detect this change, and so, IMHO, would be a more reliable approach. If used sparingly and wisely, triggers (and native indexes) are great! John Israel Sr. Programmer/Analyst Dayton Superior Corporation 721 Richard St. Dayton, OH 45342 937-866-0711 x44380 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Webster Sent: Monday, October 13, 2008 12:51 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Hi Kate, As another suggestion (if only tracking changes by 'ED') why not wrap the 'ED' function and catalog it under a new name? Eg: catalog the below code as 'ED' and re-catalog 'ED' as some ambiguous name. PROGRAM WRAP.ED * CMD = SENTENCE() * PROGRAM.NAME = FIELD(CMD, ' ', 1) FILENAME = FIELD(CMD, ' ', 2) REC.ID = FIELD(CMD, ' ', 3) * OPEN '',FILENAME TO F.FILE THEN ;* read in record before editing so we can compare ;* results at the end of editing READ ORIG.REC FROM F.FILE, REC.ID ELSE ORIG.REC = ;* execute our original 'ED' re-cataloged ;* as a new name ORIG.ED EXECUTE ORIG.ED :FILENAME: :REC.ID * ;* read in record after editing to compare results READ REC FROM F.FILE, REC.ID ELSE REC = ;* if the records are different then ;* write out our log. IF ORIG.REC # REC THEN CRT Records changed! Write out our log END END * RETURN Regards, Dave. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kate Stanton Sent: Monday, October 13, 2008 8:41 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers We are hoping to implement triggers (to catch the rotters who change data using ED!!!), so are following this with interest. Our interpretation of that advice was to have a single subroutine called by all triggers. This single subroutine would all the trigger data, including reference to the file, to another subroutine which then decided which trigger action subroutine(s) should be called, probably based on file name. The trick will be determining the data to be passed from that single triggers subroutine, and if there are things which can only be done within the trigger subroutine (so an action code would need to be returned). Suggestions/comment welcome! Cheers, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 499 486 Email: [EMAIL PROTECTED] - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, October 11, 2008 2:50 AM Subject: RE: [U2] Universe Triggers Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should... CREATE.TRIGGER APVENDOR MASTER.TRIGGER.U UPDATE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.U UPDATE CREATE.TRIGGER APVENDOR MASTER.TRIGGER.D DELETE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.D DELETE Thanks, Bill snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.173 / Virus Database
RE: [U2] Universe Triggers
Yep - pretty much. 1 - Globally cattledog the subprograms - otherwise it could crash your update 2- If the subs change - recattledog them and they will reflect the change immediately. I'll see if I can put an eg up on the wiki tomorrow. Stuart Boydell -Original Message- Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this communication in error, please reply to this e-mail to notify the sender of its incorrect delivery and then delete it and your reply. It is your responsibility to check this email and any attachments for viruses and defects before opening or sending them on. Spotless collects information about you to provide and market our services. For information about use, disclosure and access, see our privacy policy at http://www.spotless.com.au Please consider our environment before printing this email. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Don't forget Remote Verbs (aka Security Subroutines). The combination of triggers and remote verbs is pretty robust, but not rock solid if someone has access to the REAL O/S outside a database shell (for DIR files anyway). Regards JayJay -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Israel, John R. Sent: 13 October 2008 13:01 To: 'u2-users@listserver.u2ug.org' Subject: RE: [U2] Universe Triggers There is still a hole to the wrapper approach. Assuming you are trying to catch folks that use the ED (or AE) command, we have to assume that these folks have access to TCL. If you can get to TCL, and you are wanting to hide your tracks, you could still copy your record to a dir file, then use an OS native editor to make your sneaky change (like vi in Unix or Textpad in Windows), then copy the temp record back overwriting the original. You never used the ED command, but you were still able to change the data w/o the wrapper detecting it. Granted, the offender has to know they are being tracked and care enough to take an approach like this, but it would not be hard to do. A trigger would still detect this change, and so, IMHO, would be a more reliable approach. If used sparingly and wisely, triggers (and native indexes) are great! John Israel Sr. Programmer/Analyst Dayton Superior Corporation 721 Richard St. Dayton, OH 45342 937-866-0711 x44380 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David Webster Sent: Monday, October 13, 2008 12:51 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Hi Kate, As another suggestion (if only tracking changes by 'ED') why not wrap the 'ED' function and catalog it under a new name? Eg: catalog the below code as 'ED' and re-catalog 'ED' as some ambiguous name. PROGRAM WRAP.ED * CMD = SENTENCE() * PROGRAM.NAME = FIELD(CMD, ' ', 1) FILENAME = FIELD(CMD, ' ', 2) REC.ID = FIELD(CMD, ' ', 3) * OPEN '',FILENAME TO F.FILE THEN ;* read in record before editing so we can compare ;* results at the end of editing READ ORIG.REC FROM F.FILE, REC.ID ELSE ORIG.REC = ;* execute our original 'ED' re-cataloged ;* as a new name ORIG.ED EXECUTE ORIG.ED :FILENAME: :REC.ID * ;* read in record after editing to compare results READ REC FROM F.FILE, REC.ID ELSE REC = ;* if the records are different then ;* write out our log. IF ORIG.REC # REC THEN CRT Records changed! Write out our log END END * RETURN Regards, Dave. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kate Stanton Sent: Monday, October 13, 2008 8:41 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers We are hoping to implement triggers (to catch the rotters who change data using ED!!!), so are following this with interest. Our interpretation of that advice was to have a single subroutine called by all triggers. This single subroutine would all the trigger data, including reference to the file, to another subroutine which then decided which trigger action subroutine(s) should be called, probably based on file name. The trick will be determining the data to be passed from that single triggers subroutine, and if there are things which can only be done within the trigger subroutine (so an action code would need to be returned). Suggestions/comment welcome! Cheers, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 499 486 Email: [EMAIL PROTECTED] - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, October 11, 2008 2:50 AM Subject: RE: [U2] Universe Triggers Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should
Re: [U2] Universe Triggers
We are hoping to implement triggers (to catch the rotters who change data using ED!!!), so are following this with interest. Our interpretation of that advice was to have a single subroutine called by all triggers. This single subroutine would all the trigger data, including reference to the file, to another subroutine which then decided which trigger action subroutine(s) should be called, probably based on file name. The trick will be determining the data to be passed from that single triggers subroutine, and if there are things which can only be done within the trigger subroutine (so an action code would need to be returned). Suggestions/comment welcome! Cheers, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 499 486 Email: [EMAIL PROTECTED] - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, October 11, 2008 2:50 AM Subject: RE: [U2] Universe Triggers Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should... CREATE.TRIGGER APVENDOR MASTER.TRIGGER.U UPDATE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.U UPDATE CREATE.TRIGGER APVENDOR MASTER.TRIGGER.D DELETE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.D DELETE Thanks, Bill snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Hi Kate, As another suggestion (if only tracking changes by 'ED') why not wrap the 'ED' function and catalog it under a new name? Eg: catalog the below code as 'ED' and re-catalog 'ED' as some ambiguous name. PROGRAM WRAP.ED * CMD = SENTENCE() * PROGRAM.NAME = FIELD(CMD, ' ', 1) FILENAME = FIELD(CMD, ' ', 2) REC.ID = FIELD(CMD, ' ', 3) * OPEN '',FILENAME TO F.FILE THEN ;* read in record before editing so we can compare ;* results at the end of editing READ ORIG.REC FROM F.FILE, REC.ID ELSE ORIG.REC = ;* execute our original 'ED' re-cataloged ;* as a new name ORIG.ED EXECUTE ORIG.ED :FILENAME: :REC.ID * ;* read in record after editing to compare results READ REC FROM F.FILE, REC.ID ELSE REC = ;* if the records are different then ;* write out our log. IF ORIG.REC # REC THEN CRT Records changed! Write out our log END END * RETURN Regards, Dave. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Kate Stanton Sent: Monday, October 13, 2008 8:41 AM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Universe Triggers We are hoping to implement triggers (to catch the rotters who change data using ED!!!), so are following this with interest. Our interpretation of that advice was to have a single subroutine called by all triggers. This single subroutine would all the trigger data, including reference to the file, to another subroutine which then decided which trigger action subroutine(s) should be called, probably based on file name. The trick will be determining the data to be passed from that single triggers subroutine, and if there are things which can only be done within the trigger subroutine (so an action code would need to be returned). Suggestions/comment welcome! Cheers, Kate Kate Stanton Walstan Systems Ltd 4 Kelmarna Ave, Herne Bay, Auckland 1011, New Zealand Ph: +64 9 360 5310 Fax: +64 9 376 0750 Mobile: +64 21 499 486 Email: [EMAIL PROTECTED] - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Saturday, October 11, 2008 2:50 AM Subject: RE: [U2] Universe Triggers Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should... CREATE.TRIGGER APVENDOR MASTER.TRIGGER.U UPDATE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.U UPDATE CREATE.TRIGGER APVENDOR MASTER.TRIGGER.D DELETE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.D DELETE Thanks, Bill snip --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ No virus found in this incoming message. Checked by AVG - http://www.avg.com Version: 8.0.173 / Virus Database: 270.8.0/1721 - Release Date: 10/12/2008 12:00 PM The information contained in this email and any attached files are strictly private
RE: [U2] Universe Triggers
Always ensure that any file opens in triggers resolve to specific paths or accounts - that quick and dirty q-pointer from the 'wrong' account will get you if you don't. You can't debug through triggers (because they run in a transaction). We also use a 'sub' trigger system but call @subroutines instead of reading a table. No performance issues. -Original Message- We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this communication in error, please reply to this e-mail to notify the sender of its incorrect delivery and then delete it and your reply. It is your responsibility to check this email and any attachments for viruses and defects before opening or sending them on. Spotless collects information about you to provide and market our services. For information about use, disclosure and access, see our privacy policy at http://www.spotless.com.au Please consider our environment before printing this email. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should... CREATE.TRIGGER APVENDOR MASTER.TRIGGER.U UPDATE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.U UPDATE CREATE.TRIGGER APVENDOR MASTER.TRIGGER.D DELETE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.D DELETE Thanks, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Boydell, Stuart Sent: Thursday, October 09, 2008 11:56 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Always ensure that any file opens in triggers resolve to specific paths or accounts - that quick and dirty q-pointer from the 'wrong' account will get you if you don't. You can't debug through triggers (because they run in a transaction). We also use a 'sub' trigger system but call @subroutines instead of reading a table. No performance issues. -Original Message- We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this communication in error, please reply to this e-mail to notify the sender of its incorrect delivery and then delete it and your reply. It is your responsibility to check this email and any attachments for viruses and defects before opening or sending them on. Spotless collects information about you to provide and market our services. For information about use, disclosure and access, see our privacy policy at http://www.spotless.com.au Please consider our environment before printing this email. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Hi Bill That's pretty much what I do, except each file has a list of small subtriggers. That way, if we need to add another action (e.g. another secondary update) or to temporarily suspend an action, they can be added into or knocked out of the list. The overhead is on calling the master trigger in the first place, rather than in the number of routines called from then. OF course, any complex updates that are not time-critical are logged to a workfile and then handled by phantoms, to keep the load away from the most sensitive major file updates. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: 10 October 2008 14:50 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Stuart: Are you saying one should create a single trigger program like... MASTER.TRIGGER.U 001 SUBROUTINE MASTER.TRIGGER.U (ExecStat, DictFlag, atFILENAME, atID, atRECORD) 002 COMMON \trFILES\ TABLE.FV 003 IF FILEINFO(TABLE.FV, 0) = 0 THEN ; ** UD version 004OPEN '', 'TABLE' TO TABLE.FV ELSE 005 ExecStat = 0 ; ** don't update file 006 RETURN 007END 008 END 009 READ TriggerRec FROM TABLE.FV, 'TRIGGER.CONF' ELSE RETURN 010 TriggerFiles = TriggerRec1 011 TriggerUpdates = TriggerRec2 012 TriggerDeletes = TriggerRec3 013 LOCATE(atFILENAME, TriggerFiles, 1; Pos) THEN 014TriggerToRun = TriggerUpdates1,Pos 015CALL @TriggerToRun 016 END ...that essentially reads a table... TRIGGER.CONF 001 APVENDOR]ARCUSTOMER 002 U2.TRIGGER.SUB.U]U2.TRIGGER.SUB.U 003 U2.TRIGGER.SUB.D]U2.TRIGGER.SUB.D ...for the file and globally cataloged subroutine to run. Then one should... CREATE.TRIGGER APVENDOR MASTER.TRIGGER.U UPDATE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.U UPDATE CREATE.TRIGGER APVENDOR MASTER.TRIGGER.D DELETE CREATE.TRIGGER ARCUSTOMER MASTER.TRIGGER.D DELETE Thanks, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Boydell, Stuart Sent: Thursday, October 09, 2008 11:56 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Always ensure that any file opens in triggers resolve to specific paths or accounts - that quick and dirty q-pointer from the 'wrong' account will get you if you don't. You can't debug through triggers (because they run in a transaction). We also use a 'sub' trigger system but call @subroutines instead of reading a table. No performance issues. -Original Message- We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? ** This email message and any files transmitted with it are confidential and intended solely for the use of addressed recipient(s). If you have received this communication in error, please reply to this e-mail to notify the sender of its incorrect delivery and then delete it and your reply. It is your responsibility to check this email and any attachments for viruses and defects before opening or sending them on. Spotless collects information about you to provide and market our services. For information about use, disclosure and access, see our privacy policy at http://www.spotless.com.au Please consider our environment before printing this email. ** --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Brian: I have a couple of questions: 1) Does the subroutine called by the master trigger need to be globally cataloged? 2) Does a CALL @... always reload the routine, as opposed to using a cached copy, especially if the subroutine is globally cataloged? Thanks, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brian Leach Sent: Friday, October 10, 2008 7:31 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Hi Bill That's pretty much what I do, except each file has a list of small subtriggers. That way, if we need to add another action (e.g. another secondary update) or to temporarily suspend an action, they can be added into or knocked out of the list. The overhead is on calling the master trigger in the first place, rather than in the number of routines called from then. OF course, any complex updates that are not time-critical are logged to a workfile and then handled by phantoms, to keep the load away from the most sensitive major file updates. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: 10 October 2008 14:50 To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Stuart: [snipped] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Hi Brian, Assuming read of corresponding table is done once when first trigger is fired, no ? Cheers Christian -Message d'origine- De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] De la part de Brian Leach Envoyi : mercredi 8 octobre 2008 10:54 @ : u2-users@listserver.u2ug.org Objet : RE: [U2] Universe Triggers One gotcha is that once a trigger is on there, you can't easily change/extend it unless your system has a downtime period in which everyone is logged out. For this reason on 24x7 sites I use a master trigger that can call subtriggers, held as a list in a parameter file. This means that a new subtrigger can be inserted, old subtriggers removed etc without having to log everyone out. Yes, it means an extra read and yes it is an imperfect solution in an imperfect world.. And of course remember you are running under transactional constraints when using triggers. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: 08 October 2008 04:22 To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Poorly written, implemented, designed and tested triggers - will have a high impact on your UV system. Hopefully, you have down a full-scale (real world-like) production-like test in your UAT environment prior to implementing them. If you have done this and tested real world scenarios like file, group record-lock contention - the stuff you could possibly get in your environment - you'd probably ok. :) As we don't know your application, your existing system load, existing file types or configuration or what your trigger does...we can only speculate wildly on the impact. :) As others have commented, the overhead can be substantial. So it is a trade-off of functionality your desire versus the actual performance hit. A delicate balance here, that only you can decide through thorough and rigorous testing. The more reading and writing your triggers do - the greater the impact (and the more locks they will hold). Clearly, if your triggers are updating, you do need be very concerned about performance. If you have no updating, there is less to worry about. However, just reading records can also set database record locks, as well. Regards, David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: Wednesday, 8 October 2008 2:22 PM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Why not just test it? Create a file with some number of records. Write a simple program to select the file and change one character in the record. Write it back to the file. Time it. Add an AFTER UPDATE trigger calling a subroutine that does *nothing* but a RETURN. Run the program again. Time it. You have your overhead answer. Don't ask opinions of pontificators when the machine will tell you the truth. Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On Oct 7, 2008, at 8:22 PM, Mike Roosa wrote: We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
We use UniData on HP Unix, so I am not sure how much of this will transfer over, but here are things we found: 1) Triggers must be globally cataloged. This means that if you have a development account on that same box, you have to play games if you want to make changes. We have both a development account and a staging account in addition to our LIVE account, so this was a real problem for us. To get around this problem, I moved all the code from the trigger into a 2nd, DIRECTly cataloged program, and had the original trigger do nothing but call the 2nd subroutine. This works VERY well. I think this is what Brian was saying. 2) You should also CLOSE all opened files that are in a trigger. We found out the hard way that triggers do not close files when they terminate (not sure why), and we quickly hit the max # of files problem. 3) Do NOT use triggers to build indexes. Use the native indexes, but just like triggers, use them sparingly and wisely. 4) You have to be root (or have root privileges) to put a trigger on a file. John Israel -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brian Leach Sent: Wednesday, October 08, 2008 4:54 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers One gotcha is that once a trigger is on there, you can't easily change/extend it unless your system has a downtime period in which everyone is logged out. For this reason on 24x7 sites I use a master trigger that can call subtriggers, held as a list in a parameter file. This means that a new subtrigger can be inserted, old subtriggers removed etc without having to log everyone out. Yes, it means an extra read and yes it is an imperfect solution in an imperfect world.. And of course remember you are running under transactional constraints when using triggers. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: 08 October 2008 04:22 To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Brian, definitely one of my concerns was dealing with changes that were needed in the future so I like the idea of the subtriggers. In my little bit of testing I found that you don't want to be messing with these very often after you set them. Jeff, are you suggesting that I can use an index instead of a trigger. It seems like I did something like this before with an I-description calling a subroutine but it seemed like I had some issues in there. Maybe I'll give that another try as well and see which fits better. Thanks for the help. On Wed, Oct 8, 2008 at 4:54 AM, Brian Leach [EMAIL PROTECTED] wrote: One gotcha is that once a trigger is on there, you can't easily change/extend it unless your system has a downtime period in which everyone is logged out. For this reason on 24x7 sites I use a master trigger that can call subtriggers, held as a list in a parameter file. This means that a new subtrigger can be inserted, old subtriggers removed etc without having to log everyone out. Yes, it means an extra read and yes it is an imperfect solution in an imperfect world.. And of course remember you are running under transactional constraints when using triggers. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: 08 October 2008 04:22 To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
One gotcha is that once a trigger is on there, you can't easily change/extend it unless your system has a downtime period in which everyone is logged out. For this reason on 24x7 sites I use a master trigger that can call subtriggers, held as a list in a parameter file. This means that a new subtrigger can be inserted, old subtriggers removed etc without having to log everyone out. Yes, it means an extra read and yes it is an imperfect solution in an imperfect world.. And of course remember you are running under transactional constraints when using triggers. Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: 08 October 2008 04:22 To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Brian wrote an excellent article about UniVerse Triggers in the Nov/ Dec 2007 of International Spectrum magazine (p. 12). You can download that issue from http://www.intl-spectrum.com/mag/NOVDEC.2007/default.aspx Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On Oct 8, 2008, at 1:54 AM, Brian Leach wrote: One gotcha is that once a trigger is on there, you can't easily change/extend it unless your system has a downtime period in which everyone is logged out. For this reason on 24x7 sites I use a master trigger that can call subtriggers, held as a list in a parameter file. This means that a new subtrigger can be inserted, old subtriggers removed etc without having to log everyone out. Yes, it means an extra read and yes it is an imperfect solution in an imperfect world.. And of course remember you are running under transactional constraints when using triggers. Brian --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
Mike: We've been using triggers for many years; first with D3 then with UniData. We use them mostly to keep names up-to-date and several files synchronized. We have ten files with two triggers each on them, and these files are reasonably small (maybe 50K records in one and less than 5K in the rest). For the most part these triggers are designed to operate in a transaction environment, not in a batch environment. These triggers have a negligible impact on our application, by design mostly. So you should test your design pretty thoroughly, especially if you're running large batch processes that use multiple triggers on undersized files. HTH, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Hona, David S Sent: Tuesday, October 07, 2008 10:55 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] Universe Triggers Poorly written, implemented, designed and tested triggers - will have a high impact on your UV system. Hopefully, you have down a full-scale (real world-like) production-like test in your UAT environment prior to implementing them. If you have done this and tested real world scenarios like file, group record-lock contention - the stuff you could possibly get in your environment - you'd probably ok. :) As we don't know your application, your existing system load, existing file types or configuration or what your trigger does...we can only speculate wildly on the impact. :) As others have commented, the overhead can be substantial. So it is a trade-off of functionality your desire versus the actual performance hit. A delicate balance here, that only you can decide through thorough and rigorous testing. The more reading and writing your triggers do - the greater the impact (and the more locks they will hold). Clearly, if your triggers are updating, you do need be very concerned about performance. If you have no updating, there is less to worry about. However, just reading records can also set database record locks, as well. Regards, David -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: Wednesday, 8 October 2008 2:22 PM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
To ask a naive question: Having not used Universe, are triggers and their impact substantially different between Unidata and Universe? I've got 47+ triggers on various Unidata (7.1.x) files, some with 50+ records and not experienced any performance issues. Like others have commented, performance depends entirely on what you're trying to accomplish in the trigger - we try to keep ours as lightweight as possible. -- Jeff Butera, Ph.D. Administrative Systems Hampshire College [EMAIL PROTECTED] 413-559-5556 Where I'm from, we believe all sorts of things that aren't true. We call it history. The Wizard, Wicked --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Universe Triggers
Mike: Another thing to watch out for is the transaction constraints Brian mentioned. Where I've seen this most often is if your application has programs that add new records to a file without first getting a record lock with a READU. UniVerse lets you write in the dark if you want to. (Whether that is right or wrong is a different debate, but it happens.) Since triggers force transaction constraints, this will then fail. I don't remember the exact wording of the error message, something about ISO isolation level. Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] Universe Triggers
From our testing a couple of years back (using version 10.2), we found triggers to be very very very slow compared to indexes. Regards, Jeff Marcos -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Roosa Sent: Wednesday, 8 October 2008 2:22 PM To: u2-users@listserver.u2ug.org Subject: [U2] Universe Triggers We are getting ready to implement triggers on a universe system running under Windows Server 2003. I created a trigger and tested it out and it appears to do exactly what we need. My question is are there any gotchas or issues we should be concerned about with triggers? Are there any performance issues that anyone has seen related to triggers? Thanks, Mike Roosa --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ The information contained in this email and any attached files are strictly private and confidential. This email should be read by the intended addressee only. If the recipient of this message is not the intended addressee, please call Corporate Express Australia Limited on +61 2 9335 0555 or Corporate Express New Zealand Limited on +64 9 279 2555 and promptly delete this email and any attachments. The intended recipient of this email may only use, reproduce, disclose or distribute the information contained in this email and any attached files with Corporate Express' permission. If you are not the intended addressee, you are strictly prohibited from using, reproducing, disclosing or distributing the information contained in this email and any attached files. Corporate Express advises that this email and any attached files should be scanned to detect viruses. Corporate Express accepts no liability for loss or damage (whether caused by negligence or not) resulting from the use of any attached files. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniVerse Triggers
The Nov/Dec 2007 issue, available at: http://www.intl-spectrum.com/t/135520/link.aspx On May 8, 2008, at 5:35 AM, Brian Leach wrote: Mike If you check the recent issues (pdfs on their site) I wrote an article on triggers for Spectrum you might find useful. Brian -Original Message- From: Mike Randall[EMAIL PROTECTED] Sent: 08/05/08 03:58:08 To: u2-users@listserver.u2ug.orgu2-users@listserver.u2ug.org Subject: RE: [U2] UniVerse Triggers Interesting, I actually saw the trigger reference under SQL and made the incorrect assumption that it was referring to actual SQL commands rather than calling BASIC subroutines. Thanks for correction. Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Clifton Oliver Sent: Wednesday, May 07, 2008 8:58 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Triggers It's a UniVerse SQL command (yes, even if the file is not an SQL table). CREATE TRIGGER triggername { BEFORE | AFTER } event [ OR event ] ON tablename FOR EACH ROW CALLING ' program ' ; Details are in chapter 5 of the UniVerse SQL Reference. [Message truncated. Tap Edit-Mark for Download to get remaining portion.] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniVerse Triggers
Brian, An excellent article. One that should be required reading by every systems architect that works in the U2 environment. I'm stunned that many don't realize the power in triggers, especially those of you supporting systems with no source! Again, great article. Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Brian Leach Sent: Thursday, May 08, 2008 8:35 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UniVerse Triggers Mike If you check the recent issues (pdfs on their site) I wrote an article on triggers for Spectrum you might find useful. Brian -Original Message- From: Mike Randall[EMAIL PROTECTED] Sent: 08/05/08 03:58:08 To: u2-users@listserver.u2ug.orgu2-users@listserver.u2ug.org Subject: RE: [U2] UniVerse Triggers Interesting, I actually saw the trigger reference under SQL and made the incorrect assumption that it was referring to actual SQL commands rather than calling BASIC subroutines. Thanks for correction. Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Clifton Oliver Sent: Wednesday, May 07, 2008 8:58 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Triggers It's a UniVerse SQL command (yes, even if the file is not an SQL table). CREATE TRIGGER triggername { BEFORE | AFTER } event [ OR event ] ON tablename FOR EACH ROW CALLING ' program ' ; Details are in chapter 5 of the UniVerse SQL Reference. [Message truncated. Tap Edit-Mark for Download to get remaining portion.] --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniVerse Triggers
On UV triggers, I've used them often on UD and now have a great application for them on UV. I searched the VOC and found no commands with the word 'trigger' in them. I was expecting the CREATE.TRIGGER of Unidata.What's the syntax for setting them up in UV? Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 11:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniVerse Triggers
Try looking in the SQL.HELP file. 02 SEARCH SQL.HELP STRING:TRIGGER STRING: 4 record(s) selected to SELECT list #0. LIST ONLY SQL.HELP LIST ONLY SQL.HELP 05:52:53pm 07 May 2008 PAGE1 SYS.HELP CREATE SCHEMA CREATE TRIGGER ALTER TABLE DROP TRIGGER 4 records listed. Tom Dodds [EMAIL PROTECTED] 630.235.2975 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mike Randall Sent: Wednesday, May 07, 2008 4:28 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] UniVerse Triggers On UV triggers, I've used them often on UD and now have a great application for them on UV. I searched the VOC and found no commands with the word 'trigger' in them. I was expecting the CREATE.TRIGGER of Unidata.What's the syntax for setting them up in UV? Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 11:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Fwd: [U2] UniVerse Triggers
Excuse me. I mistyped. That is three 90 minute sessions, not one hour. Regards, Clif Begin forwarded message: From: Clifton Oliver [EMAIL PROTECTED] Date: May 7, 2008 5:58:05 PM PDT To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Triggers It's a UniVerse SQL command (yes, even if the file is not an SQL table). CREATE TRIGGER triggername { BEFORE | AFTER } event [ OR event ] ON tablename FOR EACH ROW CALLING ' program ' ; Details are in chapter 5 of the UniVerse SQL Reference. [AD] Also, I will be conducting a webinar through Spectrum University on the topic of UniVerse Triggers starting next Thursday. The course is three one-hour sessions on three consecutive Thursdays. For more information, please see http://www.intl-spectrum.com/tabid/159/univ/15/default.aspx [/AD] Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On May 7, 2008, at 4:28 PM, Mike Randall wrote: On UV triggers, I've used them often on UD and now have a great application for them on UV. I searched the VOC and found no commands with the word 'trigger' in them. I was expecting the CREATE.TRIGGER of Unidata.What's the syntax for setting them up in UV? Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 11:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniVerse Triggers
It's a UniVerse SQL command (yes, even if the file is not an SQL table). CREATE TRIGGER triggername { BEFORE | AFTER } event [ OR event ] ON tablename FOR EACH ROW CALLING ' program ' ; Details are in chapter 5 of the UniVerse SQL Reference. [AD] Also, I will be conducting a webinar through Spectrum University on the topic of UniVerse Triggers starting next Thursday. The course is three one-hour sessions on three consecutive Thursdays. For more information, please see http://www.intl-spectrum.com/tabid/159/univ/15/default.aspx [/AD] Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On May 7, 2008, at 4:28 PM, Mike Randall wrote: On UV triggers, I've used them often on UD and now have a great application for them on UV. I searched the VOC and found no commands with the word 'trigger' in them. I was expecting the CREATE.TRIGGER of Unidata.What's the syntax for setting them up in UV? Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 11:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniVerse Triggers
Interesting, I actually saw the trigger reference under SQL and made the incorrect assumption that it was referring to actual SQL commands rather than calling BASIC subroutines. Thanks for correction. Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Clifton Oliver Sent: Wednesday, May 07, 2008 8:58 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] UniVerse Triggers It's a UniVerse SQL command (yes, even if the file is not an SQL table). CREATE TRIGGER triggername { BEFORE | AFTER } event [ OR event ] ON tablename FOR EACH ROW CALLING ' program ' ; Details are in chapter 5 of the UniVerse SQL Reference. [AD] Also, I will be conducting a webinar through Spectrum University on the topic of UniVerse Triggers starting next Thursday. The course is three one-hour sessions on three consecutive Thursdays. For more information, please see http://www.intl-spectrum.com/tabid/159/univ/15/default.aspx [/AD] Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On May 7, 2008, at 4:28 PM, Mike Randall wrote: On UV triggers, I've used them often on UD and now have a great application for them on UV. I searched the VOC and found no commands with the word 'trigger' in them. I was expecting the CREATE.TRIGGER of Unidata.What's the syntax for setting them up in UV? Mike Randall, MCP -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 11:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] UniVerse Triggers
I have several clients who have been using triggers for a couple of years with no reported issues, other than the performance hit. Regards, Clif -- W. Clifton Oliver, CCP CLIFTON OLIVER ASSOCIATES Tel: +1 619 460 5678Web: www.oliver.com On Apr 25, 2008, at 11:42 PM, Horacio Pellegrino wrote: We started using triggers some months ago and so far no problems at all... I'm interested in what kind of instability issues you came across. Please let me know. ( We are a 370-Micro$oft Windows shop!) Horacio Pellegrino -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 8:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] UniVerse Triggers
Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] UniVerse Triggers
We started using triggers some months ago and so far no problems at all... I'm interested in what kind of instability issues you came across. Please let me know. ( We are a 370-Micro$oft Windows shop!) Horacio Pellegrino -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Baker Hughes Sent: Friday, April 25, 2008 8:02 AM To: 'u2-users@listserver.u2ug.org' Subject: [U2] UniVerse Triggers Hello, We have received reports that UV triggers have shown some instability. Does anyone have anything to share on this? We have been using them for a couple of years with no issues but were hoping for more details from other users, if available. Thanks much, -Baker --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/