{"id":1020,"date":"2025-08-18T22:29:03","date_gmt":"2025-08-18T20:29:03","guid":{"rendered":"https:\/\/modedcon.com\/?page_id=1020"},"modified":"2025-11-10T16:13:40","modified_gmt":"2025-11-10T15:13:40","slug":"commitment-control-transaktions-sicherheit-und-datenkonsitenz","status":"publish","type":"page","link":"https:\/\/modedcon.com\/de\/projekte\/commitment-control-transaktions-sicherheit-und-datenkonsitenz\/","title":{"rendered":"Commitment Control \u2013 Transaktions-Sicherheit und Datenkonsitenz"},"content":{"rendered":"\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<p>Die Anwendungen auf der IBM i sind z.T. sehr komplex.<\/p>\n\n\n\n<p>Die gewachsenen Datenbanken sind oft nicht optimal normalisiert und enthalten redundante Daten. Damit muss durch zus\u00e4tzlichen Programmier-Aufwand (z.B. Updates in mehreren Tabellen) sichergestellt werden, dass die Daten konsistent bleiben.<\/p>\n\n\n\n<p>Unabh\u00e4ngig davon gibt es viele Vorg\u00e4nge, die aus mehreren Schritten, vielleicht sogar aus mehreren Programm- oder Prozedur-Aufrufen bestehen, die entweder alle korrekt ausgef\u00fchrt oder komplett zur\u00fcckgesetzt werden m\u00fcssen (z.B. Auftrag muss komplett geliefert werden&#8230; Reservierung Bestand, Auslagerung, Umbuchung, Reservierung aufl\u00f6sen, Status im Auftrag setzen).<\/p>\n\n\n\n<p>Vielfach geht man einfach davon aus, dass ja schon alles funktionieren wird (was wahrscheinlich auch in 90% der Aktionen zutrifft) . . .  und wenn was schiefgeht dann korrigiert man halt &#8222;von Hand&#8220; oder &#8222;mit SQL&#8220;.   <\/p>\n\n\n\n<p>Das darf nicht sein! Programmatisch versuchen im Fehlerfall alles zur\u00fcckzusetzen ist ebenfalls keine L\u00f6sung, da sich ja zwischenzeitlich, also zwischen Fehler und Korrektur, schon wieder etwas ge\u00e4ndert haben k\u00f6nnte. Wenn jetzt noch Daten durch Trigger-Programme ge\u00e4ndert werden, hat man keine Chance mehr!<\/p>\n\n\n\n<p>Die L\u00f6sung hei\u00dft Commitment Control!<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Was ist Commitment Control? <\/em><\/h4>\n\n\n\n<p>Commitment Control sorgt daf\u00fcr, zusammen geh\u00f6rige Schritte als Einheit(Transaktion) ausgef\u00fchrt werden oder wieder zur\u00fcckgesetzt werden. <\/p>\n\n\n\n<p>Das bedeutet: Alle \u00c4nderungen einer Transaktion werden entweder korrekt ausgef\u00fchrt und anschlie\u00dfend durch ein COMMIT-Statement festgeschrieben oder vollst\u00e4ndig durch die Ausf\u00fchrung eines ROLLBACK-Statements (bis zum letzten COMMIT-Statement) zur\u00fcckgenommen &#8211; unabh\u00e4ngig davon, wie viele \u00c4nderungen in wie vielen Tabellen durch wie viele Programme oder Prozeduren erfolgt sind.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Voraussetzungen<\/em><\/h4>\n\n\n\n<p>Um Commitment Control auf IBM i zu nutzen, m\u00fcssen die Tabellen\/physischen Dateien in einem Journal aufgezeichnet werden.<\/p>\n\n\n\n<p>Da die meisten Firmen inzwischen Hochverf\u00fcgbarkeits-L\u00f6sungen einsetzen und fast alle Hochverf\u00fcgbarkeits-L\u00f6sungen auf Journaling basieren, muss &#8222;weiter nichts&#8220; getan werden, als die Commit-Steuerung im aktuellen Job zu starten.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Transaktionen<\/em> &#8211; <em>durchdacht planen und sicher umsetzen<\/em><\/h4>\n\n\n\n<p>Bevor Commitment Control produktiv gesetzt werden kann, sollten die Anwendungen analysiert und die Transaktionen definiert werden:<\/p>\n\n\n\n<p>Dabei ist zu beachten:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>dass die Transaktionen nicht zu gro\u00df werden, d.h. die Datens\u00e4tze, die unter Commit ge\u00e4ndert werden von anderen Jobs oder Programmen nicht ge\u00e4ndert werden k\u00f6nnen. Die Freigabe erfolgt erst mit dem Commit oder Rollback<\/li>\n\n\n\n<li>dass im Fehlerfall die Transaktion ohne Probleme erneut durchgef\u00fchrt werden kann. Am einfachsten ist es, Commit und Rollback in ein Programm zu legen, das jederzeit aufgerufen werden kann, w\u00e4hrend in den aufgerufenen Unter-Programmen und Prozeduren weder ein Commit, noch ein Rollback, ausgef\u00fchrt werden darf.<\/li>\n\n\n\n<li>dass die Commitment Control &#8222;richtig&#8220; gestartet wird, so dass bei einem Rollback auch wirklich alle Schritte zur\u00fcckgesetzt werden.<\/li>\n<\/ul>\n\n\n\n<p>Commitment Control kann schrittweise in die vorhandene Anwendung integriert werden. Was zuvor nicht unter Commitment Control gelaufen ist, l\u00e4uft auch weiterhin unver\u00e4ndert. Da Commitment Control bereits seit Beginn der AS\/400 eingesetzt werden kann, k\u00f6nnen selbst Schritte die in OPM(Original Program Model) Programmen (RPGIII, CLP) erfolgen, sauber zur\u00fcckgesetzt werden.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><em>Interesse<\/em><\/h4>\n\n\n\n<p>Sofern Sie Commitment Control einsetzen wollen und bei der Umsetzung Unterst\u00fctzung ben\u00f6tigen, kontaktieren Sie uns direkt und lassen Sie uns gemeinsam \u00fcber die Einf\u00fchrung und Umsetzung von Commitment Control sprechen. <\/p>\n\n\n\n<p><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:5%\"><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:35%\">\n<div class=\"wp-block-group has-custom-bg-background-color has-background is-vertical is-layout-flex wp-container-core-group-is-layout-079504a7 wp-block-group-is-layout-flex\" style=\"padding-top:var(--wp--preset--spacing--10);padding-right:var(--wp--preset--spacing--10);padding-bottom:var(--wp--preset--spacing--10);padding-left:var(--wp--preset--spacing--10)\">\n<p class=\"hideonmobile\"><a href=\"https:\/\/modedcon.com\/projekte\/\" data-type=\"page\" data-id=\"876\">zur\u00fcck zur \u00dcbersicht<\/a><\/p>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading has-large-font-size\">Dieses Projekt<\/h2>\n\n\n\n<p class=\"has-custom-logo-red-color has-text-color has-link-color wp-elements-0769cf7e1cc07049e052ffe016fe898e\">Die Buchung ist nur f\u00fcr Unternehmer, Gewerbetreibende, Freiberufler und \u00f6ffentliche Institutionen m\u00f6glich; nicht f\u00fcr Verbraucher i.S.d. \u00a7 13 BGB.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-custom-logo-blue-background-color has-background wp-element-button\" href=\"https:\/\/modedcon.com\/kontakt\/\">Unverbindliche Anfrage stellen<\/a><\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-5f9f5280 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading has-large-font-size\" style=\"margin-bottom:var(--wp--preset--spacing--10)\">Alle Projekte<\/h2>\n\n\n\n<ul class=\"wp-block-list is-style-default\">\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/modernisierung-ihrer-ibm-i-datenbank-von-dds-nach-ddl\/\" data-type=\"page\" data-id=\"1010\">Modernisierung Ihrer IBM i-Datenbank von DDS nach DDL<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/anwendungsmodernisierung-mit-ileintegrated-language-environment-konzepten\/\" data-type=\"page\" data-id=\"1012\">Anwendungsmodernisierung mit ILE(Integrated Language Environment)- Konzepten<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/externalisierung-von-daten-zugriffen-crud-funktionen\/\" data-type=\"page\" data-id=\"1014\">Externalisierung von Daten-Zugriffen (CRUD-Funktionen)<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/kurse\/data-centric-verlagerung-von-programmlogik-in-die-datenbank\/\" data-type=\"page\" data-id=\"540\">Data Centric Verlagerung von Programmlogik in die Datenbank<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/sql-performance-analyse-und-optimierung-auf-db2-for-i\/\" data-type=\"page\" data-id=\"1018\">SQL Performance Analyse und Optimierung auf Db2 for i<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/commitment-control-transaktions-sicherheit-und-datenkonsitenz\/\" data-type=\"page\" data-id=\"1020\">Commitment Control \u2013 Transaktions-Sicherheit und Datenkonsitenz<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/row-and-column-access-control-rcac\/\" data-type=\"page\" data-id=\"1022\">Row and Column Access Control (RCAC)<\/a><\/li>\n\n\n\n<li style=\"margin-top:6px;margin-bottom:6px\"><a href=\"https:\/\/modedcon.com\/projekte\/individual-programmierung\/\" data-type=\"page\" data-id=\"1023\">Individual Programmierung<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Die Anwendungen auf der IBM i sind z.T. sehr komplex. Die gewachsenen Datenbanken sind oft nicht optimal normalisiert und enthalten redundante Daten. Damit muss durch zus\u00e4tzlichen Programmier-Aufwand (z.B. Updates in mehreren Tabellen) sichergestellt werden, dass die Daten konsistent bleiben. Unabh\u00e4ngig davon gibt es viele Vorg\u00e4nge, die aus mehreren Schritten, vielleicht sogar aus mehreren Programm- oder [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":876,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1020","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/pages\/1020","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/comments?post=1020"}],"version-history":[{"count":7,"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/pages\/1020\/revisions"}],"predecessor-version":[{"id":1111,"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/pages\/1020\/revisions\/1111"}],"up":[{"embeddable":true,"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/pages\/876"}],"wp:attachment":[{"href":"https:\/\/modedcon.com\/de\/wp-json\/wp\/v2\/media?parent=1020"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}