プロダクションから Amazon SQS へのメッセージの送信
InterSystems IRIS 相互運用プロダクションは Amazon SQS プロデューサになることができます。組み込みのビジネス・オペレーションを使用する、または SQS 送信アダプタを使用する独自のビジネス・オペレーションを構築するという、2 つのオプションがあります。プロダクションの外部で使用する API もあります。
ビジネス・オペレーションの使用法
インターシステムズは、カスタム・コードを記述することなく、Amazon SQS メッセージ・キューにメッセージを公開するために使用できる、組み込みのビジネス・オペレーションを提供しています。このビジネス・オペレーションを使用するには、以下の手順を実行します。
-
EnsLib.AmazonSQS.BusinessOperation をプロダクションに追加します。"ビジネス・ホストの追加" を参照してください。
-
"Amazon SQS 設定" の説明に従って、このビジネス・ホストの設定を構成します。
-
このビジネス・オペレーションに EnsLib.AmazonSQS.MessageOpens in a new tab 要求を送信するように、他のビジネス・ホストを構成します。詳細は、"Amazon SQS メッセージ・クラス" を参照してください。
このビジネス・オペレーションは、EnsLib.AmazonSQS.MessageOpens in a new tab タイプのメッセージを受信すると、そのメッセージを SQS に公開します。
Amazon SQS メッセージ・クラス
EnsLib.AmazonSQS.MessageOpens in a new tab クラスには、以下を含め、メッセージを定義するためのプロパティがあります。
-
queue は、プロデューサがメッセージを送信する Amazon SQS キューを定義します。
-
body は、メッセージのコンテンツを定義します。
このクラスがメッセージ・オブジェクト・プロパティを介して利用できるメッセージ識別子の詳細な説明は、Amazon SQS のドキュメントOpens in a new tabを参照してください。
messageAttributes プロパティを使用して、メッセージのカスタム・メタデータを指定することもできます。messageAttributes プロパティは、%External.Messaging.SQSMessageAttribute オブジェクトの %ListOfObjects コレクションを受け入れます。SQS メッセージ属性オブジェクトの作成に関する詳細なガイダンスについては、Amazon SQS API に関するドキュメントを参照してください。メッセージ属性を使用してカスタム・メタデータを添付する場合の一般情報は、Amazon SQS のドキュメントOpens in a new tabを参照してください。
アダプタの使用法
SQS ビジネス・オペレーションがニーズを満たさない場合、以下のように SQS 送信アダプタを直接使用できます。
-
カスタム・ビジネス・オペレーション・クラスを作成します。
-
このクラスは Ens.BusinessOperationOpens in a new tab を拡張する必要があります。
-
ADAPTER パラメータは EnsLib.AmazonSQS.OutboundAdapterOpens in a new tab である必要があります。
-
このクラスは、メッセージ・マップを定義する必要があります。
XData MessageMap { <MapItems> <MapItem MessageType="messageclass"> <Method>methodname</Method> </MapItem> ... </MapItems> }
-
このクラスは、メッセージ・マップ内のすべてのメソッドを定義する必要があります。これらのメソッドは、メッセージ・ハンドラと呼ばれます。各メッセージ・ハンドラは、以下のシグニチャを持っている必要があります。
Method Sample(pReq As RequestClass, Output pResp As ResponseClass) As %Status { }
メッセージ・ハンドラは、ビジネス・オペレーションの Adapter プロパティとしてアクセス可能な、アダプタのインスタンス・メソッドを呼び出すことができます。これらのメソッドを呼び出すための一般的な構文は以下のとおりです。
do ..Adapter.MethodName(arguments)
SQS 送信アダプタには、以下のシグニチャを持つ SendMessage() というインスタンス・メソッドが 1 つあります。
Method SendMessage(msg As EnsLib.AmazonSQS.Message) As %Status{ }
-
関連項目
-
Amazon SQS メッセージング API の使用法 (プロダクションなしで使用する場合)