summaryrefslogtreecommitdiff
path: root/fml/doc/ja/tutorial
diff options
context:
space:
mode:
authorfukachan <fukachan>2004-05-28 05:03:37 +0000
committerfukachan <fukachan>2004-05-28 05:03:37 +0000
commit04c4485aecd6b2f48e7a3b102c7e5a456e5e95c4 (patch)
treef1f6ff9890f8419f653e281e1adb5c118f084434 /fml/doc/ja/tutorial
parentc3f7cd5cda84d13d3338348e83b1826196642113 (diff)
downloadfml8-04c4485aecd6b2f48e7a3b102c7e5a456e5e95c4.tar.gz
fml8-04c4485aecd6b2f48e7a3b102c7e5a456e5e95c4.tar.bz2
fml8-04c4485aecd6b2f48e7a3b102c7e5a456e5e95c4.zip
on filesystem trouble
Diffstat (limited to 'fml/doc/ja/tutorial')
-rw-r--r--fml/doc/ja/tutorial/include/chapters.ent11
-rw-r--r--fml/doc/ja/tutorial/troubleshoot/chapter.sgml7
-rw-r--r--fml/doc/ja/tutorial/troubleshoot/filesystem.sgml127
3 files changed, 139 insertions, 6 deletions
diff --git a/fml/doc/ja/tutorial/include/chapters.ent b/fml/doc/ja/tutorial/include/chapters.ent
index 21579f26..80f283b1 100644
--- a/fml/doc/ja/tutorial/include/chapters.ent
+++ b/fml/doc/ja/tutorial/include/chapters.ent
@@ -1,5 +1,5 @@
<!--
- $FML: chapters.ent,v 1.87 2004/04/02 04:53:40 fukachan Exp $
+ $FML: chapters.ent,v 1.88 2004/05/19 13:18:00 fukachan Exp $
-->
<!entity versin "1.1">
@@ -206,12 +206,13 @@
<!-- トラブルシューティング -->
-<!entity chapter.troubleshoot SYSTEM "troubleshoot/chapter.sgml">
+<!entity chapter.troubleshoot SYSTEM "troubleshoot/chapter.sgml">
-<!entity recipe.version SYSTEM "troubleshoot/recipe.version.sgml">
-<!entity recipe.listup.addresses SYSTEM "troubleshoot/recipe.listup.addresses.sgml">
-<!entity recipe.listup.aliases SYSTEM "troubleshoot/recipe.listup.aliases.sgml">
+<!entity recipe.version SYSTEM "troubleshoot/recipe.version.sgml">
+<!entity recipe.listup.addresses SYSTEM "troubleshoot/recipe.listup.addresses.sgml">
+<!entity recipe.listup.aliases SYSTEM "troubleshoot/recipe.listup.aliases.sgml">
+<!entity sect.troubleshoot.filesystem SYSTEM "troubleshoot/filesystem.sgml">
<!-- changes -->
<!entity chapter.changes SYSTEM "changes/chapter.sgml">
diff --git a/fml/doc/ja/tutorial/troubleshoot/chapter.sgml b/fml/doc/ja/tutorial/troubleshoot/chapter.sgml
index 3fc37239..c7ef93c1 100644
--- a/fml/doc/ja/tutorial/troubleshoot/chapter.sgml
+++ b/fml/doc/ja/tutorial/troubleshoot/chapter.sgml
@@ -1,5 +1,5 @@
<!--
- $FML: chapter.sgml,v 1.2 2002/10/29 04:10:03 fukachan Exp $
+ $FML: chapter.sgml,v 1.3 2002/11/09 14:16:19 fukachan Exp $
-->
@@ -9,6 +9,7 @@
</title>
+<!-- 基礎的なツール -->
<qandaset>
&recipe.version;
@@ -18,6 +19,10 @@
</qandaset>
+<!-- ファイルシステム -->
+&sect.troubleshoot.filesystem;
+
+
</chapter>
diff --git a/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml b/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml
new file mode 100644
index 00000000..8231e879
--- /dev/null
+++ b/fml/doc/ja/tutorial/troubleshoot/filesystem.sgml
@@ -0,0 +1,127 @@
+<!--
+ $FML: chapter.sgml,v 1.3 2002/11/09 14:16:19 fukachan Exp $
+-->
+
+
+<sect1 id="troubleshoot.filesystem">
+ <title>
+ ファイルシステムがエラーの場合の動作は?
+ </title>
+
+<para>
+基本的には、MTAによる再送処理が行なわれるようにfmlが異常終了するか、
+無理矢理頑張って配送処理を行なうか?となります。
+ログファイルやサマリファイルには欠落が出得るが、
+投稿された記事の内容が失われることだけはないつもりです。
+</para>
+
+<para>
+以下、記事の配送処理でファイルシステムのエラーで書き込みがうまくいかな
+い時、何が起こるかを説明しましょう。
+</para>
+
+
+<sect2>
+ <title>
+ MTA から fml へメールが渡される時
+ </title>
+
+<para>
+fml は STDIN から読みこんだメールを一度ディスクに書きます。
+この書き込みが成功すれば、処理を進めます。失敗した場合、
+MTA に再挑戦してもらうため、exit(EX_TEMPFAIL)でプロセスを異常終了させます。
+くわしくは
+<link linkend="message.queue.incoming">
+<xref linkend="message.queue.incoming">
+</link>
+を参照してください。
+</para>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ 記事番号を更新に失敗した場合
+ </title>
+
+<para>
+きちんと新しい記事番号(+1されたもの)がシークエンスファイル(seq)に
+書き込めたか(ファイルに書いて、閉じて、再び開いて、再度読みこんでみる)
+を確認し、成功していれば、処理を進めます。
+失敗していた場合、exit(EX_TEMPFAIL) で終了します。
+</para>
+
+</sect2>
+
+
+<caution>
+<para>
+記事番号は更新してしまったので、この処理以降、exit(EX_TEMPFAIL)
+することはしません。
+</para>
+</caution>
+
+
+<sect2>
+ <title>
+ 記事の保存の際にエラーになった場合
+ </title>
+
+<para>
+記事の書き込みはできませんが、オリジナルのメールは既にディスクに書き込
+まれています。記事の方は、ヘッダ部分には色々と追加がありますが、本文は
+オリジナルメールのものと一緒です。そこで、キューディレクトリから
+「spool/割り当てられた記事番号」ファイルへlink(2)することで、記事の内
+容だけは保存するようにします。
+</para>
+
+<para>
+配送するべき記事をディスクに保存することができませんでしたが、
+メモリ上に配送するべき記事はあるので、配送処理には挑戦します。
+</para>
+
+<para>
+ただ、このときはメールキューに書き込めないため、配送過程でエラーが生じ
+た場合、配送は中途半端に終了となります。
+</para>
+
+<para>
+この部分は、別のプロセスがこの記事用のメールキューを生成して配送を試み
+るように拡張するべきでしょう。いまのところは未実装です。
+</para>
+
+</sect2>
+
+
+<sect2>
+ <title>
+ 配送処理
+ </title>
+
+<para>
+配送するべき内容をキューに書き、書き込み成功後に配送処理が行なわれます。
+</para>
+
+<para>
+キューに書き込めない場合、メモリ上のデータの配送を試みますが、
+配送過程でエラーが生じた場合、配送は中途半端に終了となります。
+</para>
+
+<para>
+トリッキーな拡張が必要ではありますが、ちゃんとキューイングをフェイクで
+きる仕組みが必要でしょう。
+</para>
+
+<para>
+くわしくは
+<link linkend="message.queue.outgoing">
+<xref linkend="message.queue.outgoing">
+</link>
+を参照してください。
+</para>
+
+</sect2>
+
+
+</sect1>