# 同期転送と非同期転送

配信要求や送信要求は、同期転送と非同期転送の選択を行うことができます。

## 同期転送の流れ

配信要求コマンドを同期転送で実行すると、配信処理が完了するまでコマンドは終了しません。また、送信要求コマンドを同期転送で実行すると、集信処理が完了するまでコマンドは終了しません。これにより、ユーザージョブは配信または集信の完了コードを確認してから次の処理を行うことができます。

同期転送処理の流れを図2.8 で説明します。

図2.8 同期転送

1) 配信要求コマンドの起動

配信要求コマンドは、配信受付スレッドに対して配信コマンドを発行します。

2) 配信要求の受理確認

配信受付スレッドは、配信要求コマンドに対して、配信要求の受理を通知します。

3) 配信スレッドの作成

配信受付スレッドは、配信スレッドを作成し、ファイル転送を行います。

4) 配信の終了を通知

配信スレッドは配信終了後、配信受付スレッドに対しファイル転送の結果を通知し、配信履歴ファイルに書き込みます。また、配信後ジョブとして登録されたジョブを起動します。

5) 配信要求コマンドの終了

配信受付スレッドは配信スレッドからの配信完了通知を受け、その内容を配信要求コマンドに通知します。

## 非同期転送の流れ

配信要求コマンドを非同期転送で実行すると、配信処理が完了する前にコマンドは終了します。また、送信要求コマンドを非同期転送で実行すると、集信処理が完了する前にコマンドは終了します。実際の配信または集信は要求を発行したユーザージョブとは非同期に実行され、配信または集信の完了コードはユーザージョブには通知されません。

非同期転送処理の流れを図2.9 で説明します。

図2.9 非同期転送

1) 配信要求コマンドの起動

配信要求コマンドは、配信受付スレッドに対して配信コマンドを発行します。

2) 配信要求コマンドの終了

配信受付スレッドは、配信要求コマンドに対して、配信要求の受理を通知します。配信要求コマンドは通知を受けた後、終了します。

3) 配信スレッドの作成

配信受付スレッドは、配信スレッドを作成し、ファイル転送を行います。

4) 配信の終了を通知

配信スレッドは配信終了後、配信受付スレッドに対しファイル転送の結果を通知し、配信履歴ファイルに書き込みます。また、配信後ジョブとして登録されたジョブを起動します。