Hi Jon,
Thanks a lot for your comments, I just read your article which is a really
good basics to discuss with the client.
As far as I can estimate he uses 6 of these 7 deadly signs:
- all programs (except triggers, that run in a named activation group! An
other deadly sign at least if commitment control is used!) run in the
default activation group (or better are created with activation group
*CALLER)
- To close files RCLRSC is used.
- Because he's working in an ILE environment (haha), after the RCLRSC and
sometimes RCLACTGRP *ELIGIBLE is executed!
The only deadly sign he didn't use, is to change the override scope in the
override command.
After changing everything to default activation group, I found out he did an
override for ALL printerfiles and overwrote my printer file. So I had add an
override to set the overriden parameters back to the original values.
He already expressed against my manager (who unfortunately is no programmer
but sales man):
He had around 40,000 programs running in this way, without problems.
Service programs and Prototyping (an other problem when he send me a
parameter with the wrong definition) are not necessary.
And he don't want to add an RCLACTGRP(MyActGrp) to around 150 programs!
Until now I already wasted 2 days, to get my programs and service programs
run in his environment.
In this time I could have added the RCLACTGRP(MyActGrp) into his 150
programs several times.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
-----Ursprüngliche Nachricht-----
Von: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx] Im
Auftrag von Jon Paris
Gesendet: Thursday, July 10, 2008 16:39
An: rpg400-l@xxxxxxxxxxxx
Betreff: Re: MCH3402 - and Built-In-Function %OPEN
On 10-Jul-08, at 7:54 AM, rpg400-l-request@xxxxxxxxxxxx wrote:
As far as good and everything run ok. But then our client saw the
named
activation groups and insited on only using the default activation
group.
("The former software did not use named activation groups!")
In this way I had to change the activation group of all my programs
and
service programs to activation group caller. Even though I predicted
several
problems. But the client is the king!
An a lot of problems came up. First he overwrote my printerfile and
a couple
of other things, but that's an other point.
And problems will continue and continue and continue and ...
The client is not always right. In this case he is just plain wrong!
The simple fact of the matter is that IBM's original intent was that
ILE programs would not run in the Default AG (DAG). Period. That
restriction had to be relaxed for a number of reasons - but it is
important for your client to understand that this was the original
design point. The problems generally surface when using Service
Programs in the DAG - and specifically when those Service Programs use
files. Once you are in that mode you can pretty much guarantee that
you will have problems. They can be surmounted, but often at the
expense of additional coding and design compromises. And once one
problem is dealt with another will arise. You already have experience
of this! These problems will continue for the life of the software.
The whole point of using Service Programs is simple and safe re-use.
Your client is guaranteeing that your Service programs will be
neither. Both you and anyone who subsequently uses the Service
programs and/or modify the application will have to know ILE inside
and out to make changes safely. If you go back to using ILE as it was
designed and intended to be used, these problems will disappear.
I would point out to the client that:
1) The fact that the previous software designers did things the wrong
way is no reason to continue to do so.
2) He is building a maintenance and reliability nightmare for himself
3) Other programmers will be able to use and safely modify your design
much more easily and safely that the half-assed approach he is forcing
you to take.
4) If he owns a BMW he _could_ use it to tow a manure spreader on a
farm, but it wouldn't do a good job, would probably get stuck in the
field, and/or be permanently damaged. Much better to use the correct
tool for the job!
You could try pointing him at this article in the IBM Systems Magazine
(the one published by IBM!) - and tell him to note the first two
sins!
http://www.ibmsystemsmag.com/i5/developer/7923p1.aspx
Good luck - if he forces you to continue on the current path you are
going to need it!
Jon Paris
www.Partner400.com
www.SystemiDeveloper.com
As an Amazon Associate we earn from qualifying purchases.