亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3325 | 回復(fù): 9
打印 上一主題 下一主題

關(guān)于 RPGLE 程序中,對文件事務(wù)處理的困惑 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-04-18 22:52 |只看該作者 |倒序瀏覽
本帖最后由 happenZheng 于 2012-04-18 22:53 編輯

兩種情況:
1)在 F 表 文件聲明中, COMMIT 關(guān)鍵字,那么在 C 表中,每一個對文件的操作(增,刪,改)后,都有個COMMIT 操作碼跟沒有 COMMIT 操作碼,有什么區(qū)別?
2)在 F 表 文件聲明中,沒有 COMMIT 關(guān)鍵字,那么在 C 表中,每一個對文件的操作(增,刪,改)后,都有個COMMIT 操作碼跟沒有 COMMIT 操作碼,又有什么區(qū)別?

假設(shè)在調(diào)用該RPGLE 程序前,都對當前作業(yè)聲明了 STRCMTCTL 事務(wù)控制。
那么,如果調(diào)用程序后,ENDCMTCTL 后,對 1) 2)的操作記錄,會不會有什么影響??




專注于AS400開發(fā)

論壇徽章:
0
2 [報告]
發(fā)表于 2012-04-18 23:04 |只看該作者
幫頂, 見過這樣的程序,不過沒有debug過,都很想了解~~~大俠們賜教一下吧~~~

論壇徽章:
0
3 [報告]
發(fā)表于 2012-04-20 19:53 |只看該作者
1) F表有commit關(guān)鍵字:RPG程序中執(zhí)行commit,那么之前的改變就生效了。如果RPG程序中沒有執(zhí)行commit,那么就要看這個程序的上層程序最后是執(zhí)行commit還是rollback了
。如果上層執(zhí)行了commit,那么之前所有的改變也生效;如果上層程序執(zhí)行的事rollback,那么之前的改變就回滾了,相當于沒有做變更。

2)F表沒有commit關(guān)鍵字:那么在這個程序中,這個文件就沒有加事物處理,沒有加事物處理的話,當然也就不存在落實與回滾的問題。RPG程序中加不加commit都一樣,之前改變的記錄不會落實也不會回滾。上層程序的commit與rollback也不會影響到?jīng)]有加commit關(guān)鍵字的file。

論壇徽章:
1
操作系統(tǒng)版塊每日發(fā)帖之星
日期:2015-11-05 06:20:00
4 [報告]
發(fā)表于 2012-04-21 08:59 |只看該作者
樓上說的很多,自己寫測試程序就知道了

論壇徽章:
0
5 [報告]
發(fā)表于 2012-04-23 18:41 |只看該作者
niuhua77 發(fā)表于 2012-04-20 19:53
1) F表有commit關(guān)鍵字:RPG程序中執(zhí)行commit,那么之前的改變就生效了。如果RPG程序中沒有執(zhí)行commit,那么 ...


Andy,你的概念不清楚,認真研究一下事務(wù)處理,最好親自把上述lz的提問做個練習(xí)。

論壇徽章:
0
6 [報告]
發(fā)表于 2012-04-23 22:40 |只看該作者
簡單說下本人自己的觀點:某個文件定義了commit關(guān)鍵字之后,會提供一個數(shù)據(jù)回滾的機會。即執(zhí)行commit時數(shù)據(jù)改變生效,rollback時數(shù)據(jù)回滾(如果程序在退出前沒有任何commit和rollback時,它會自動回滾的)。如果沒有commit關(guān)鍵字的時候,是沒有回滾的機會的,也就是不論你執(zhí)行commit還是執(zhí)行了rollback,針對這個文件的數(shù)據(jù)改變都生效了。

論壇徽章:
0
7 [報告]
發(fā)表于 2012-04-30 22:05 |只看該作者
本帖最后由 happenZheng 于 2012-04-30 22:07 編輯

樓上正解。順便說下,當你ENDCMTCTL 或是SIGNOFF 系統(tǒng)默認執(zhí)行的是一個ROLLBACK操作。

請參見:
http://72891.cn/thread-310661-1-1.html



專注于AS400




論壇徽章:
0
8 [報告]
發(fā)表于 2012-05-01 09:13 |只看該作者
本帖最后由 passthru 于 2012-05-01 09:29 編輯

我來說兩句吧。

400平臺下事務(wù)處理是針對一個交流流采取一系列的數(shù)據(jù)控制。比如某個交易流有多個處理節(jié)點,分別有序的涉及到數(shù)據(jù)文件數(shù)據(jù)變化,而這些文件都在事務(wù)處理控制范圍,且文件標識都加到日志接收文件中。交流流可以根據(jù)事務(wù)控制的完整性,即交易流從STRJRNCTL處理節(jié)點開始,到ENDJRNCTL處理節(jié)點,處理節(jié)點進行有序的處理。如果處理流中的處理節(jié)點都沒有出錯,都滿足處理條件,且都有成功數(shù)據(jù),在處理節(jié)點ENDJRNCTL之前,就COMMIT,否則則失敗,交易數(shù)據(jù)就ROLBAK。如果這個交易流因為業(yè)務(wù)的需要,把這個處理流分段處理,每一段處理流處理節(jié)點都成功處理,如果這段處理流的處理結(jié)果,不會影響后續(xù)處理流的處理,即不受后續(xù)處理結(jié)果的影響,就COMMIT;否則就根據(jù)后續(xù)處理節(jié)點序列處理結(jié)果,成功就COMMIT,否則就ROLBAK。交易流處理直至處理節(jié)點ENDJRNCTL。

在處理節(jié)點RPGLE中,如果在F表定義了COMMIT鍵字,表明這個RPGLE處理節(jié)點可以做COMMIT,或ROLBCK處理操作。如果這個處理節(jié)點沒有這兩個操作動作之一,且F表定義定義了COMMIT鍵字,也不影響處理節(jié)點的處理和后續(xù)處理節(jié)點的處理。

論壇徽章:
0
9 [報告]
發(fā)表于 2013-01-08 09:02 |只看該作者
as400和普通的數(shù)據(jù)庫事務(wù)處理有些區(qū)別,我這里有示例你可以參考:
http://blog.chinaunix.net/uid-2271579-id-3463609.html

論壇徽章:
0
10 [報告]
發(fā)表于 2013-09-12 22:44 |只看該作者
回復(fù) 9# li6612773

已轉(zhuǎn)走,不過,還是得注意下,事務(wù)鎖跟游標鎖的區(qū)別。


   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP