Re: [U2] [UD] Corrupted compiled code
I'm not recalling customers reporting problems like this (except for one case I have with you, Bill regarding a program creating a print job that goes into a loop once every few years). Wally Terhune U2 Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA Tel: +1.720.475.8055 Email: wterh...@rs.com Web: www.rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Tuesday, December 20, 2011 8:40 PM To: U2 Mail List Subject: [U2] [UD] Corrupted compiled code I've been using UD for a number of years. I'm currently using v7.2.7. Occasionally, the compiled code gets corrupted. I notice when a client calls and indicates something doesn't work. Today I couldn't create an A/P check. After a few hours I tracked down the following message: In E:\Abo\BP\BP\_APCHECK at line 60 can not use debugger for background job In E:\Abo\BP\BP\_M.APCHECK at line 343 Phantom run basic error, exit 4. Line 60 of APCHECK looks like: IF GUIMODE THEN SuppressCRT = 1 ELSE SuppressCRT = 0 I figured I'd left a DEBUG statement in APCHECK when I called M.APCHECK (which executes APCHECK from a phantom). I didn't! Everything looked good. I finally added a simple VOC debug-record-writev to theAPCHECK program , recompiled it and reran the process. All worked fine! I took out the debug code and everything works fine. So, recompiling was all it took because the object code was corrupted somehow. Yesterday, I spent 12 hours tracking down an intermittent browser crash for one of our clients and finally came to a BUILD.HEADING program I've been using since 1995. What happened was that SYSTEM(2) was returning the value 1024 instead of 80. So, when I created a three line heading and centered stuff on each line, instead of 30 (or so) spaces created on each side of the heading line I had about 450. When the heading info was added to the ECL command the line was too long and barfed when it was executed. No error message appeared anywhere so it was with a lot of effort I was able to track this down. Upon adding a writev-debug-line and recompiling, everything started working just fine. I removed the debug line and all is working well. Naturally I've recompiled everything and rebooted the server, but this is a major pain in the a$$! Does anyone know why code that's been used for months, and maybe years, would get corrupted like this? Everything is compiled with the '-Z2' option and all cataloging is local (DIRECT FORCE). Thanks, Bill ___ 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] [UD] Corrupted compiled code
I've seen the problem going back 10+ years on UniData 5.X. The issue was reported to UniData, we worked with support for a while, but we never achieved the point of being able to identify the cause. This was on Solaris. A couple of years later, another client saw it in 6.X on AIX, but it was not reported to UniData - it happened with one program and was not reproducible once the steps Bill describes had been taken . Neither client elected to compile and re-catalog their software collection proactively. *DISCLAIMOR - the actual UniData version afflicted may be different from those indicated above - memory seems to get cheaper and less reliable as it ages Bob Wyatt -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wally Terhune Sent: Wednesday, December 21, 2011 8:55 AM To: U2 Users List Subject: Re: [U2] [UD] Corrupted compiled code I'm not recalling customers reporting problems like this (except for one case I have with you, Bill regarding a program creating a print job that goes into a loop once every few years). Wally Terhune U2 Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA Tel: +1.720.475.8055 Email: wterh...@rs.com Web: www.rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Tuesday, December 20, 2011 8:40 PM To: U2 Mail List Subject: [U2] [UD] Corrupted compiled code I've been using UD for a number of years. I'm currently using v7.2.7. Occasionally, the compiled code gets corrupted. I notice when a client calls and indicates something doesn't work. Today I couldn't create an A/P check. After a few hours I tracked down the following message: In E:\Abo\BP\BP\_APCHECK at line 60 can not use debugger for background job In E:\Abo\BP\BP\_M.APCHECK at line 343 Phantom run basic error, exit 4. Line 60 of APCHECK looks like: IF GUIMODE THEN SuppressCRT = 1 ELSE SuppressCRT = 0 I figured I'd left a DEBUG statement in APCHECK when I called M.APCHECK (which executes APCHECK from a phantom). I didn't! Everything looked good. I finally added a simple VOC debug-record-writev to theAPCHECK program , recompiled it and reran the process. All worked fine! I took out the debug code and everything works fine. So, recompiling was all it took because the object code was corrupted somehow. Yesterday, I spent 12 hours tracking down an intermittent browser crash for one of our clients and finally came to a BUILD.HEADING program I've been using since 1995. What happened was that SYSTEM(2) was returning the value 1024 instead of 80. So, when I created a three line heading and centered stuff on each line, instead of 30 (or so) spaces created on each side of the heading line I had about 450. When the heading info was added to the ECL command the line was too long and barfed when it was executed. No error message appeared anywhere so it was with a lot of effort I was able to track this down. Upon adding a writev-debug-line and recompiling, everything started working just fine. I removed the debug line and all is working well. Naturally I've recompiled everything and rebooted the server, but this is a major pain in the a$$! Does anyone know why code that's been used for months, and maybe years, would get corrupted like this? Everything is compiled with the '-Z2' option and all cataloging is local (DIRECT FORCE). Thanks, Bill ___ 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] [UD] Corrupted compiled code
Darn! I was hoping you'd remember something, like recompiling while someone is using the program in UO would corrupt the object is 18 days. Or, the GETPTR function returns 1024 via UO if the object is corrupted. I do not want to think our environment is unique. :-( Thanks again and have a nice holiday season. Bill - Original Message - *From:* wterh...@rocketsoftware.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 12/21/2011 5:55 AM *Subject:* Re: [U2] [UD] Corrupted compiled code I'm not recalling customers reporting problems like this (except for one case I have with you, Bill regarding a program creating a print job that goes into a loop once every few years). Wally Terhune U2 Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA Tel: +1.720.475.8055 Email: wterh...@rs.com Web: www.rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Tuesday, December 20, 2011 8:40 PM To: U2 Mail List Subject: [U2] [UD] Corrupted compiled code I've been using UD for a number of years. I'm currently using v7.2.7. Occasionally, the compiled code gets corrupted. I notice when a client calls and indicates something doesn't work. Today I couldn't create an A/P check. After a few hours I tracked down the following message: In E:\Abo\BP\BP\_APCHECK at line 60 can not use debugger for background job In E:\Abo\BP\BP\_M.APCHECK at line 343 Phantom run basic error, exit 4. Line 60 of APCHECK looks like: IF GUIMODE THEN SuppressCRT = 1 ELSE SuppressCRT = 0 I figured I'd left a DEBUG statement in APCHECK when I called M.APCHECK (which executes APCHECK from a phantom). I didn't! Everything looked good. I finally added a simple VOC debug-record-writev to theAPCHECK program , recompiled it and reran the process. All worked fine! I took out the debug code and everything works fine. So, recompiling was all it took because the object code was corrupted somehow. Yesterday, I spent 12 hours tracking down an intermittent browser crash for one of our clients and finally came to a BUILD.HEADING program I've been using since 1995. What happened was that SYSTEM(2) was returning the value 1024 instead of 80. So, when I created a three line heading and centered stuff on each line, instead of 30 (or so) spaces created on each side of the heading line I had about 450. When the heading info was added to the ECL command the line was too long and barfed when it was executed. No error message appeared anywhere so it was with a lot of effort I was able to track this down. Upon adding a writev-debug-line and recompiling, everything started working just fine. I removed the debug line and all is working well. Naturally I've recompiled everything and rebooted the server, but this is a major pain in the a$$! Does anyone know why code that's been used for months, and maybe years, would get corrupted like this? Everything is compiled with the '-Z2' option and all cataloging is local (DIRECT FORCE). Thanks, Bill ___ 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] [UD] Corrupted compiled code
Though I have to agree with Bob Wyatt: memory seems to get cheaper and less reliable as it ages :-( Wally Terhune U2 Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA Tel: +1.720.475.8055 Email: wterh...@rs.com Web: www.rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Wednesday, December 21, 2011 10:23 AM To: U2 Users List Subject: Re: [U2] [UD] Corrupted compiled code Darn! I was hoping you'd remember something, like recompiling while someone is using the program in UO would corrupt the object is 18 days. Or, the GETPTR function returns 1024 via UO if the object is corrupted. I do not want to think our environment is unique. :-( Thanks again and have a nice holiday season. Bill - Original Message - *From:* wterh...@rocketsoftware.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 12/21/2011 5:55 AM *Subject:* Re: [U2] [UD] Corrupted compiled code I'm not recalling customers reporting problems like this (except for one case I have with you, Bill regarding a program creating a print job that goes into a loop once every few years). ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Corrupted compiled code
It sounds crazy but humor me. I have seen when commands are imbedded in a variable name in some systems it has problems. That's why I go out of my way not to put them in my variable names. In this case CRT. Rename the variable and see what happens? It's a long shot but stranger things have happened. John W Hatherill -Original Message- From: Bill Haskett [mailto:wphask...@advantos.net] Sent: Tuesday, December 20, 2011 7:40 PM To: U2 Mail List Subject: [U2] [UD] Corrupted compiled code I've been using UD for a number of years. I'm currently using v7.2.7. Occasionally, the compiled code gets corrupted. I notice when a client calls and indicates something doesn't work. Today I couldn't create an A/P check. After a few hours I tracked down the following message: In E:\Abo\BP\BP\_APCHECK at line 60 can not use debugger for background job In E:\Abo\BP\BP\_M.APCHECK at line 343 Phantom run basic error, exit 4. Line 60 of APCHECK looks like: IF GUIMODE THEN SuppressCRT = 1 ELSE SuppressCRT = 0 I figured I'd left a DEBUG statement in APCHECK when I called M.APCHECK (which executes APCHECK from a phantom). I didn't! Everything looked good. I finally added a simple VOC debug-record-writev to theAPCHECK program , recompiled it and reran the process. All worked fine! I took out the debug code and everything works fine. So, recompiling was all it took because the object code was corrupted somehow. Yesterday, I spent 12 hours tracking down an intermittent browser crash for one of our clients and finally came to a BUILD.HEADING program I've been using since 1995. What happened was that SYSTEM(2) was returning the value 1024 instead of 80. So, when I created a three line heading and centered stuff on each line, instead of 30 (or so) spaces created on each side of the heading line I had about 450. When the heading info was added to the ECL command the line was too long and barfed when it was executed. No error message appeared anywhere so it was with a lot of effort I was able to track this down. Upon adding a writev-debug-line and recompiling, everything started working just fine. I removed the debug line and all is working well. Naturally I've recompiled everything and rebooted the server, but this is a major pain in the a$$! Does anyone know why code that's been used for months, and maybe years, would get corrupted like this? Everything is compiled with the '-Z2' option and all cataloging is local (DIRECT FORCE). Thanks, Bill ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Corrupted compiled code
On 21/12/11 17:38, Wally Terhune wrote: Though I have to agree with Bob Wyatt: memory seems to get cheaper and less reliable as it ages :-( I was thinking memory ... possibly bad? Does Unidata store its programs in shared memory? Could the memory have got corrupted and it takes a recompile to move it and reset it? Long shot I know, but stranger things have happened (and as memory gets faster and the lines get narrower, random corruption gets more likely). Cheers, Wol ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] [UD] Corrupted compiled code
I was actually thinking of my personal memory about UniData problems reported these past 21 years. Bill said his programs were CATALOG ... DIRECT - so unless he places his source files under UDTHOME\sys\CTLG - his object code is not managed by sbcs or stored in shared memory. Each udt process will have to malloc private memory to load all of the objects it runs. Each time he starts a new udt process and runs the problem program, that object code is read from disk and loaded into private process memory. There isn't any cache or such for this application setup. Wally Terhune U2 Support Architect Rocket Software 4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA Tel: +1.720.475.8055 Email: wterh...@rs.com Web: www.rocketsoftware.com/u2 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Wols Lists Sent: Wednesday, December 21, 2011 1:54 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] [UD] Corrupted compiled code On 21/12/11 17:38, Wally Terhune wrote: Though I have to agree with Bob Wyatt: memory seems to get cheaper and less reliable as it ages :-( I was thinking memory ... possibly bad? Does Unidata store its programs in shared memory? Could the memory have got corrupted and it takes a recompile to move it and reset it? Long shot I know, but stranger things have happened (and as memory gets faster and the lines get narrower, random corruption gets more likely). Cheers, Wol ___ 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] Is there any ORM's for Universe. NHibernate, Entity Framework etc
From : Adrian Halid Has anybody tried or found an ORM for Universe. I am looking at something along the lines of NHibernate or Entity Framework. [AD] Yes, and to my knowledge there is only one. mv.NET includes a component called Solution Objects. You start with your standard dictionary defs. You add details required for strongly typed properties to create Extended definitions. You then define business objects which aggregate files and BASIC rules, and define strongly typed collections and relationships amongst the various classes. Then you generate C# or VB.NET code which you then compile into a DLL. The new modules are as capable as those of NHibernate or EF for validating data, supporting read-only properties, managing cascading updates, etc. You have all of the source and can walk through and change the functionality if required. The code is generated off of templates (like CodeSmith) which you can change to effect global changes to your apps. Direct file read/write is managed for you, or you can choose to have I/O go through your BASIC code (which is more in-line with the way we all prefer to do it). You can give your finalized library to clients or colleagues to represent their view into your platform. Some VARs want to offer their more sophisticated clients a new advanced interface into the app - this is it. Give them a DLL and support it just like any other component of your app (for free or fee). As a service I offer to build and support SDKs like this for VARs. Since you're in Australia, I recommend you contact T-Data Pty Ltd, as they are your regional resellers for mv.NET. As a worldwide Distributor I'll also be happy to answer all questions, and to provide mv.NET and related development services. Before Solution Objects, I created a MV provider for CSLA and ..netTiers, and I wrote my own Visual Studio plugin which generates strongly typed classes from a MV datasource. I was also writing a plugin based on the FOSS SQLite provider, which allows all Database Explorer functionality from VS, so that we could create EF libraries from MV as easily as we could from SQL Server. This was fun and the tools were very useful to me for that kind of work. But given that there is almost no market in this community for such things, and my time for tool development was limited, I decided to direct all of my efforts in this area toward helping to make Solution Objects the kind of solution that we all want in this kind of tool. There really isn't anything else like this in this market, so not only is mv.NET Solution Objects the only option, but it also happens to be a very good one. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET and other Pick/MultiValue products worldwide, and provides related development services remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! http://Twitter.com/TonyGravagno ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework etc
[AD] Actually, there is another alternative. FusionWare's Managed Provider allows you to create a strongly typed dataset, and you can use this to create a Data Access Layer. The strongly typed dataset is actually a Microsoft DataSet object, not a proprietary object of any sort. To see more, view any of the Nothin' but .NET series at http://www.youtube.com/fusionwareint We also provide similar functionality for Java environments through our Java Data Adapter. [/AD] -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: December-21-11 1:31 PM To: u2-users@listserver.u2ug.org Subject: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework etc From : Adrian Halid Has anybody tried or found an ORM for Universe. I am looking at something along the lines of NHibernate or Entity Framework. [AD] Yes, and to my knowledge there is only one. mv.NET includes a component called Solution Objects. You start with your standard dictionary defs. You add details required for strongly typed properties to create Extended definitions. You then define business objects which aggregate files and BASIC rules, and define strongly typed collections and relationships amongst the various classes. Then you generate C# or VB.NET code which you then compile into a DLL. The new modules are as capable as those of NHibernate or EF for validating data, supporting read-only properties, managing cascading updates, etc. You have all of the source and can walk through and change the functionality if required. The code is generated off of templates (like CodeSmith) which you can change to effect global changes to your apps. Direct file read/write is managed for you, or you can choose to have I/O go through your BASIC code (which is more in-line with the way we all prefer to do it). You can give your finalized library to clients or colleagues to represent their view into your platform. Some VARs want to offer their more sophisticated clients a new advanced interface into the app - this is it. Give them a DLL and support it just like any other component of your app (for free or fee). As a service I offer to build and support SDKs like this for VARs. Since you're in Australia, I recommend you contact T-Data Pty Ltd, as they are your regional resellers for mv.NET. As a worldwide Distributor I'll also be happy to answer all questions, and to provide mv.NET and related development services. Before Solution Objects, I created a MV provider for CSLA and ..netTiers, and I wrote my own Visual Studio plugin which generates strongly typed classes from a MV datasource. I was also writing a plugin based on the FOSS SQLite provider, which allows all Database Explorer functionality from VS, so that we could create EF libraries from MV as easily as we could from SQL Server. This was fun and the tools were very useful to me for that kind of work. But given that there is almost no market in this community for such things, and my time for tool development was limited, I decided to direct all of my efforts in this area toward helping to make Solution Objects the kind of solution that we all want in this kind of tool. There really isn't anything else like this in this market, so not only is mv.NET Solution Objects the only option, but it also happens to be a very good one. HTH Tony Gravagno Nebula Research and Development TG@ remove.pleaseNebula-RnD.com Nebula RD sells mv.NET and other Pick/MultiValue products worldwide, and provides related development services remove.pleaseNebula-RnD.com/blog Visit PickWiki.com! Contribute! http://Twitter.com/TonyGravagno ___ 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] [UD] Corrupted compiled code
On 21/12/11 20:59, Wally Terhune wrote: I was actually thinking of my personal memory about UniData problems reported these past 21 years. I got that. It just seemed a nice intro to what I thought was a possibility. But seeing as I was thinking of INFORMATION, I knew it was a long shot. Cheers, Wol ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Corrupted compiled code
The incredibly weird thing was the code would do: TclLine = {whatever} TclLine := etc, etc, etc ReportHeader = CLIENT BANK ACCOUNT TOTALS: @AM ReportHeader := FOR MONTH November 2011: @AM ReportHeader := CALL BUILD.HEADING ( ReportHeader, AddLineInHdr, PrintSw ) TclLine := \HEADING \ : ReportHeader : \ FOOTING \ : ReportFooter : \\ EXECUTE TclLine ...the TclLine variable should look like: sort BANKBOOK WHEN CLIENTNO.RSTR = 0 BY-EXP CLIENTNO BY ATYPE_ACCTNO BY ATYPE_DESC ID-SUPP BREAK.SUP 'DO' CLIENTNO CLIENT NO BNAMES ATYPE_DESCS ATYPE_ACCTNOS TOTAL CURRBAL HEADING Run by-: WPHASKETT CLIENT BANK ACCOUNT TOTALS Page: 'PL' Menu No: BANK 4.3.5 FOR MONTH November 2011Date: 20 Dec 2011'L' Account: CustomerAcct Time: 12:40PM'L' FOOTING 'L'(C) Copyright 'D', Advantos Systems, Inc. All Rights Reserved. NI-SUPP ...which they all did except, occasionally, on this one account. The calculation of the amount of spaces to center the report heading data used SYSTEM(2) and GETPTR in the subroutine BUILD.HEADING. For some reason the corrupted value was 1024 instead of actual value of 80. Thus, when I displayed the TclLine variable, it looked like the one above, except when everything failed, whereupon the variable looked like: sort BANKBOOK WHEN CLIENTNO.RSTR = 0 BY-EXP CLIENTNO BY ATYPE_ACCTNO BY ATYPE_DESC ID-SUPP BREAK.SUP 'DO' CLIENTNO CLIENT NO BNAMES ATYPE_DESCS ATYPE_ACCTNOS TOTAL CURRBAL HEADING Run by-: WPHASKETT CLIENT BANK ACCOUNT TOTALS Page: 'PL'Menu No: BANK 4.3.5 FOR MONTH November 2011 Date: 20 Dec 2011'L'Account: CustomerAcct Time: 12:40PM'L' FOOTING 'L'(C) Copyright 'D', Advantos Systems, Inc. All Rights Reserved. NI-SUPP ...which wrecks havoc when executed and nowhere was the error logged; so it took me forever to find this. Now, I've been known to follow the wrong path when programming, but you'd think, after 20 years, I could figure out how to build and execute a tcl command in BASIC, and what I build is what is executed. A recompile of BUILD.HEADING fixed this problem, so I'm not sure what happened. My only thought is the object got corrupted during a session. Bill - Original Message - *From:* jhather...@hipco.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 12/21/2011 12:27 PM *Subject:* Re: [U2] Corrupted compiled code It sounds crazy but humor me. I have seen when commands are imbedded in a variable name in some systems it has problems. That's why I go out of my way not to put them in my variable names. In this case CRT. Rename the variable and see what happens? It's a long shot but stranger things have happened. John W Hatherill -Original Message- From: Bill Haskett [mailto:wphask...@advantos.net] Sent: Tuesday, December 20, 2011 7:40 PM To: U2 Mail List Subject: [U2] [UD] Corrupted compiled code I've been using UD for a number of years. I'm currently using v7.2.7. Occasionally, the compiled code gets corrupted. I notice when a client calls and indicates something doesn't work. Today I couldn't create an A/P check. After a few hours I tracked down the following message: In E:\Abo\BP\BP\_APCHECK at line 60 can not use debugger for background job In E:\Abo\BP\BP\_M.APCHECK at line 343 Phantom run basic error, exit 4. Line 60 of APCHECK looks like: IF GUIMODE THEN SuppressCRT = 1 ELSE SuppressCRT = 0 I figured I'd left a DEBUG statement in APCHECK when I called M.APCHECK (which executes APCHECK from a phantom). I didn't! Everything looked good. I finally added a simple VOC debug-record-writev to theAPCHECK program , recompiled it and reran the process. All worked fine! I took out the debug code and everything works fine. So, recompiling was all it took because the object code was corrupted somehow. Yesterday, I spent 12 hours tracking down an intermittent browser crash for one of our clients and finally came to a BUILD.HEADING program I've been using since 1995. What happened was that SYSTEM(2) was returning the value 1024 instead of 80. So, when I created a three line heading and centered stuff on each line, instead of 30 (or so) spaces created on each side of the heading line I had about 450. When the heading info was added to the ECL command the line was too long and barfed when it was executed. No error message appeared anywhere so it was with a lot of effort I was able to track this down. Upon adding a writev-debug-line and recompiling, everything started working just fine. I removed the debug line and all is working well. Naturally I've recompiled everything and rebooted the server, but this is a major pain in
Re: [U2] Corrupted compiled code
On 12/21/2011 4:45 PM, Bill Haskett wrote: The incredibly weird thing was the code would do: snip ...which they all did except, occasionally, on this one account. The calculation of the amount of spaces to center the report heading data used SYSTEM(2) and GETPTR in the subroutine BUILD.HEADING. For some reason the corrupted value was 1024 instead of actual value of 80. Thus, when I displayed the TclLine variable, it looked like the one above, except when everything failed, whereupon the variable looked like: snip System(2) is set by the TERM command. Perhaps it's getting reset under some obscure circumstances? -- allen egerton; aeger...@pobox.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Corrupted compiled code
Maybe you could save off the compiled program before recompiling. David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Bill Haskett Sent: Wednesday, December 21, 2011 3:12 PM To: U2 Users List Subject: Re: [U2] Corrupted compiled code The reason I suspected object corruption is I've also had a simple data entry program fail to write one of a number of records, even though 100,000 writes occur fine. The write code looked like, after files have been read locked tested for locked status: 1274 WRITE INVOICEREC ON ARINVOICES, INVOICEID 1275 WRITE INVOICEREC ON ARHISTORY, INVOICEID 1276 WRITE CUSTREC ON ARCUSTOMER, CUSTID ...and the customer record was _NOT_ written. There are no subroutines, or anything else. The 3rd write just didn't occur. A recompile resolved the problem. It's possible the SYSTEM parameter was reset but it's set just before the tcl command was built and the BUILD.HEADING subroutine is called. Once things like this occur I have to fix them, thus my ability to re-create the problem to U2, or any other vendor for that matter, is very limited. Bill - Original Message - *From:* aeger...@pobox.com *To:* U2 Users List u2-users@listserver.u2ug.org *Date:* 12/21/2011 1:59 PM *Subject:* Re: [U2] Corrupted compiled code On 12/21/2011 4:45 PM, Bill Haskett wrote: The incredibly weird thing was the code would do: snip ...which they all did except, occasionally, on this one account. The calculation of the amount of spaces to center the report heading data used SYSTEM(2) and GETPTR in the subroutine BUILD.HEADING. For some reason the corrupted value was 1024 instead of actual value of 80. Thus, when I displayed the TclLine variable, it looked like the one above, except when everything failed, whereupon the variable looked like: snip System(2) is set by the TERM command. Perhaps it's getting reset under some obscure circumstances? ___ 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] Corrupted compiled code
ASSIGN will also modify SYSTEM(2). Although I can't seem to find the documentation for it. David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Allen Egerton Sent: Wednesday, December 21, 2011 3:00 PM To: U2 Users List Subject: Re: [U2] Corrupted compiled code On 12/21/2011 4:45 PM, Bill Haskett wrote: The incredibly weird thing was the code would do: snip ...which they all did except, occasionally, on this one account. The calculation of the amount of spaces to center the report heading data used SYSTEM(2) and GETPTR in the subroutine BUILD.HEADING. For some reason the corrupted value was 1024 instead of actual value of 80. Thus, when I displayed the TclLine variable, it looked like the one above, except when everything failed, whereupon the variable looked like: snip System(2) is set by the TERM command. Perhaps it's getting reset under some obscure circumstances? -- allen egerton; aeger...@pobox.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Corrupted compiled code
This is a long shot, but Wally's mention of malloc made me wonder... could there be any software (virus checking or otherwise) that's working on memory objects, not disk files? -Kevin http://www.PrecisOnline.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework etc
Robert, sincere apologies, and thanks for the correction. To avoid misunderstandings, there is a huge difference between a DataSet and a strongly typed business object. They are sometimes used alternatively but there are times when one or the other is absolutely required. If ORM was as simple as returning a dataset we wouldn't have a need for ORM frameworks like NHibernate, CSLA, or commercial offerings like the Telerik OpenAccess ORM. Here is one excellent QA on the topic: http://stackoverflow.com/questions/657327/is-dataset-an-orm [Another obligatory AD tag here I guess] The word proprietary may prompt some discussion: Every framework does what it does in a unique fashion, that's what differentiates it from others. In this regard, all commercial and FOSS frameworks are proprietary. But I did mention that the source which mv.NET generates is completely open, as are the templates that it uses. The generated classes are all partial which means you can modify the generated code. But preferred and better, partial stub classes are also generated which allow developers to hook into functionality at many key points. Generate the base classes as many times as you want and never lose your mods. In the context of the request for an ORM, people actually do want to generate DLLs which are proprietary to their own application. There's nothing wrong with that, that's the goal, and that's exactly what mv.NET helps VARs to generate. I position this as a feature. In addition to Solution Objects and the code generator component, mv.NET also includes the Adapter Objects library which renders collections of items as a strongly-typed DataSet, with Tables, Rows, Columns, etc. UO.NET has similar functionality. All this, yes, and much much more, are included in the same reasonably priced offering. Now, mv.NET does Not have any functionality related to Java. If you need to deploy over *nix or you're creating JARs for existing Java clients, then I highly recommend investigation of FusionWare's offerings as a valuable superset of UOJ. As an independent developer, my position in this game of tool sales is different from others. I sell specific software packages because I like them - I don't like them because I sell them. I won't sell software or services to a company if I know there's a better solution for a specific need. So I recommend that anyone interested in connectivity above and beyond UO should look at all of the options. If it turns out that someone likes the same tools I like, great, the commission earns me a cup of coffee for my time. If not, I hope to benefit by learning why people made other choices. It's all about solutions, not tools - or should be anyway. T From: Robert Houben [AD] Actually, there is another alternative. FusionWare's Managed Provider allows you to create a strongly typed dataset, and you can use this to create a Data Access Layer. The strongly typed dataset is actually a Microsoft DataSet object, not a proprietary object of any sort. To see more, view any of the Nothin' but .NET series at http://www.youtube.com/fusionwareint We also provide similar functionality for Java environments through our Java Data Adapter. [/AD] ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Corrupted compiled code
I don't know. I compile a lot in development and have SEP installed. You'd think it would wreck havoc, but one never knows. But, as Wally said, since I catalog locally sbcs shouldn't be involved. I'm not familiar with memory management for Windows UniData. :-( Bill - Original Message - *From:* precisonl...@gmail.com *To:* dgr...@dagconsulting.com, U2 Users List u2-users@listserver.u2ug.org *Date:* 12/21/2011 5:37 PM *Subject:* Re: [U2] Corrupted compiled code This is a long shot, but Wally's mention of malloc made me wonder... could there be any software (virus checking or otherwise) that's working on memory objects, not disk files? -Kevin http://www.PrecisOnline.com ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework etc
Hi Tony, Within ADO.NET there is a concept called a Strongly Typed DataSet, which, if your Managed Provider supports the correct interfaces, Microsoft will auto-generate for you from a regular DataSet (which as you note is not strongly typed). The resulting Strongly Typed DataSet is a strongly typed business object, which will reject passing a String to a Date type, for instance, and will reject it at compile-time, not run-time. Wrap it with a simple DAL and you get a very powerful business object that can support a wide variety of clients. The DAL allows you to customize your accessors and expose data directly or through SOAP or RESTful Web Services. In order to support Silverlight, which does not support the System.Data assembly due to browser sandbox restrictions, we auto-generate classes for Silverlight, which can be used in other places, too, but we have found that the Strongly Typed DataSet and DAL are a very powerful combination, and where useable are more than adequate. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Tony Gravagno Sent: December-21-11 7:43 PM To: u2-users@listserver.u2ug.org Subject: Re: [U2] Is there any ORM's for Universe. NHibernate, Entity Framework etc Robert, sincere apologies, and thanks for the correction. To avoid misunderstandings, there is a huge difference between a DataSet and a strongly typed business object. They are sometimes used alternatively but there are times when one or the other is absolutely required. If ORM was as simple as returning a dataset we wouldn't have a need for ORM frameworks like NHibernate, CSLA, or commercial offerings like the Telerik OpenAccess ORM. Here is one excellent QA on the topic: http://stackoverflow.com/questions/657327/is-dataset-an-orm [Another obligatory AD tag here I guess] The word proprietary may prompt some discussion: Every framework does what it does in a unique fashion, that's what differentiates it from others. In this regard, all commercial and FOSS frameworks are proprietary. But I did mention that the source which mv.NET generates is completely open, as are the templates that it uses. The generated classes are all partial which means you can modify the generated code. But preferred and better, partial stub classes are also generated which allow developers to hook into functionality at many key points. Generate the base classes as many times as you want and never lose your mods. In the context of the request for an ORM, people actually do want to generate DLLs which are proprietary to their own application. There's nothing wrong with that, that's the goal, and that's exactly what mv.NET helps VARs to generate. I position this as a feature. In addition to Solution Objects and the code generator component, mv.NET also includes the Adapter Objects library which renders collections of items as a strongly-typed DataSet, with Tables, Rows, Columns, etc. UO.NET has similar functionality. All this, yes, and much much more, are included in the same reasonably priced offering. Now, mv.NET does Not have any functionality related to Java. If you need to deploy over *nix or you're creating JARs for existing Java clients, then I highly recommend investigation of FusionWare's offerings as a valuable superset of UOJ. As an independent developer, my position in this game of tool sales is different from others. I sell specific software packages because I like them - I don't like them because I sell them. I won't sell software or services to a company if I know there's a better solution for a specific need. So I recommend that anyone interested in connectivity above and beyond UO should look at all of the options. If it turns out that someone likes the same tools I like, great, the commission earns me a cup of coffee for my time. If not, I hope to benefit by learning why people made other choices. It's all about solutions, not tools - or should be anyway. T From: Robert Houben [AD] Actually, there is another alternative. FusionWare's Managed Provider allows you to create a strongly typed dataset, and you can use this to create a Data Access Layer. The strongly typed dataset is actually a Microsoft DataSet object, not a proprietary object of any sort. To see more, view any of the Nothin' but .NET series at http://www.youtube.com/fusionwareint We also provide similar functionality for Java environments through our Java Data Adapter. [/AD] ___ 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