RE: [U2] [UD] Determining if program running as a phantom
According to the manual... SYSTEM(18-29) Not currently used. ...and nothing shows. Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Monday, September 15, 2008 9:31 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] [UD] Determining if program running as a phantom What does Unidata show for system(25)? -- Original message -- From: Bill Haskett [EMAIL PROTECTED] Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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] [UD] Determining if program running as a phantom
What does Unidata show for system(25)? -- Original message -- From: Bill Haskett [EMAIL PROTECTED] Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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] [UD] Determining if program running as a phantom
Try using SYSTEM(48). A Phantom process will have a COMO file. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Monday, September 15, 2008 7:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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] [UD] Determining if program running as a phantom
If you have a different account for the UniObjects connections (we do for ODBC access) you could use @ACCOUNT. Or you could use UOLOGIN to set an @USER variable. HTH Colin Alfke Calgary, Canada -Original Message- David A. Green Try using SYSTEM(48). A Phantom process will have a COMO file. Thanks, David A. Green -Original Message- From: Bill Haskett I'm having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesn't matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
[U2] [UD] Crystal Reports and UniData
We want to use UniData 7.1.20 OLE-DB and Crystal Reports 2008 -- but are having no joy at the moment. The issue is the SQL that gets generated is quoted incorrectly. Example SQL I'm getting from Crystal Reports 2008: Select File_Name.Dict_Name,File_Name.Dict_Name From File_Name I don't see a tunable in Crystal Reports to tell it how to converse with U2 [aka - kill the quotes!], and IBM support tells me that CR has 'not worked right since Version 9' (which in itself is amazing, and unbelievable!) So I'm asking the masses -- are you using CR 2008 against UniData 7.1.x? And if so, are there tricks you can share? I have OLE-DB running smoothing under DBXtra - a nice .NET reporting tool - but I want to show/have Crystal Reports in my supported tool list since it's the defacto tool for the trade in this area. Thanks! David W. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Determining if program running as a phantom
Thanks David. This doesn't work, however. I run a program in DesignBais using UniObjects. In this program I execute a phantom. In the phantom program I have to initialize some variables. This code is in an include every program uses. So, in the include I test if the running program is a phantom and if it is then I initialize a few critical common variables. Port# 4 is the initial program while port# 6 is the phantom. Here's what I get from the various variables. 2 Dev (0)- AE _PH_ * 3 record(s) selected. 1 Top of designbais35286_3872 in _PH_, 8 lines, 222 characters. *--: p 001: @USER.TYPE---: 1 002: @TTY-: Console 003: PORT.NO--: 6 004: SYSTEM(48)---: _PH_\designbais35286_3872 005: ...Entry DEV_DESIGNBAIS_6_1487035287.txt 006: ...Entry DEV_DESIGNBAIS_6_1487035288.txt 008: PHANTOM process 3872 has completed. Bottom. *--: ex Quit designbais35286_3872 in file _PH_ unchanged. 2 Top of O_designbais in _PH_, 5 lines, 136 characters. *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE---: 1 003: @TTY-: udcs 004: PORT.NO--: 4 005: SYSTEM(48)---: _PH_\designbais35286 Bottom. *--: ex Quit O_designbais in file _PH_ unchanged. 3 Top of O_designbais.1 in _PH_, 22 lines, 557 characters. *--: p 001: 002: --- 09/16/2008 09:48:06 --- 003: E:\DataTrust\Dev\_PH_\O_designbais established 004: @USER.TYPE---: 1 005: @TTY-: udcs 006: PORT.NO--: 4 007: SYSTEM(48)---: 008: --- 09/16/2008 09:48:08 --- 009: E:\DataTrust\Dev\_PH_\O_designbais established 010: @USER.TYPE---: 1 011: @TTY-: udcs 012: PORT.NO--: 4 013: SYSTEM(48)---: _PH_\designbais35286 014: @USER.TYPE---: 1 015: @TTY-: udcs 016: PORT.NO--: 4 017: SYSTEM(48)---: _PH_\designbais35286 018: @USER.TYPE---: 1 019: @TTY-: udcs 020: PORT.NO--: 4 021: SYSTEM(48)---: _PH_\designbais35286 022: --- 09/16/2008 09:48:11 --- Bottom. *--: As you can see, both the phantom on port# 6 and the original program on port# 4 has data returned by SYSTEM(48). I think DesignBais turns COMO ON when it runs everything in order to log program activity, which greatly assists debugging, then turns it off when complete. So this isn't a solution. It would be nice if UD supplied some kind of system variable that could be relied upon since as we convert our application to DesignBais, we find ourselves doing more and more processing as phantoms. Presently, our solution is to do the following: * ** Determine if the running program is a phantom. ListOfUsers = LISTUSER() IsPhantom = 0 uHigh = DCOUNT(ListOfUsers, @AM) FOR UserCnt = 1 TO uHigh UserLine = ListOfUsersUserCnt UserPort = UserLine1,1 IF UserPort = PORT.NO THEN IsPhantom = (OCONV(UserLine1,5, 'MCU') = 'PHANTOM') EXIT END NEXT UserCnt ...which seems to work everywhere I've tested it. Thanks again, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David A. Green Sent: Tuesday, September 16, 2008 7:18 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom Try using SYSTEM(48). A Phantom process will have a COMO file. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Monday, September 15, 2008 7:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom I'm having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to '1' if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to '1'. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns 'udcs' from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a 'phantom'. The 'phantomed' process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002:
[U2] I need a correlative, just like the correlative...
My Pick Pocket Guide fails me. I can't use an I descriptor (that would be way too easy) and I need to create a correlative that presents the data in a multivalued field as a single valued comma delimited list. The equivalent of this: 0001: I 0002: CONVERT(@VM,',',PO.NUMBER) 0003: 0004: PO NUMBER 0005: 30T 0006: S Thanks -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Determining if program running as a phantom
One way I've dealt with this issue in the past is by having the 'INCLUDE' in the code always, then testing for something I know should be initialized with TESTVAR = UNASSIGNED(varname) -- if the variable would return 'Not Assigned a value' then TESTVAR would be 1, and I would know to run my 'Initialize' routine... DW -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Tuesday, September 16, 2008 12:09 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom Thanks David. This doesn't work, however. I run a program in DesignBais using UniObjects. In this program I execute a phantom. In the phantom program I have to initialize some variables. This code is in an include every program uses. So, in the include I test if the running program is a phantom and if it is then I initialize a few critical common variables. Port# 4 is the initial program while port# 6 is the phantom. Here's what I get from the various variables. 2 Dev (0)- AE _PH_ * 3 record(s) selected. 1 Top of designbais35286_3872 in _PH_, 8 lines, 222 characters. *--: p 001: @USER.TYPE---: 1 002: @TTY-: Console 003: PORT.NO--: 6 004: SYSTEM(48)---: _PH_\designbais35286_3872 005: ...Entry DEV_DESIGNBAIS_6_1487035287.txt 006: ...Entry DEV_DESIGNBAIS_6_1487035288.txt 008: PHANTOM process 3872 has completed. Bottom. *--: ex Quit designbais35286_3872 in file _PH_ unchanged. 2 Top of O_designbais in _PH_, 5 lines, 136 characters. *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE---: 1 003: @TTY-: udcs 004: PORT.NO--: 4 005: SYSTEM(48)---: _PH_\designbais35286 Bottom. *--: ex Quit O_designbais in file _PH_ unchanged. 3 Top of O_designbais.1 in _PH_, 22 lines, 557 characters. *--: p 001: 002: --- 09/16/2008 09:48:06 --- 003: E:\DataTrust\Dev\_PH_\O_designbais established 004: @USER.TYPE---: 1 005: @TTY-: udcs 006: PORT.NO--: 4 007: SYSTEM(48)---: 008: --- 09/16/2008 09:48:08 --- 009: E:\DataTrust\Dev\_PH_\O_designbais established 010: @USER.TYPE---: 1 011: @TTY-: udcs 012: PORT.NO--: 4 013: SYSTEM(48)---: _PH_\designbais35286 014: @USER.TYPE---: 1 015: @TTY-: udcs 016: PORT.NO--: 4 017: SYSTEM(48)---: _PH_\designbais35286 018: @USER.TYPE---: 1 019: @TTY-: udcs 020: PORT.NO--: 4 021: SYSTEM(48)---: _PH_\designbais35286 022: --- 09/16/2008 09:48:11 --- Bottom. *--: As you can see, both the phantom on port# 6 and the original program on port# 4 has data returned by SYSTEM(48). I think DesignBais turns COMO ON when it runs everything in order to log program activity, which greatly assists debugging, then turns it off when complete. So this isn't a solution. It would be nice if UD supplied some kind of system variable that could be relied upon since as we convert our application to DesignBais, we find ourselves doing more and more processing as phantoms. Presently, our solution is to do the following: * ** Determine if the running program is a phantom. ListOfUsers = LISTUSER() IsPhantom = 0 uHigh = DCOUNT(ListOfUsers, @AM) FOR UserCnt = 1 TO uHigh UserLine = ListOfUsersUserCnt UserPort = UserLine1,1 IF UserPort = PORT.NO THEN IsPhantom = (OCONV(UserLine1,5, 'MCU') = 'PHANTOM') EXIT END NEXT UserCnt ...which seems to work everywhere I've tested it. Thanks again, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David A. Green Sent: Tuesday, September 16, 2008 7:18 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom Try using SYSTEM(48). A Phantom process will have a COMO file. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Monday, September 15, 2008 7:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom I'm having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to '1' if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to '1'. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns 'udcs' from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a 'phantom'. The 'phantomed' process. *--: p 001:
[U2] If you run UV, Read This !!! Change to UV Backup Recommendations
There is an immediate change to the recommended steps for backing up UV. NEW RECOMMENDED BACKUP STEPS: SUSPEND.FILES ON SYNC --- This is the New Recommendation !!! The buffers must be flushed to disk !!! Break off mirrored set, create Flash Copy, etc. SUSPEND.FILES OFF Make backup from split off mirrored set, Flash Copy, etc. Rejoin mirrored set, throw away Flash Copy, etc. Please note that a sync is now recommended immediately following the initiation of the SUSPEND.FILES ON command. EXPLANATION: At U2U (U2 University) San Diego, I had an opportunity to speak with Neil Morris (Advanced Technical Support Analyst for UniVerse) about the Headers of Dynamic Files. It turns out, that the process that modifies the Header of a Dynamic File (when the file expands or contracts), will write the updated Header. The SUSPEND.FILES ON command only stops the writes to disk. It does not initiate a sync. Therefore, a sync must be added immediately following the SUSPEND.FILES ON command in order to flush the buffers to disk, and make absolutely sure the Header of Dynamic Files was written to disk. UNIVERSE HIGH AVAILABILITY EXECUTIVE OVERVIEW VERSION 21 NOW AVAILABLE: If you wish to have a copy of Version 21 of the UniVerse High Availability Executive Overview PPT, please send me an e-mail off line. I will send copies to those who request next week, after U2U San Diego. U2 Lab Services has you covered, Steve O'Neal U2 Lab Services Sales Specialist,IBM Data Management, IBM Software Group P.S. There is another U2U in Atlanta, October 7-9, 2008: http://www-01.ibm.com/software/info/u2/university/index.jsp --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] Next UniVerse Release
Based on the posting on this topic from Steve O'Neal, it appears we have our answer. Always do a sync after pausing the database. I wonder if that is true for UniData, too. Wally? You following this thread? Thanks for pointing out the issue, Brian! Regards, Clif On Sep 15, 2008, at 2:06 AM, Brian Leach wrote: Clif I've asked the question before and received no solid answer. Hence the word 'assurance' grin If someone could confirm that it does, I'll knock that off my list. Regards Brian -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Clifton Oliver Sent: 15 September 2008 09:36 To: u2-users@listserver.u2ug.org Subject: Re: [U2] Next UniVerse Release Are you saying the db pause (uv -admin -L (if I recall)) we have been told to use does NOT commit T30 file headers? And the backup of the mirror is NBG? Regards, Clif On Sep 15, 2008, at 12:49 AM, Brian Leach wrote: All I'm canvassing some opinions here.. as IBM sit down to work out their priorities for release 11 of UniVerse, what do you want to see included? As an example, here is my first wishlist item: better backups for 24x7x365 sites. That means either/both of a backup agent (or API) that can be used by third party storage tools (such as IBM's own Tivoli - so a business opportunity for them) and the assurance that pausing a database to split a mirror will commit all type 30 file headers to disk before the pause completes. Brian --- 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/
[U2] SOAP over HTTPS
Has anyone implemented the UniData SOAP functions over an HTTPS URL? The CALLHTTP stuff, on which the SOAP stuff is built, has an option for creating a secure request, but the soapcreaterequest function doesn't seem to have the equivalent. Is there such a beast, or do I need to revert to the lower level callhttp protocols? FWIW, I'm on UniData 6.1, and writing a webservice CONSUMER ... TIA Larry Hiscock Western Computer Services --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Determining if program running as a phantom
COMOs always start with O_. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Tuesday, September 16, 2008 10:09 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom Thanks David. This doesn't work, however. I run a program in DesignBais using UniObjects. In this program I execute a phantom. In the phantom program I have to initialize some variables. This code is in an include every program uses. So, in the include I test if the running program is a phantom and if it is then I initialize a few critical common variables. Port# 4 is the initial program while port# 6 is the phantom. Here's what I get from the various variables. 2 Dev (0)- AE _PH_ * 3 record(s) selected. 1 Top of designbais35286_3872 in _PH_, 8 lines, 222 characters. *--: p 001: @USER.TYPE---: 1 002: @TTY-: Console 003: PORT.NO--: 6 004: SYSTEM(48)---: _PH_\designbais35286_3872 005: ...Entry DEV_DESIGNBAIS_6_1487035287.txt 006: ...Entry DEV_DESIGNBAIS_6_1487035288.txt 008: PHANTOM process 3872 has completed. Bottom. *--: ex Quit designbais35286_3872 in file _PH_ unchanged. 2 Top of O_designbais in _PH_, 5 lines, 136 characters. *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE---: 1 003: @TTY-: udcs 004: PORT.NO--: 4 005: SYSTEM(48)---: _PH_\designbais35286 Bottom. *--: ex Quit O_designbais in file _PH_ unchanged. 3 Top of O_designbais.1 in _PH_, 22 lines, 557 characters. *--: p 001: 002: --- 09/16/2008 09:48:06 --- 003: E:\DataTrust\Dev\_PH_\O_designbais established 004: @USER.TYPE---: 1 005: @TTY-: udcs 006: PORT.NO--: 4 007: SYSTEM(48)---: 008: --- 09/16/2008 09:48:08 --- 009: E:\DataTrust\Dev\_PH_\O_designbais established 010: @USER.TYPE---: 1 011: @TTY-: udcs 012: PORT.NO--: 4 013: SYSTEM(48)---: _PH_\designbais35286 014: @USER.TYPE---: 1 015: @TTY-: udcs 016: PORT.NO--: 4 017: SYSTEM(48)---: _PH_\designbais35286 018: @USER.TYPE---: 1 019: @TTY-: udcs 020: PORT.NO--: 4 021: SYSTEM(48)---: _PH_\designbais35286 022: --- 09/16/2008 09:48:11 --- Bottom. *--: As you can see, both the phantom on port# 6 and the original program on port# 4 has data returned by SYSTEM(48). I think DesignBais turns COMO ON when it runs everything in order to log program activity, which greatly assists debugging, then turns it off when complete. So this isn't a solution. It would be nice if UD supplied some kind of system variable that could be relied upon since as we convert our application to DesignBais, we find ourselves doing more and more processing as phantoms. Presently, our solution is to do the following: * ** Determine if the running program is a phantom. ListOfUsers = LISTUSER() IsPhantom = 0 uHigh = DCOUNT(ListOfUsers, @AM) FOR UserCnt = 1 TO uHigh UserLine = ListOfUsersUserCnt UserPort = UserLine1,1 IF UserPort = PORT.NO THEN IsPhantom = (OCONV(UserLine1,5, 'MCU') = 'PHANTOM') EXIT END NEXT UserCnt ...which seems to work everywhere I've tested it. Thanks again, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of David A. Green Sent: Tuesday, September 16, 2008 7:18 AM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom Try using SYSTEM(48). A Phantom process will have a COMO file. Thanks, David A. Green www.dagconsulting.com (480) 813-1725 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Monday, September 15, 2008 7:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom I'm having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to '1' if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to '1'. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns 'udcs' from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a 'phantom'. The 'phantomed' process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008:
Re: [U2] [UD] Determining if program running as a phantom
Bill, Are you asking two questions: Is the program running and is the program running as a phantom? Or only one question : Is the program running as a phantom? I don't fully understand your application environment, but we use the following technique to determine if a program, that normally only runs as a phantom, is running or not: We start the program as a phantom and, from within the phantom program, we write a record (eg STARTED) to the dict of a file and then read that record with a READU command. This leaves the dict record STARTED locked until the phantom program stops running. By reading the dict record STARTED from another status reporting program and checking if it is locked or not, we can determine if the phantom program is running or not. Don't know if you can use this technique or not. hth, Dave Dave Taylor Sysmark Information Systems, Inc. Authorized IBM Business Partner 49 Aspen Way Rolling Hills Estates, CA 90274 (O) 800-SYSMARK (800-797-6275) (F) 310-377-3550 (C) 310-561-5200 www.sysmarkinfo.com - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, September 15, 2008 7:54 PM Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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] I need a correlative, just like the correlative...
Jeff, It's not pretty, but if you know the maximum number of values (n), you could use this: F;0;(Tfname;X1;;96);C,;:;0;(Tfname;X2;;96);:;C,;:; ... ;0;(Tfname;Xn;;96);: Best Regards, Richard Lewis -Original Message- From: Jeff Schasny [EMAIL PROTECTED] Date: 09/16/2008 01:46 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] I need a correlative, just like the correlative... My Pick Pocket Guide fails me. I can't use an I descriptor (that would be way too easy) and I need to create a correlative that presents the data in a multivalued field as a single valued comma delimited list. The equivalent of this: 0001: I 0002: CONVERT(@VM,',',PO.NUMBER) 0003: 0004: PO NUMBER 0005: 30T 0006: S Thanks -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ Adult Diaper Live your life with confidence. Click now for a discreet selection of adult diapers! http://216.21.215.31/fc/JkJQPThTFMgVXhpyOkrSskSXEjIzNycjT2gLmTg5XC7yblDbYVDqT 3/ --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Determining if program running as a phantom
Dave: We're upgrading our application to DesignBais. It is an excellent tool to move our character based application to a web environment and we're happy with its capabilities. We modify a process of ours (say writing checks) to run as a phantom instead of as a response to a [R]un option from our character-based application. We used to display the progress of the process to the telnet user who initiated it. Now, we EXECUTE \PHANTOM CHECKRUN\ from a DesignBais [Proceed] button which uses UO to initiate the process. When we phantom off the process, variables have to be accounted for and the appropriate ones need to be passed into the phantom program. In addition, some additional variables need to be initialized within the phantom. When all initialization code is in an INCLUDE, then it's important to know, from inside a running program, whether the program itself is running as a phantom. If it is then more variables are either initialized or set. This becomes more important as we access current code from the DesignBais framework. Often there are only minor changes that need be made to our current code, so where we're running what is becoming more important every day. The technique you described to manage a running phantom, from outside, is a fine one we can all employ. But, that isn't the question I was trying to ask. Thanks, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Taylor Sent: Tuesday, September 16, 2008 2:13 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] [UD] Determining if program running as a phantom Bill, Are you asking two questions: Is the program running and is the program running as a phantom? Or only one question : Is the program running as a phantom? I don't fully understand your application environment, but we use the following technique to determine if a program, that normally only runs as a phantom, is running or not: We start the program as a phantom and, from within the phantom program, we write a record (eg STARTED) to the dict of a file and then read that record with a READU command. This leaves the dict record STARTED locked until the phantom program stops running. By reading the dict record STARTED from another status reporting program and checking if it is locked or not, we can determine if the phantom program is running or not. Don't know if you can use this technique or not. hth, Dave Dave Taylor Sysmark Information Systems, Inc. Authorized IBM Business Partner 49 Aspen Way Rolling Hills Estates, CA 90274 (O) 800-SYSMARK (800-797-6275) (F) 310-377-3550 (C) 310-561-5200 www.sysmarkinfo.com - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, September 15, 2008 7:54 PM Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative.
RE: [U2] [UD] Crystal Reports and UniData
David, the best approach may be more indirect. This is another reason why I keep trying to discourage the more direct interfaces between MV-specific SQL tools. Rather than trying to bind CR or any reporting tools to U2, create a Data Access Layer (DAL) that you're comfortable with using any tools you prefer. You can then use this with any future project and enhance it as you find the need. Then create classes for a Business Logic Layer (BLL) that represent the server-side data. These might include CUSTOMER, ORDER_HDR, INVENTORY, etc. Again, you will be able to use these for any future projects. Then you can create a final class, decorated with the .NET DataObjects attribute, that can be used as an ObjectDataSource with any tools that bind with such DataSources - including Crystal Reports. You will probably have a few of these for your various application needs. Not only is your effort on these classes portable to other projects, but you're abstracting matters of the UI (Crystal Reports and their API in this case) from any changes you make to accommodate DAL or DBMS changes. For example, you can now use your CR interface with jBASE, Cachi, SQL Server, or any other database - all you need to do is replace the DAL - and you can use the same DAL and BLL to provide data to MS Office, web services, or any number of other front-end application/interfaces. This also insulates you from support people at either IBM or CR blaming their faceless counterparts for some malfunction. Speaking of which, I'm surprised IBM says CR itself is so broken but I suspect that's motivated in part by their purchase of Cognos. As always, if you'd like assistance, you know where I am. :) HTH Tony Gravagno Nebula Research and Development Technical Editor, LINQ Programming: http://tinyurl.com/5lqroa [link goes to Amazon for book info] ... and other .NET books and publications TG@ remove.pleaseNebula-RnD.com Nebula RD provides .NET-related development and training services From: David Wolverton We want to use UniData 7.1.20 OLE-DB and Crystal Reports 2008 ... and IBM support tells me that CR has 'not worked right since Version 9' (which in itself is amazing, and unbelievable!) So I'm asking the masses -- are you using CR 2008 against UniData 7.1.x? And if so, are there tricks you can share? --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] [UD] Determining if program running as a phantom
So can you PARSE the LISTUSER() function output using @USERNO (which should be your PID) to find the relevant attribute for your license and digging out the appropriate values which identifies your process type. Alternatively, since it looks like you'd need to check two elements in that array, perhaps just use @USER.TYPE and then check if @TTY is not equal to udcs - which appears to be a clear indicator of a UniObjects invoked program. Or is the problem that you need to know the difference between a program that has been PHANTOMed out of UniObjects and one that has been PHANTOMed straight from a command prompt? HTH, Ken -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Tuesday, 16 September 2008 12:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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] [UD] Determining if program running as a phantom
Bill, Here's another idea: We often run a program that needs some information passed to it, so we run it from a proc and preload the buffer in the proc with the information needed by the program. Inside the program, we read the proc buffer and extract the information we need. Perhaps you could pass a flag into your program that would tell it how it was initiated - ie. in the foreground or in the background - so it could then act accordingly. hth, Dave Dave Taylor Sysmark Information Systems, Inc. Authorized IBM Business Partner 49 Aspen Way Rolling Hills Estates, CA 90274 (O) 800-SYSMARK (800-797-6275) (F) 310-377-3550 (C) 310-561-5200 www.sysmarkinfo.com - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Tuesday, September 16, 2008 3:09 PM Subject: RE: [U2] [UD] Determining if program running as a phantom Dave: We're upgrading our application to DesignBais. It is an excellent tool to move our character based application to a web environment and we're happy with its capabilities. We modify a process of ours (say writing checks) to run as a phantom instead of as a response to a [R]un option from our character-based application. We used to display the progress of the process to the telnet user who initiated it. Now, we EXECUTE \PHANTOM CHECKRUN\ from a DesignBais [Proceed] button which uses UO to initiate the process. When we phantom off the process, variables have to be accounted for and the appropriate ones need to be passed into the phantom program. In addition, some additional variables need to be initialized within the phantom. When all initialization code is in an INCLUDE, then it's important to know, from inside a running program, whether the program itself is running as a phantom. If it is then more variables are either initialized or set. This becomes more important as we access current code from the DesignBais framework. Often there are only minor changes that need be made to our current code, so where we're running what is becoming more important every day. The technique you described to manage a running phantom, from outside, is a fine one we can all employ. But, that isn't the question I was trying to ask. Thanks, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Dave Taylor Sent: Tuesday, September 16, 2008 2:13 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] [UD] Determining if program running as a phantom Bill, Are you asking two questions: Is the program running and is the program running as a phantom? Or only one question : Is the program running as a phantom? I don't fully understand your application environment, but we use the following technique to determine if a program, that normally only runs as a phantom, is running or not: We start the program as a phantom and, from within the phantom program, we write a record (eg STARTED) to the dict of a file and then read that record with a READU command. This leaves the dict record STARTED locked until the phantom program stops running. By reading the dict record STARTED from another status reporting program and checking if it is locked or not, we can determine if the phantom program is running or not. Don't know if you can use this technique or not. hth, Dave Dave Taylor Sysmark Information Systems, Inc. Authorized IBM Business Partner 49 Aspen Way Rolling Hills Estates, CA 90274 (O) 800-SYSMARK (800-797-6275) (F) 310-377-3550 (C) 310-561-5200 www.sysmarkinfo.com - Original Message - From: Bill Haskett [EMAIL PROTECTED] To: u2-users@listserver.u2ug.org Sent: Monday, September 15, 2008 7:54 PM Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009:
Re[2]: [U2] access to mvBase VTF files
then there's unidata ... talk about grotesque G You are right .. moving data is moving data. A simple save/restore solves a lot of problems, if there is one. Of course I can follow the norm and just write something and charge the client a lot of something that should be there G Thanks Saturday, September 13, 2008, 6:54:47 PM, you wrote: BH G-man: BH Let me try to answer a couple of your questions... BH Moving data can be a goal. Whether you or I can foresee the need is BH irrelevant. I've moved quite a few accounts from D3 to UV and UD and I BH suspect Dave has an equally justifiable need (not that he should need to BH justify anything). BH There used to be a common backup to an older format that all platforms BH did. I can remember upgrading several different platforms to D3 and BH upgrading several D3 platforms to U2. They all had that familiar BH account-save (a type of thing. BH Many of the vendors had (have) utilities to bring in accounts from other BH systems. Flat-file BS is grotesque! Then there's UniData. :-) BH Bill BH -Original Message- BH From: [EMAIL PROTECTED] BH [mailto:[EMAIL PROTECTED] On Behalf Of Tony G BH Sent: Saturday, September 13, 2008 5:07 PM BH To: u2-users@listserver.u2ug.org BH Subject: RE: [U2] access to mvBase VTF files From: David Tod Sigafoos My higher goal is to move data from mvBase to uniVerse. Account save / account restore What I want is information on if this can be done simply. I can, as ray suggested, read the tape OR i can simply stream in the file and try to restore on my own. BH [flame jacket in hand] BH Moving data isn't a goal, it's a tactical effort to satisfy some BH more strategic business function. I'm still curious as to why BH you need to move data using platform-specific media. I find that BH the real answer to problems we see presented here is frequently BH that the wrong question is being asked. And while I know there BH can be some resentment when I question why someone is asking for BH a specific solution, that line of inquiry frequently leads to BH saving a lot of time and money in accomplishing the real BH strategic goal. Seriously, I deal with this all the time. BH The only valid case I can think of for your inquiry is that you BH have an old VTF and the source system no longer exists - maybe a BH crash-n-burn where the user wants to move to U2 rather than to BH pay for a new mvBASE license. Fair enough. If that's the case BH then my suggestion is to move the data into a live mvBASE system BH somewhere (which you can get for free from any mvBASE dealer) BH and then to extract it out using more conventional means. BH The tape mechanisms in all of these platforms was never intended BH to be cross-platform. They're intended to backup and restore BH data to a specific platform. And while we expect to be able to BH move data from one shop to another, across operating systems, and BH across DBMS releases, many of us have found there are occasional BH issues here. Extract data from these proprietary formats is a BH sure way to win geek points, but it's a pointless business effort BH considering there are better ways to accomplish the goals. BH So I would back up a moment (pun intended I guess) and ask why BH you're not writing flat files that can be transported and then BH read from the file system? If the systems are local then you can BH simply write to a file in BASIC that's simultaneously accessed by BH Universe. I do that for development all the time with a bunch of BH DBMS's. BH If the mvBASE system is still up and you want to do this on a BH regular basis, I'm guessing the environments are remote and you BH want to duplicate one or more accounts from one platform and just BH read it somewhere else. All the File-Save process does is to BH select the SYSTEM file, loop through all MD files, loop through BH all DICT files, and the copy all the DATA file items in a BH proprietary tape buffer format. I know you could swing that in a BH few minutes, using the same type of recursive loop to create BH directories and write items as files. ( I actually have code BH like that around here somewhere from an effort where I needed to BH extract an entire R83 system over a network via AccuTerm. ) BH Anyway, I hope you accomplish your goals. BH Best, BH T -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity. -- Martin Luther King, Jr. (1929-1968) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe
Re[2]: [U2] access to mvBase VTF files
Tony, Funny thing about consultants .. first thing they want to do is write a program instead of finding a pre-existing solution. IF there were a way to move data from one environment to another without charging the client more money just to show off my brilliance that would be the best thing for the client (saving money and getting good results) and myself (why re invent the wheel .. i know i am smart i don't need to prove it to myself again). If there is no such thing then the simple answer would be .. nope .. there is no such thing. No one has ever done it .. set up a 300 baud line and just serialize the data from one box to the next G Thanks Saturday, September 13, 2008, 5:06:37 PM, you wrote: From: David Tod Sigafoos My higher goal is to move data from mvBase to uniVerse. Account save / account restore What I want is information on if this can be done simply. I can, as ray suggested, read the tape OR i can simply stream in the file and try to restore on my own. TG [flame jacket in hand] TG Moving data isn't a goal, it's a tactical effort to satisfy some TG more strategic business function. I'm still curious as to why TG you need to move data using platform-specific media. I find that TG the real answer to problems we see presented here is frequently TG that the wrong question is being asked. And while I know there TG can be some resentment when I question why someone is asking for TG a specific solution, that line of inquiry frequently leads to TG saving a lot of time and money in accomplishing the real TG strategic goal. Seriously, I deal with this all the time. TG The only valid case I can think of for your inquiry is that you TG have an old VTF and the source system no longer exists - maybe a TG crash-n-burn where the user wants to move to U2 rather than to TG pay for a new mvBASE license. Fair enough. If that's the case TG then my suggestion is to move the data into a live mvBASE system TG somewhere (which you can get for free from any mvBASE dealer) TG and then to extract it out using more conventional means. TG The tape mechanisms in all of these platforms was never intended TG to be cross-platform. They're intended to backup and restore TG data to a specific platform. And while we expect to be able to TG move data from one shop to another, across operating systems, and TG across DBMS releases, many of us have found there are occasional TG issues here. Extract data from these proprietary formats is a TG sure way to win geek points, but it's a pointless business effort TG considering there are better ways to accomplish the goals. TG So I would back up a moment (pun intended I guess) and ask why TG you're not writing flat files that can be transported and then TG read from the file system? If the systems are local then you can TG simply write to a file in BASIC that's simultaneously accessed by TG Universe. I do that for development all the time with a bunch of TG DBMS's. TG If the mvBASE system is still up and you want to do this on a TG regular basis, I'm guessing the environments are remote and you TG want to duplicate one or more accounts from one platform and just TG read it somewhere else. All the File-Save process does is to TG select the SYSTEM file, loop through all MD files, loop through TG all DICT files, and the copy all the DATA file items in a TG proprietary tape buffer format. I know you could swing that in a TG few minutes, using the same type of recursive loop to create TG directories and write items as files. ( I actually have code TG like that around here somewhere from an effort where I needed to TG extract an entire R83 system over a network via AccuTerm. ) TG Anyway, I hope you accomplish your goals. TG Best, TG T TG Tony Gravagno TG Nebula Research and Development TG TG@ remove.pleaseNebula-RnD.com TG --- TG u2-users mailing list TG u2-users@listserver.u2ug.org TG To unsubscribe please visit http://listserver.u2ug.org/ TG __ Information from ESET NOD32 Antivirus, version of TG virus signature database 3440 (20080913) __ TG The message was checked by ESET NOD32 Antivirus. TG http://www.eset.com -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ Nearly all men can stand adversity, but if you want to test a man's character, give him power. -- Abraham Lincoln(1809-1865) --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
Re: [U2] I need a correlative, just like the correlative...
Jeff, Why not just call a simple DICT program? Tuesday, September 16, 2008, 10:46:01 AM, you wrote: JS My Pick Pocket Guide fails me. JS I can't use an I descriptor (that would be way too easy) and I need to JS create a correlative that presents the data in a multivalued field as a JS single valued comma delimited list. JS The equivalent of this: JS 0001: I JS 0002: CONVERT(@VM,',',PO.NUMBER) JS 0003: JS 0004: PO NUMBER JS 0005: 30T JS 0006: S JS Thanks -- DSig ` David Tod Sigafoos ( O O ) ___oOOo__( )__oOOo___ I'm frankly sick and tired of the political preachers across this country telling me as a citizen that if I want to be a moral person, I must believe in A, B, C, and D. Just who do they think they are? And from where do they presume to claim the right to dictate their moral beliefs to me? -- Barry Goldwater. --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/
RE: [U2] I need a correlative, just like the correlative...
Which is why I always just use a subr. The real cost to the client is the cost creation and maintenance. Subr's are just *so* easy to understand. -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Behalf Of rbl000 Sent: Tuesday, September 16, 2008 14:45 To: u2-users@listserver.u2ug.org Subject: Re: [U2] I need a correlative, just like the correlative... Jeff, It's not pretty, but if you know the maximum number of values (n), you could use this: F;0;(Tfname;X1;;96);C,;:;0;(Tfname;X2;;96);:;C,;:; ... ;0;(Tfname;Xn;;96);: Best Regards, Richard Lewis -Original Message- From: Jeff Schasny [EMAIL PROTECTED] Date: 09/16/2008 01:46 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] I need a correlative, just like the correlative... My Pick Pocket Guide fails me. I can't use an I descriptor (that would be way too easy) and I need to create a correlative that presents the data in a multivalued field as a single valued comma delimited list. The equivalent of this: 0001: I 0002: CONVERT(@VM,',',PO.NUMBER) 0003: 0004: PO NUMBER 0005: 30T 0006: S Thanks -- Jeff Schasny - Denver, Co, USA jschasny at gmail dot com --- u2-users mailing list u2-users@listserver.u2ug.org To unsubscribe please visit http://listserver.u2ug.org/ Adult Diaper Live your life with confidence. Click now for a discreet selection of adult diapers! http://216.21.215.31/fc/JkJQPThTFMgVXhpyOkrSskSXEjIzNycjT2gLmTg5XC7yblDbYVDq T 3/ --- 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] SOAP over HTTPS
Yes, there's a SOAPCreateSecureRequest that works. Or at least the person who wrote the code below claims it works. I can't help you with specifics, as someone else wrote it. This was written for UniVerse. (I started on these SOAP calls for some QualComm webservices last week, and haven't had much luck with my code yet!) URL = https://truck-pc.net/WebServices/v1.1.7/DriverTechService.asmx?/WSDL; SOAPAction = https://truck-pc.net/WebServices/v1.1.7/GetReport; * CREATE SECURITY CONTEXT RCODE = createSecurityContext(ctx, ) IF RCODE=0 THEN CRT 'createSecurityContext OK' END ELSE STOP 'ERROR - createSecurityContext - ':RCODE END * Add authentication rule RETURN = addAuthenticationRule(ctx, 2, VerificationStrength, generous) RETURN = addAuthenticationRule(ctx, 2, PeerName, truck-pc.net) * CREATE SOAP REQUEST HANDLE RCODE=SOAPCreateSecureRequest(URL,SOAPAction,SoapReq,ctx) IF RCODE=0 THEN CRT 'SOAPCreateSecureRequest OK' END ELSE STOP 'ERROR - SOAPCreateSecureRequest - ':RCODE END - Janet Mission Petroleum Carriers -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Larry Hiscock Sent: Tuesday, September 16, 2008 2:14 PM To: u2-users@listserver.u2ug.org Subject: [U2] SOAP over HTTPS Has anyone implemented the UniData SOAP functions over an HTTPS URL? The CALLHTTP stuff, on which the SOAP stuff is built, has an option for creating a secure request, but the soapcreaterequest function doesn't seem to have the equivalent. Is there such a beast, or do I need to revert to the lower level callhttp protocols? FWIW, I'm on UniData 6.1, and writing a webservice CONSUMER ... TIA Larry Hiscock Western Computer Services --- 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] [UD] Determining if program running as a phantom
Thanks Ken. You and Wally are right about LISTUSER(). I parse out the line I want, as the program running knows which port#/pid it's running on. From there I get the data I want by extracting 1,5 to get the proper user-type. I have no idea why @USER.TYPE doesn't return the same information, but I suspect it's some kind of backward compatibility thing. Thanks again, Bill -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ken Wallis Sent: Tuesday, September 16, 2008 4:19 PM To: u2-users@listserver.u2ug.org Subject: RE: [U2] [UD] Determining if program running as a phantom So can you PARSE the LISTUSER() function output using @USERNO (which should be your PID) to find the relevant attribute for your license and digging out the appropriate values which identifies your process type. Alternatively, since it looks like you'd need to check two elements in that array, perhaps just use @USER.TYPE and then check if @TTY is not equal to udcs - which appears to be a clear indicator of a UniObjects invoked program. Or is the problem that you need to know the difference between a program that has been PHANTOMed out of UniObjects and one that has been PHANTOMed straight from a command prompt? HTH, Ken -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Bill Haskett Sent: Tuesday, 16 September 2008 12:54 PM To: u2-users@listserver.u2ug.org Subject: [U2] [UD] Determining if program running as a phantom Im having a bit of a problem figuring out how to tell, within a program, if it is running as a phantom. It was my impression that @USER.TYPE would be set to 1 if the program was running as a phantom. However, if I run a program from a UniObjects connection @USER.TYPE is always set to 1. It doesnt matter I test this within the main program that EXECUTEs a phantom or within the phantomed program. If I test @TTY then it returns udcs from within the main program or Console from within the phantomed program (I hate to think this is how I determine if a program is running as a phantom ). If I execute the LISTUSER() function then the line properly shows the user type as a phantom. The phantomed process. *--: p 001: @USER.TYPE-: 1 002: @TTY---: Console 003: PORT.NO: 6 004: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 005: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 006: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 007: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 008: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 009: 62238821976402designbai2phantom2pts/62Console219:30:532Sep 15 2008 010: ...Entry DEV_DESIGNBAIS_6_1486970254.txt 011: ...Entry DEV_DESIGNBAIS_6_1486970255.txt 013: PHANTOM process 2388 has completed. Bottom. The process executing the above phantomed job *--: p 001: E:\DataTrust\Dev\_PH_\O_designbais established 002: @USER.TYPE-: 1 003: @TTY---: udcs 004: PORT.NO: 4 005: LISTUSER()-: 12251621976152myuser2phantom2pts/12Console210:33:322Sep 15 2008 006: 2263221976152myuser2udt2pts/22192.168.1.51216:41:202Sep 15 2008 007: 32383621976152myuser2udt2pts/32192.168.1.51215:11:522Sep 15 2008 008: 42358421976402designbai2udt2pts/42udcs219:30:062Sep 15 2008 009: 52337621976152myuser2udt2pts/52192.168.1.51215:31:312Sep 15 2008 Ive resorted to parsing the results of LISTUSER() to get what appears to be the correct information. Does anyone know of an easier alternative. Thanks, Bill Haskett Advantos Systems, Inc. 4370 La Jolla Village Drive, Suite 400 San Diego, CA 92122 ( 760-944-5570 x3000 (CA) ( 360-923-4838 (WA) --- 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/