・現行(3スレッドの場合)→最初のPDF出力のため発生
───────┬(PDF出力)─
├(PDF出力)─
└(PDF出力)─
・試行(3スレッドの場合)→事前にダミーを実行し問題が発生しない想定
─(dummy)──┬(PDF出力)─
├(PDF出力)─
└(PDF出力)─
お世話になります。
ご提案いただいた回避策(プロセスの起動直後にダミーの帳票出力処理を実行)について、こちらで検証を実施いたしました。
結果としましては、何度かプロセス実行したところ(7回目)、同様の事象が再現いたしました。
そのため、「プロセス内で最初のPDF出力時にのみ発生する」という状況ではない可能性が高いと考えられます。
つきましては、以下の2点について、お手数ですがご確認・ご検討をお願いできますでしょうか。
・可能であれば、どのような経緯や条件で「初回のみ」という結論に至ったのか、参考に教えていただけますでしょうか。
・ダミー出力による回避が難しいため、恐縮ながら、根本原因の調査を改めてお願いできますでしょうか。
お世話になります。
ご提案いただいた回避策(添付いただいた systembase.iTextSharp.dll を使用した実行)について、以下の通り検証を行いました。
・反映手順
ダウンロード後、右クリック → 「プロパティ」 → 「全般」 → セキュリティ項目で「許可する」にチェック
解凍後、で dotnetcore_pdf 内の systembase.iTextSharp.dll を弊社環境(C# / .NET 8.0)のプロジェクトフォルダ/libの同名ファイルに上書きし実行
・ 検証内容
3件同時PDF出力を並列処理 × 10回検証
・ 結果
10回中、5回xrefが破損しており、そのうち3回はPDFを開いたときに白紙となっていました
白紙となったPDFのxrefの例
----------------------------
xref
1 1
0000042185 00000 n
3 3
0000000265 00000 n
0000000715 00000 n
0000042319 00000 n
11 2
0000042382 00000 n
0000042468 00000 n
trailer
<</Size 13/Info 12 0 R/ID [<5ac70a0d7a4f16d14d1ee0322705a5e8><dd15f8ab47f0db141fdd3128cbf33911>]/Root 11 0 R>>
startxref
42618
%%EOF
----------------------------
・ ご確認事項
systembase.iTextSharp.dll を使用した実行は上記手順で問題ありませんでしょうか?
手順に間違いなければ、お手数ですがご確認をお願いしたいと思っております。
何卒よろしくお願い致します。