AIX | HP-UX | Linux | OS/2 | OS/390 | OS/400 | PTX | SUN | Win NT |
X | X | X | X | X | X | X | X | X |
目的
指定 SQL 指令的異動範圍,來決定 Net.Data 是在 HTML 區塊中各個 SQL 指令順利完成之後或是所有 SQL 指令順利完成之後 發出 COMMIT。若您設定的是所有 SQL 指令必需在發出確定前順利完成, 只要有一個 SQL 指令沒有順利完成,都會使先前對該區塊 同一資料庫所執行的 SQL 全數回復。
為了讓 TRANSACTION_SCOPE 變數生效,請在 Net.Data 架構檔的 ENVIRONMENT 陳述式中併入此變數。然後,即可使用 DEFINE 陳述式或 @DTW_ASSIGN() 函數, 指定這個變數的值。
一致性注意事項: 在 OS/400 和 OS/390 以外的平台上, 那麼對收到失敗回應之資料庫所作的更新, 可能會被回復,然如果下列條件全部成立的話,同一 HTML 區塊中對其它資料庫所作的更新, 卻可能被確定:
如果您是從 OS/400 上的 Net.Data 存取多個資料庫,或是使用 IBM 的 DataJoiner 軟體, 那麼當您從 Net.Data 更新時,即可取得多個資料庫更新協調和一致性。
在 OS/400 和 OS/390 上, 如果 TRANSACTION_SCOPE = "MULTIPLE" , 則所有從單個 HTML 區塊發出的 IBM 資料庫更新,將一起確定或回復。
在 OS/400 以外的作業系統上, REXX、Perl 和 Java 語言環境在它們自己獨立的作業系統處理作業當中執行。因此, 不管 Net.Data TRANSACTION_SCOPE 值是什麼, 只要是發自這些語言環境的資料庫更新, 其確定或回復都與發自某個 Net.Data 巨集的資料庫更新互不影響。
值
TRANSACTION_SCOPE="SINGLE"|"MULTIPLE"
值 | 說明 |
---|---|
SINGLE | 只要 HTML 區塊中的每一個 SQL 指令順利完成, Net.Data 就會發出 COMMIT。 |
MULTIPLE | Net.Data 只會在 HTML 區塊中所有的 SQL 指令都順利完成之後, 才會發出 COMMIT。 MULTIPLE 是預設值。 |
範例
範例 1:指定在每一個異動之後發出 COMMIT
%DEFINE TRANSACTION_SCOPE="SINGLE"