バッチで大量のデータを処理する非常に大きなXMLファイル(700mb +)を作成しています。このプログラムは、非常に大きなサイベースデータベースとアプリケーションの間のインタフェースとして機能します。私は現在、クラスにバインドされたxsdスキーマを持っています。私は再起動ロジックを念頭に置いてXMLを書くことができる方法が必要です。Java JAXB - 再起動ロジックを使用したXMLファイルの作成
I.E.私がどこを離れたかを知ることができます。言い換えれば、プログラムが失敗した場合、XMLファイルに最後に書き込まれた内容を確認して、中止した箇所を見つけ出す必要があります。ここに例があります。
<root>
<WorkSet>
<Work>
<Customer>
<Work>
<Customer>
<WorkSet>
<Work>
.....
<root>
書き込み 'work'ノードまたは 'workset'ノードを書き込んだ後にプログラムが失敗するとします。私が処理を中止した場所を拾う方法はありますか? XMLファイルのせん断サイズのためにXMLファイルをメモリに読み戻さないようにしようとしています(500MBのXMLを終了して失敗するとします)。
ありがとうございました。
+1 - 私はこれらの行に沿って何かを提案しようとしていました。 –
WorkSet Javaクラスに@XmlRootElementタグを追加すると、複数のWorkSetを連結した後の1つの大きなXMLファイルの機能に影響しますか?私は幾分新しくJAXBですので、正しく理解していない場合はお知らせください。 – TyC
'@XmlRootElement'を追加しても元の機能には影響しないと思います。追加することなく、 '@ XmlRootElement'' Marshaller.marshal() '次の例外スロー:' com.sun.istack.SAXException2:それが欠落しているため、要素としてタイプ「org.package.MyWorkSet」をマーシャリングすることができないが@ XmlRootElement注釈」となります。 – palacsint