iTextによるPDF出力で同時実行時にエラー
iTextを利用してServletからPDFを出力する機能を開発してました。iTextを利用するにあたっては簡単なサンプルを作り、同時実行性も含めた確認をして今回の用途では問題ないという判断をしてました。
ところが、プログラムも完成し同時10ユーザで負荷テストを実施したところ、なぜかエラーが発生します。試しに2ユーザで同時実行してみたら、なんとこれもエラーでした。
原因は、「iTextでTrueTypeFontの読み取りを同時実行するとエラーとなる」というものでした。具体的には、「TrueTypeFontUnicode.javaにおけるTrueTypeFontSubSetオブジェクトの生成時の引数」が問題のようです。
このトラブルの教訓は、以下の通り。
- サンプルで同時実行性を確認するにあたっては、本番で利用するモジュールをできるだけ利用すること
- なるべく早い段階で、同時実行性について確認しておくこと
[参考URL]
https://sourceforge.net/tracker/index.php?func=detail&aid=1011232&group_id=15255&atid=115255
https://sourceforge.net/tracker/index.php?func=detail&aid=1022869&group_id=15255&atid=115255