2009-06-19 8 views
2

私はC#でトランザクションのようなデータベースを実装しようとしています。私は複数のXMLファイルを処理しています。特定のXMLファイルは、処理中に子XMLファイルを呼び出すことができます。プロセッサは、子XMLファイルの処理を開始します。初期化条件が失敗するか、例外が発生した場合は、親XMLファイルの処理を再開します。これは私がロールバックできるように実装のようなトランザクションを探している理由です。達成することは可能ですか?誰かが私にコードスニペットまたは擬似コードを提供できますか?XMLファイルとのトランザクション

FYI - .NET Compact Frameworkを使用しています。

+0

説明したことは、例外処理のようです。私はあなたが取引で画定しようとしているものは見ません。あなたは書類に何らかの変更/書込みを言及していません。 – Logicalmind

+0

私はこの質問が非常に古いことを知っていますが、私は同じ問題に直面しています。あなたはこの質問に再び答えることができますか? – Vishal

答えて

2

コンパクトなフレームワークでは、自分のトランザクションマネージャをロールするつもりだと思います。

完全なフレームワークでは、おそらくTransactionScopeとIEnlistmentNotificationを使用して何かを構築できました。あなたは、あなたのアクションをトランザクション可能にするためにかなりの労力をかけなければならなかったでしょう。なぜなら、xmlでの変換をサポートしていないからです。

+0

これは良い出発点です。私はxmlでトランザクションを実装するための長い道のりを持っています。 – rxm0203

0

独自のカスタムトランザクション管理コンポーネントを使用しないと、実装が難しくなります。

アプリケーションを処理段階に進める前にすべてのXMLを検証/検証できませんか?

+0

COM +はWindows CEにはありません – ctacke

+0

@ctacke - thanks-lern2readtehquestion :) – Kev

0

多分あなたはSubversionを使用してみることができます。 C#から制御するためのライブラリがあります。トランザクションを開始するには、すぐに作業を開始し、ロールバックするにはロールバックを行います。あなたのsvnツリーをコミットすると、トランザクションが終了します。

これはアプローチが単純すぎるかどうかわかりません。それは可能かもしれませんが、あなたが記述したものはトランザクションのいくつかのプロパティが必要です。特に、アトミック性(複数のファイルに同時に変更をロールバックする機能)が必要であることを示しています。耐久性が暗示されていますが、コミットすればそれが得られます。

初期化条件と例外がある以外の一貫性制約については言及していませんが、おそらくコードでこれらを処理してルールが破損した場合にロールバックを強制する可能性があります。

単離は困難または容易です。一度に複数のトランザクションをサポートする必要があるかどうかによって異なります。同時更新を許可する必要がありますか?そうでない場合は、システムへのシリアルアクセスを強制するためのものを構築するだけで済みます。同時更新が必要な場合は、私は考えが尽きるのではないかと心配しています:-)

+0

真剣に?トランザクションXML解析を処理するために彼がモバイルデバイスにSCCプロバイダを移植してインストールすることを提案していますか? – ctacke

+0

:-) OK - 私はコンパクトなフレームワークの言及にあまり注意を払っていませんでした。彼がトランザクション管理のすべての要素を必要としているのか、あるいはサブセットだけを必要としているのかについてはまだまだ疑問です。 –

関連する問題