EJBが増え過ぎた時の対応
山口です。
anttask + xdocletでEJBのソースを自動生成して、こりゃ楽だ、なことを
しています。
が、EJBが増える程にメモリ使用量が増えて、とうとうOut of Memoryで落
ちるようになってしまいました。
そこで採った回避策はというと、
a. マシンの実メモリを増やし、JavaVMに割り当てるメモリ量を増やす
b. EJBのソース自動生成処理単位を分割する
なのですが、それぞれ問題がありまして...
a. マシンの実メモリを増やし、JavaVMに割り当てるメモリ量を増やす
2GBでも足りないんですよ。ということで、8GB積みました。
OSはLinuxで、2GB超えの設定もして、JavaVMに3.5GB割り当てて
なんとか耐えとります。が、金がかかるんです、レンタルなんで。
それに、まだまだEJBも増え続けそうだし。これは暫定対策ですね。
b. EJBのソース自動生成処理単位を分割する
メモリ増設では金がかかるのと、普通のパソコンでも全buildできる
ように、という願いから、xdocletの処理単位を分割できないか、
ということで試しました。
<target>
:
<fileset dir="path/to">
<include name="**/*Bean.java" />
</fileset>
:
</target>
というのを
<target>
:
<fileset dir="path/to">
<include name="foo/*Bean.java" />
</fileset>
:
</target>
<target>
:
<fileset dir="path/to">
<include name="**/*Bean.java" />
<exclude name="foo/**/*Bean.java" />
</fileset>
:
</target>
のようにincludeを分割して、その単位ごとにtarget定義。
当たり前ですが、xdocletのソース自動生成はソースのJavaDoc tagが
元となるので、分割しようが全部まとめて自動生成しようが、生成
されるソースは同じになります。
が、生成物はソースだけでなく、Deployment Descriptorも必要に
なります。ejb-jar.xmlですね。weblogicを使っているので、
weblogic-ejb-jar.xmlなんてのも生成されます。これらのファイルも
別々に生成されてしまうんです。
そこでご存知であれば教えて欲しいことが2つ。
1. ejb-jar.xmlで、includeみたいなことができるのか?
2. 複数のejb-jar.xmlをmergeするツールはあるか?
1はJ2EEの仕様を見れば分かるかな、と思ったんですが、探し方が悪いのか
今のところ見付けられていません。
2は、shell + awkのscriptを自作して解決しようとしています(debug中)。
XMLのツールでありそうな気もしますが、GUIでやるんではなく、コマンド
ラインで、できれば自動的にしたいです。手作業だとどうしてもミスが
発生してしまうので。
というか、そもそもEJBの数が多過ぎる?
--
Tadasuke YAMAGUCHI @ Hyogo
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735