- PR -

XMLをデータベースのように扱う(スレッド)

1
投稿者投稿内容
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-10-09 14:19
こんにちわ!いつもお世話になってます。

XMLをデータベースのように扱いたいのですが
スレッド形式でのプログラムでXMLで上記のようなことは可能なのでしょうか?

それとも、XMLをデータベースのように扱うためにスレッド型のプログラミングは向かないでしょうか?

ご教授願えればと思います。
よろしくお願いします。
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2007-10-09 14:50
スレッドというのは、平行して別の「処理」をさせたいときに使うわけですが、今回はどういう「処理」をさせたいんでしょうか。
butthead
大ベテラン
会議室デビュー日: 2004/01/14
投稿数: 162
投稿日時: 2007-10-09 15:01
はい、並行処理を行います。

今回は注文オーダーをそのXMLデータベースにとっておき
そのオーダーが他のユーザーから同時に来ることもあり
スレッド形式でデータを次々に保管します。
株式のようなマーケットプログラムなので、
一方で売りなどの注文もあり、それを今度はXML構造から削除などします。


この形を採用する場合に一方でXMLの構造を作っている最中に
もう片方でXMLのリストを作るということがあってはXMLの中身が
めちゃめちゃになってしまうのでそれを防ぎたいと思っています。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2007-10-09 15:15
であれば修正前に対象要素およびその子要素のエレメントをすべてロックして回れば不整合の回避が可能かと思われます。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2007-10-09 16:29
るぱんです。

5年ぐらい前にそんなの開発してました。
まぁ、ヘボヘボだったんですけどね。
XMLもファイル単位でしたし。

以下は感想です。
1.DOMなのでメモリを極限まで持っていかれた。
2.追加開発をする際にデータが不整合を起こしていたのでデータからXMLSchemaを作成するのが面倒
3.設計に異様に時間がかかる。
4.データメンテナンスがほぼ手作業でだるい

Lock処理とか入れましたけど、ファイル単位でしたしね。
一応マルチスレッドも意識してましたよ。

結論:ちゃんと作った方がはるかにマシ。XMLには携わりたくない。。。です。

なんでもそうですけど、運用設計のできていないシステムは使い勝手が悪すぎます。
運用には、移行作業、追加開発の規模、システム及びデータメンテナンス等も考慮に入れて欲しいものです。
XMLSchemaもしくはDTDががっちり決まっていればまぁ、何とかできますけどね。。。

それが面倒な場合は、RDBをお勧めします。
定義型を作らない場合は単なるデータの塊なので、
システムそのものに向かないんじゃないかとは思うんですけど、
何故かGoサインが出ている現場を多々見受けます。
1

スキルアップ/キャリアアップ(JOB@IT)