---
schema_version: "1"
id: 733fec92d0cd810804e844ba5388ee59f1a73c7d3fc3dfcb2d7a3de20c6b9efc
title: メッセージソースからの非同期応答の送信
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/sources-async-response.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/sources-async-response
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 4d54806d70a368e7d7f6a429e696ea2a734386a0cacd5a73da5d394d0dbab2a5
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# メッセージソースからの非同期応答の送信

ソースは、非同期で応答を送信できます。非同期ソースの主なユースケースは次のとおりです。

- 応答操作が非ブロックである。
- 応答操作はブロックだが、それを開始したスレッドとは別のスレッド (通常、​`OnSuccess`​ または ​`OnError`​ アノテーションが付加されたメソッドを実行するスレッド) で非同期で実行される。
- ソースは、個別のスレッドで応答ストリームをコンシュームする必要のある非同期監査を実行する。

このようなケースでは、次のようになります。

- Runtime は応答が非同期であることを認識する必要がある。認識していない場合、応答を生成するスレッドと、応答を取得するメッセージに関連付けられているリソースを解放しようとする Runtime 間で競合状況が発生します。
- `OnSuccess`​ または ​`OnError`​ アノテーションが付加されたメソッドに ​`SourceCompletionCallback`​ 型の引数が含まれている必要がある。これにより、ソースが非同期であることが Runtime に通知されます。

Runtime は、​`success()`​ または ​`error(Throwable)`​ メソッドが呼び出されるまで関連付けられているイベントを完了しません。これは非常に強いコントラクトです。ソースが適切に Runtime に通知せずに ​`SourceCompletionCallback`​ を要求すると、最終的に Runtime 全体がフリーズする可能性があります。

例を挙げます。

```java
@OnSuccess
public void onSuccess(@Content String response, SourceCompletionCallback callback) {
  asyncResponder.sendResponse(response, new ResponderCallback() {
    void onSuccess() {
      callback.success();
    }

    void onFailure(Throwable t) {
      callback.error(t);
    }
  };)
}
```

## [](#次のステップ)次のステップ

[トランザクションメッセージソース](https://docs.mulesoft.com/jp/mule-sdk/1.1/sources-transactions)