Re: [U2] How to check which sproc is called by user
Here's some troubleshooting tips we use for our applications using the U2 APIs in background non-interactive processes. We have a common interfacing subroutine our API clients must use to sign-on and initialise their UV environment. In that code, we turn on COMO output, to capture any output that BASIC code or any other UV command may output. We tend to generate unique COMO filenames, with the OS user ID, process-ID, UV User No. and a date stamp - as typically you're executing multiple instances under the same user ID. With this, we can see what unexpected input or output is captured. Otherwise, you never really know what's going on. For further debugging we have a debug subroutine we can put into a code to log messages to a sequential file with details of what step or data is being processed. We use to as a non-invasive way to capture detail information. It is really just something of a glorified PRINT statement you'd have in BASIC program you'd place to debug it when running from a terminal session...but written to a unique log file for each background process. We've found it valuable in the past - especially in the development stage to do this. Then remove it or disable it later. You don't mention if your UniObjects code is designed to interact with interactive UV BASIC or UV commands. This could be an issue regardless, if someone changes code that expects terminal input and none is forthcoming. If you don't already, have a ON.ABORT and ON.EXIT paragraph setup to log the fact that your API process has triggered that. Just simply outputting the fact it got executed should be sufficient. This you know if aborted or cleanly exited UV - something which isn't always easy to determine due to lack of decent session event logging in UV. We also have a protocol that API processes must sign-off so we can tell if they cleanly exited from the application. This is useful as well. Likewise, the application has a transaction log which flags when the update transaction starts. That isn't cleared, if abnormal termination of the application occurs. Further nor future transactions aren't possible for the user ID until it is cleaned/investigated - but that's then logged. Cheers, David -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Andy Krause Sent: Wednesday, 9 January 2013 1:44 AM To: U2 Users List Subject: Re: [U2] How to check which sproc is called by user I will chime in since I work with Ravi and I am dealing with this issue along with him. Thanks for the response Brian, PORT.STATUS should be useful for our situation. I'll try and be a little more specific and hopefully I know what I'm talking about: We have a web application which is using UniObjects and we are randomly getting multiple (we've seen as many as 9) user sessions in the LISTU which appear to be hung and it's causing us to reach our user limit. We have debugged the web application and verified that all sessions are being closed properly so we do not believe that it's on the web side of things. Although, we cannot duplicate this problem in the live application either, so we cannot say for sure it's not on the web side. My first thought was that the application is calling a PICK subroutine that is stalling (possibly waiting for input or stuck in an infinite loop or something). So, at this point all we know is we are getting these stalled sessions but we don't know how. Hopefully with PORT.STATUS we can see whether is a PICK subroutine that is stalling? Now, to limit the severity of this problem we discovered there is a Timeout property of the UniSession object. However, it seems in the past we were advised against setting this parameter by Rocket support and that this timeout should be handled in the unirpcservices file in the unishared directory? Does that sound right? UniAdmin uses the timeout in the unirpcservices file so I don't think we would want to shorten the timeout and be booted from UniAdmin sooner. Thanks in advance for any responses. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Tuesday, January 08, 2013 3:35 AM To: 'U2 Users List' Subject: Re: [U2] How to check which sproc is called by user If it is a session hang you're possibly looking at locking issues so check the lock table to see what is waiting and also check for any group locks that persist. If it is UniVerse, It's also a good idea to check the errlog file in the uv account: if that does not exist, create it as a zero length file (you can go into the UV account and ED UFD errlog and just file it) and it will log the last 100 errors. If you can catch the session that has hung you can use the PORT.STATUS command to see where they were and their calling stack. Phil's idea of using the remote item security subroutine to audit calls is
Re: [U2] How to check which sproc is called by user
If it is a session hang you're possibly looking at locking issues so check the lock table to see what is waiting and also check for any group locks that persist. If it is UniVerse, It's also a good idea to check the errlog file in the uv account: if that does not exist, create it as a zero length file (you can go into the UV account and ED UFD errlog and just file it) and it will log the last 100 errors. If you can catch the session that has hung you can use the PORT.STATUS command to see where they were and their calling stack. Phil's idea of using the remote item security subroutine to audit calls is good once you've managed to identify the routine concerned, but it doesn't help you get to that point. How is your application constructed? Is it terminal based, UniObjects, Web? If it is terminal based, create a COMO on the LOGIN for that user session and see if that helps find it. If it is UniObjects based and you can clearly identify the user (and you have the time and space) and nothing else has worked, you can actually watch their session using a network tracer. I think we need to know a little more about the context of the problem. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ravindranath Wickramanayake Sent: 07 January 2013 21:55 To: u2-users@listserver.u2ug.org Subject: [U2] How to check which sproc is called by user Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
I will chime in since I work with Ravi and I am dealing with this issue along with him. Thanks for the response Brian, PORT.STATUS should be useful for our situation. I'll try and be a little more specific and hopefully I know what I'm talking about: We have a web application which is using UniObjects and we are randomly getting multiple (we've seen as many as 9) user sessions in the LISTU which appear to be hung and it's causing us to reach our user limit. We have debugged the web application and verified that all sessions are being closed properly so we do not believe that it's on the web side of things. Although, we cannot duplicate this problem in the live application either, so we cannot say for sure it's not on the web side. My first thought was that the application is calling a PICK subroutine that is stalling (possibly waiting for input or stuck in an infinite loop or something). So, at this point all we know is we are getting these stalled sessions but we don't know how. Hopefully with PORT.STATUS we can see whether is a PICK subroutine that is stalling? Now, to limit the severity of this problem we discovered there is a Timeout property of the UniSession object. However, it seems in the past we were advised against setting this parameter by Rocket support and that this timeout should be handled in the unirpcservices file in the unishared directory? Does that sound right? UniAdmin uses the timeout in the unirpcservices file so I don't think we would want to shorten the timeout and be booted from UniAdmin sooner. Thanks in advance for any responses. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Tuesday, January 08, 2013 3:35 AM To: 'U2 Users List' Subject: Re: [U2] How to check which sproc is called by user If it is a session hang you're possibly looking at locking issues so check the lock table to see what is waiting and also check for any group locks that persist. If it is UniVerse, It's also a good idea to check the errlog file in the uv account: if that does not exist, create it as a zero length file (you can go into the UV account and ED UFD errlog and just file it) and it will log the last 100 errors. If you can catch the session that has hung you can use the PORT.STATUS command to see where they were and their calling stack. Phil's idea of using the remote item security subroutine to audit calls is good once you've managed to identify the routine concerned, but it doesn't help you get to that point. How is your application constructed? Is it terminal based, UniObjects, Web? If it is terminal based, create a COMO on the LOGIN for that user session and see if that helps find it. If it is UniObjects based and you can clearly identify the user (and you have the time and space) and nothing else has worked, you can actually watch their session using a network tracer. I think we need to know a little more about the context of the problem. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ravindranath Wickramanayake Sent: 07 January 2013 21:55 To: u2-users@listserver.u2ug.org Subject: [U2] How to check which sproc is called by user Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
Andy: The first place I'd look for any UO errors is the UO error log. In UD, you need to create a serverdebug item in the @UDTHOME directory (in my case this is in E:\U2\ud). The contents of this item is: udcs 10 E:\U2\ud\log\udcs\udcs.log ...which indicates maximum logging and the log should go to the location indicated. From there I've always been able to track down UO problems. They've mostly been with my UOLOGIN globally cataloged routine, but sometimes I see other problems. I'm not sure how to do this in UV, but it should be fairly easy to track down once you activate UO logging. HTH, Bill P.S. I set all of my UO connections to timeout in 5 minutes (in my E:\U2\unishared\unirpc\unirpcservices file). This causes the Basic Developer's Toolkit to not work properly, but you can use any other development client you want, as long as it sends a keepalive. - Original Message - *From:* akra...@rammutual.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 1/8/2013 6:43 AM *Subject:* Re: [U2] How to check which sproc is called by user I will chime in since I work with Ravi and I am dealing with this issue along with him. Thanks for the response Brian, PORT.STATUS should be useful for our situation. I'll try and be a little more specific and hopefully I know what I'm talking about: We have a web application which is using UniObjects and we are randomly getting multiple (we've seen as many as 9) user sessions in the LISTU which appear to be hung and it's causing us to reach our user limit. We have debugged the web application and verified that all sessions are being closed properly so we do not believe that it's on the web side of things. Although, we cannot duplicate this problem in the live application either, so we cannot say for sure it's not on the web side. My first thought was that the application is calling a PICK subroutine that is stalling (possibly waiting for input or stuck in an infinite loop or something). So, at this point all we know is we are getting these stalled sessions but we don't know how. Hopefully with PORT.STATUS we can see whether is a PICK subroutine that is stalling? Now, to limit the severity of this problem we discovered there is a Timeout property of the UniSession object. However, it seems in the past we were advised against setting this parameter by Rocket support and that this timeout should be handled in the unirpcservices file in the unishared directory? Does that sound right? UniAdmin uses the timeout in the unirpcservices file so I don't think we would want to shorten the timeout and be booted from UniAdmin sooner. Thanks in advance for any responses. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Tuesday, January 08, 2013 3:35 AM To: 'U2 Users List' Subject: Re: [U2] How to check which sproc is called by user If it is a session hang you're possibly looking at locking issues so check the lock table to see what is waiting and also check for any group locks that persist. If it is UniVerse, It's also a good idea to check the errlog file in the uv account: if that does not exist, create it as a zero length file (you can go into the UV account and ED UFD errlog and just file it) and it will log the last 100 errors. If you can catch the session that has hung you can use the PORT.STATUS command to see where they were and their calling stack. Phil's idea of using the remote item security subroutine to audit calls is good once you've managed to identify the routine concerned, but it doesn't help you get to that point. How is your application constructed? Is it terminal based, UniObjects, Web? If it is terminal based, create a COMO on the LOGIN for that user session and see if that helps find it. If it is UniObjects based and you can clearly identify the user (and you have the time and space) and nothing else has worked, you can actually watch their session using a network tracer. I think we need to know a little more about the context of the problem. Brian -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Ravindranath Wickramanayake Sent: 07 January 2013 21:55 To: u2-users@listserver.u2ug.org Subject: [U2] How to check which sproc is called by user Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
[U2] How to check which sproc is called by user
Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] How to check which sproc is called by user
Toad the wet sPROCet !! A lot of procs get run from the VOC, but for performance reasons it's usually suggested that the proc in the VOC be only a linkage that calls a proc from a file. (would you eat it with a proc, would you eat it in a VOC, I do not like green eggs and ham, I do not like them Sam-I-Am!!). Procs can be run from normal files, so you could track them with a read trigger on the proc file I think? The other idea that comes to mind is adding a line to each proc which writes out it's name/date/time to a file. On Jan 7, 2013, at 4:54 PM, Ravindranath Wickramanayake ra...@rammutual.com wrote: Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
Explain more this performance issue of which you speak. How is a proc in a file different from the proc in the VOC? -Original Message- From: Ed Clark u...@edclark.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Jan 7, 2013 2:43 pm Subject: Re: [U2] How to check which sproc is called by user Toad the wet sPROCet !! A lot of procs get run from the VOC, but for performance reasons it's usually suggested that the proc in the VOC be only a linkage that calls a proc from a file. (would you eat it with a proc, would you eat it in a VOC, I do not like green eggs and ham, I do not like them Sam-I-Am!!). Procs can be run from normal files, so you could track them with a read trigger on the proc file I think? The other idea that comes to mind is adding a line to each proc which writes out it's name/date/time to a file. On Jan 7, 2013, at 4:54 PM, Ravindranath Wickramanayake ra...@rammutual.com wrote: Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
I've heard that a lumpy VOC is not recommended by the MV Doc. It causes overflows and more disk IO. Not to mention the dreaded disk seek - oh no! If all you measured was your proc in the VOC, all would be good (on wood you should knock). But with a large proc in the VOC and your other entries in overflow, well then - now you can see the aforementioned performance blow! *---* Of course, all that is overstated on most systems now. Disk caching is quite efficient (and large). In only the most extenuating circumstances would moving large items outside of the VOC have any non-trivial impact on your running system. - Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, January 07, 2013 3:45 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] How to check which sproc is called by user Explain more this performance issue of which you speak. How is a proc in a file different from the proc in the VOC? -Original Message- From: Ed Clark u...@edclark.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Jan 7, 2013 2:43 pm Subject: Re: [U2] How to check which sproc is called by user Toad the wet sPROCet !! A lot of procs get run from the VOC, but for performance reasons it's usually suggested that the proc in the VOC be only a linkage that calls a proc from a file. (would you eat it with a proc, would you eat it in a VOC, I do not like green eggs and ham, I do not like them Sam-I-Am!!). Procs can be run from normal files, so you could track them with a read trigger on the proc file I think? The other idea that comes to mind is adding a line to each proc which writes out it's name/date/time to a file. On Jan 7, 2013, at 4:54 PM, Ravindranath Wickramanayake ra...@rammutual.com wrote: Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
I've heard that a lumpy VOC is not recommended by the MV Doc. It causes overflows and more disk IO. Not to mention the dreaded disk seek - oh no! If all you measured was your proc in the VOC, all would be good (on wood you should knock). But with a large proc in the VOC and your other entries in overflow, well then - now you can see the aforementioned performance blow! *---* Of course, all that is overstated on most systems now Disk caching is quite efficient (and how!) In only the most extenuating circumstances would moving large items outside of the VOC have any non-trivial grooving impact on your running system, and no tuning! Ok i couldn't find another rhyme for moving -Original Message- From: Daniel McGrath dmcgr...@rocketsoftware.com To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Jan 7, 2013 3:18 pm Subject: Re: [U2] How to check which sproc is called by user I've heard that a lumpy VOC is not recommended by the MV Doc. It causes overflows and more disk IO. Not to mention the dreaded disk seek - oh no! If all you measured was your proc in the VOC, all would be good (on wood you should knock). But with a large proc in the VOC and your other entries in overflow, well then - now you can see the aforementioned performance blow! *---* Of course, all that is overstated on most systems now. Disk caching is quite efficient (and large). In only the most extenuating circumstances would moving large items outside of the VOC have any non-trivial impact on your running system. - Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, January 07, 2013 3:45 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] How to check which sproc is called by user Explain more this performance issue of which you speak. How is a proc in a file different from the proc in the VOC? -Original Message- From: Ed Clark u...@edclark.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Jan 7, 2013 2:43 pm Subject: Re: [U2] How to check which sproc is called by user Toad the wet sPROCet !! A lot of procs get run from the VOC, but for performance reasons it's usually suggested that the proc in the VOC be only a linkage that calls a proc from a file. (would you eat it with a proc, would you eat it in a VOC, I do not like green eggs and ham, I do not like them Sam-I-Am!!). Procs can be run from normal files, so you could track them with a read trigger on the proc file I think? The other idea that comes to mind is adding a line to each proc which writes out it's name/date/time to a file. On Jan 7, 2013, at 4:54 PM, Ravindranath Wickramanayake ra...@rammutual.com wrote: Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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] How to check which sproc is called by user
Or a security subroutine which performs an auditing function. This goes in attribute 4 of a remote VOC pointer. VOC File StoredProcedurePointer 1 R 2 StoredProcedureFile 3 StoredProcedureName 4 SecurityRoutine StoredProcedureFile StoredProcedureName 1 PA 2 DISPLAY I LIKE GREEN EGGS AND HAM -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Daniel McGrath Sent: Tuesday, 8 January 2013 12:18 p.m. To: U2 Users List Subject: Re: [U2] How to check which sproc is called by user I've heard that a lumpy VOC is not recommended by the MV Doc. It causes overflows and more disk IO. Not to mention the dreaded disk seek - oh no! If all you measured was your proc in the VOC, all would be good (on wood you should knock). But with a large proc in the VOC and your other entries in overflow, well then - now you can see the aforementioned performance blow! *---* Of course, all that is overstated on most systems now. Disk caching is quite efficient (and large). In only the most extenuating circumstances would moving large items outside of the VOC have any non-trivial impact on your running system. - Dan -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wjhonson Sent: Monday, January 07, 2013 3:45 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] How to check which sproc is called by user Explain more this performance issue of which you speak. How is a proc in a file different from the proc in the VOC? -Original Message- From: Ed Clark u...@edclark.net To: U2 Users List u2-users@listserver.u2ug.org Sent: Mon, Jan 7, 2013 2:43 pm Subject: Re: [U2] How to check which sproc is called by user Toad the wet sPROCet !! A lot of procs get run from the VOC, but for performance reasons it's usually suggested that the proc in the VOC be only a linkage that calls a proc from a file. (would you eat it with a proc, would you eat it in a VOC, I do not like green eggs and ham, I do not like them Sam-I-Am!!). Procs can be run from normal files, so you could track them with a read trigger on the proc file I think? The other idea that comes to mind is adding a line to each proc which writes out it's name/date/time to a file. On Jan 7, 2013, at 4:54 PM, Ravindranath Wickramanayake ra...@rammutual.com wrote: Hi U2 Guru's Can I tell when a sproc was last executed or who executed it. If so how. Some way to get statistics and access logs. Reason we are asking this is we are having a session hang issue we have tracked it down to a session user but have no clue which sproc did the call to trouble shoot. Thanks in advance ___ 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