× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Jay, I said you MUST issue a commit or ROLLBACK understanding that you did
some UPDATEs and INSERTs or DELETEs.
1. If you did, and by accident your program has the COMMIT, say, within a
logic that won't go through, you will miss the COMMIT, and the pending
changes will only give you problems. The same with the ROLLBACK.
2. If you didn't make any changes, then it's clear you don't have to issue
any of them. Here we are talking about making changes, and I may have left
that so obvious. In that case, use a global flag variable that will
indicate that a commit needs to be issued, and another for indicating that
there were errors and you need to undo them so as to issue a ROLLBACK. If
none is *on, don't use any.
3. The COMMIT and ROLLBACK should be at top level logic or programs in the
call stack, and not in the middle. You may not get a ROLLBACK for all
chanes if some program deep in the call stack issued a COMMIT for what it
changed.
4. Another important issue is that when an SQL program is compiled to close
cursors with the *ENDACTGRP, I personally had many issues with null pointer
exceptions coming from previous, erroneously left open cursors that lost
their scope. It was really hard to find that one. That was because I
mistakenly didn't close the cursor. In my experience, I prefer to use
*ENDMOD.

JS





El vie, 26 jul 2024 a las 4:54, Jay Vaughn (<jeffersonvaughn@xxxxxxxxx>)
escribió:

Birgitta thank you very much.
So with all that you have stated, it confirms my understanding of
commitment control is quite clear.

In my original post, imagine that is an api pgm in a cgi job. Because it
starts with *new and all others are *caller I should have satisfactory
results under commitment control with all the points I laid out.

If you see anything in my original post that doesn’t sound right, that’s
really what I’m looking for here in my inquiry here in this forum… not “how
does commitment control work in general.


Thanks

Jay


On Jul 26, 2024, at 6:45 AM, Jay Vaughn <jeffersonvaughn@xxxxxxxxx>
wrote:

I’m sorry Javier but I found a few of your statements about commitment
control to not be true at all.
Saying you MUST issue a commit is not true.. as one of those examples.

If anyone who knows commitment control would be interested I confirming
my original post of how I think commitment control works I would appreciate
that.

Thanks

Jay

On Jul 25, 2024, at 10:31 PM, Mark Waterbury <
mark.s.waterbury@xxxxxxxxxxxxx> wrote:

 Done. And this is on the list, so ... :D
On Thursday, July 25, 2024 at 10:30:17 PM EDT, Javier Sanchez <
javiersanchezbarquero@xxxxxxxxx> wrote:

Wow, thanks! Can you share it with Alan? He asked for it.

El jue, 25 jul 2024 a las 20:21, Mark Waterbury (<
mark.s.waterbury@xxxxxxxxxxxxx>) escribió:

Javier,

I found a copy of it here:



https://authory.com/JonParisAndSusanGantner/The-Seven-Deadly-Sins-of-ILE-a0f4e66fe37a745c8bdf7cbc95f0b365f


If you look here:

https://authory.com/JonParisAndSusanGantner/

there are hundreds of their articles from over the years. :-)

All the best,

Mark S. Waterbury

On Thursday, July 25, 2024 at 09:26:26 PM EDT, Javier Sanchez <
javiersanchezbarquero@xxxxxxxxx> wrote:

I got a handout of one of her sessions when I attended the RPG Summit
in
the fall of 2015. There she summarized what the 7 deadly sins are and
also has a link to the document but it's not reachable.

Summarizing, though, here's the 7 sins:

1. Run ILE programs in the Default ILE Activation Group (DAG)
Use ILE named Activation Groups instead (such as QILE)
2. Run Service Programs in the DAG
Can be an even bigger problem than #1
3. Use *NEW by default, rather than by design
Until V5R3, *NEW was the default on the CRTPGM command
4. Using *CALLER as the default Activation Group value
Tends to cause problem #1 if you're not careful
5. Failure to use RCLACTGRP only when necessary
5b. Using RCLACTGRP(*ELIGIBLE) in production code at all
6. Allow scoping parameters to default to system-shipped
defaults
7. Use of the RCLRSC command

Its impact is variable depending on where used and on what type of
programs

I do not have the full document, if there is one.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related
questions.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.


--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription
related questions.

--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: https://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives
at https://archive.midrange.com/midrange-l.

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.