Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/XMAP3編


2.4.8 メッセージグループ送信機能

UAPからの複数の一方送信メッセージを,トランザクションブランチ単位で一まとまりのメッセージとして扱えます。これをメッセージグループ送信機能と呼びます。ユーザはメッセージグループ送信するかどうかを,論理端末ごとに論理端末定義(mcftalcle)の-Gオプションで指定します。

メッセージグループ送信機能を使用しない場合,一方送信メッセージはsend関数の発行順に出力キューに登録され,表示印刷サービスに送信されます。そのため,複数のUAPから同一の論理端末に対して同時に分岐送信を行うと,帳票が混ざって印刷されます。また,複数のUAPから一方送信メッセージを送信する場合,先に一方送信メッセージを送信したUAPがコミットまたは終了するまでの間は,別のUAPの一方送信メッセージは取り出されません。

メッセージグループ送信機能を使用しない場合の印刷結果を次の図に示します。

図2‒19 メッセージグループ送信機能を使用しない場合の印刷結果

[図データ]

この図に示すように,複数のUAPからの一方送信メッセージが混ざって印刷されます。また,UAP2およびUAP3の一方送信メッセージは,UAP1が終了するまで出力キューから取り出されません。

一方,メッセージグループ送信機能を使用すると,UAPのコミットまたは終了順に出力キューに登録されます。次の図に示すように,帳票はトランザクション単位に一まとまりで印刷されます。

図2‒20 メッセージグループ送信機能を使用する場合の印刷結果

[図データ]

注意事項

同一プリンタに複数の論理端末が対応づけられた構成で複数枚の帳票を出力する場合,グループ送信機能を使用しても複数枚の帳票の間に別のトランザクションの帳票が混ざることがあります。また,複数枚の帳票を一つのPDFファイルに出力する場合,PDFファイルが分割されたり,上書きによるページ抜けが発生したりすることがあります。

このような問題を解決するために,メッセージグループ送信機能を使用した上で,XMAP3で次の対応を実施してください。

適用OSがUNIXの場合

XMAP3 Serverの「LPスプールシステムでの帳票一括出力機能」を有効にしてください。「LPスプールシステムでの帳票一括出力機能」の詳細については,マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

適用OSがWindowsの場合

XMAP3の表示・印刷セットアップダイアログで,スプール書き出し単位に「アプリケーション毎」を指定してください。表示・印刷セットアップの詳細については,マニュアル「XMAP3 Version 5 画面・帳票サポートシステム XMAP3 実行ガイド」を参照してください。

〈この項の構成〉

(1) メッセージグループ送信の流れ

メッセージグループ送信の流れについて説明します。UAPは,メッセージグループ送信をすると,定義した論理端末に対する一方送信メッセージを出力キューに登録します。TP1/NET/XMAP3は,UAPのトランザクションブランチがコミットまたは終了すると,最初のメッセージを出力キューから取り出し,プリンタを排他します。そして,メッセージの出力キューからの取り出しとプリンタへの送信を繰り返します。送信後,TP1/NET/XMAP3はプリンタからの印刷完了イベントを待ちます。印刷完了イベントを受け取ると,プリンタの排他を解除します。

メッセージグループ送信の流れを次の図に示します。

図2‒21 メッセージグループ送信の流れ

[図データ]

(2) プリンタの連続使用

論理端末定義(mcftalcle -x)のexcntオペランドで,プリンタの排他を解除するタイミングを,送信メッセージの数で指定できます。指定されたメッセージ数に達するまでプリンタの排他を続けるため,複数のメッセージグループを連続して印刷できます。excntオペランドに0を設定すると,個々のメッセージグループごとにプリンタの排他を解除します。

excntオペランドに0以外の値を設定している場合,両面印刷の指定をすると,グループの先頭ページが直前のグループの最終ページの裏面に印刷されることがあります。グループの先頭メッセージで改ページするなどの対処をしてください。

プリンタの連続使用を次の図に示します。

図2‒22 プリンタの連続使用

[図データ]

この図では,OpenTP1システム内のUAPが送信する7番目のメッセージ(send7)を含むメッセージグループ2の送信が完了したとき,プリンタの排他が解除されます。