IMHO the COMMIT / ROLLBACK actions should belong in the part where the
business logic is lodged. This enables re-use of the underlying queries.
Tieing (.. Is that spelled correctly? Somehow that word seems...
Wrong-ish) the commit/rollback too deeply in hierarchy makes combining
the loose queries awkward (or even impossible). So I believe strongly in
developing loose queries, without commitment control allowing me to
combine all kinds or queries, and this combining is a part of the
business logic. The business logic is the part which defines when a
transaction is complete thus there the control over commitment control
should be placed.
That opens up another discussion over where the business logic should be
placed. :)
Cor
-----Original Message-----
From: rpg400-l-bounces+cor.takken=logicacmg.com@xxxxxxxxxxxx
[mailto:rpg400-l-bounces+cor.takken=logicacmg.com@xxxxxxxxxxxx] On
Behalf Of Wilt, Charles
Sent: maandag 20 augustus 2007 23:03
To: RPG programming on the AS400 / iSeries
Subject: MVC Architecture and transactions
All,
Just wanted to open a discussion regarding MVC architecture and
transaction support.
Basically, which piece ideally handles doing the COMMIT or ROLLBACK?
Does the answer change when dealing with green-screen programs where the
view & controller are combined into a single program?
My stance is that the COMMIT / ROLLBACK belongs in the model portion.
The controller will be calling a procedure that either commits or rolls
back as required.
However, another developer prefers having the controller do the commit /
rollback. Besides "having been bit in that past" by procedures that do
their own commit/rollback, his argument is that you should avoid side
effects in a procedure. I can see his point if for instance, you've got
a current procedure that does one standalone function. Then in the
future, you come up with a new function, which wants to reuse the prior
function as part of a larger transaction.
The only thing I can think of would be to have a extra parm passed in to
the function which tells it if it is a standalone transaction or part of
a larger one.
Thoughts, comments, arguments for or against?
Thanks,
Charles Wilt
Software Engineer
CINTAS Corporation - IT 92B
513.701.1307
wiltc@xxxxxxxxxx <mailto:wiltc@xxxxxxxxxx>
This e-mail transmission contains information that is intended to be
confidential and privileged. If you receive this e-mail and you are not
a named addressee you are hereby notified that you are not authorized to
read, print, retain, copy or disseminate this communication without the
consent of the sender and that doing so is prohibited and may be
unlawful. Please reply to the message immediately by informing the
sender that the message was misdirected. After replying, please delete
and otherwise erase it and any attachments from your computer system.
Your assistance in correcting this error is appreciated.
--
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing
list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe,
unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you.
As an Amazon Associate we earn from qualifying purchases.