@Published(tag="architect") public abstract class MessagingContext extends java.lang.Object implements java.io.Closeable
getInstance()
を用いてインスタンスを獲得する。
本クラスでは、以下の機能を提供する。
MessagingProvider
Constructor and Description |
---|
MessagingContext() |
Modifier and Type | Method and Description |
---|---|
static void |
attach(MessagingContext context)
カレントスレッドにメッセージコンテキストを紐づける。
|
abstract void |
close()
現在のセッションを終了し、保持しているリソースを開放する。
|
static void |
detach()
カレントスレッド上のメッセージコンテキストを閉じた上で除去する。
メッセージングコンテキストがカレントスレッド上に存在しない場合はなにもしない。
|
protected void |
emitLog(InterSystemMessage<?> message)
メッセージングの証跡ログを出力する。
|
static MessagingContext |
getInstance()
カレントスレッドに紐づけられているメッセージングコンテキストを返す。
メッセージングコンテキストが現在のスレッド上に存在しない場合は実行時例外
を送出する。
|
abstract ReceivedMessage |
receiveMessage(java.lang.String receiveQueue,
java.lang.String messageId,
long timeout)
指定した受信キュー上のメッセージを取得する。
messageIdが指定されている場合は、当該のメッセージに対する応答電文を
取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文
を取得する。
キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、
指定した時間が経過する(タイムアウトする)までブロックする。
タイムアウトした場合はnullをかえす。
タイムアウト時間に0以下の数値を設定した場合は
応答電文を受信するまでブロックし続ける。
|
ReceivedMessage |
receiveSync(java.lang.String receiveQueue)
指定した受信キュー上のメッセージを取得する。
キュー上にメッセージが存在していない場合は、メッセージを受信するまで
ブロックする。
|
ReceivedMessage |
receiveSync(java.lang.String receiveQueue,
long timeout)
指定した受信キュー上のメッセージを取得する。
キュー上にメッセージが存在していない場合は、メッセージを受信するまで
ブロックする。
|
ReceivedMessage |
receiveSync(java.lang.String receiveQueue,
java.lang.String messageId,
long timeout)
指定した受信キュー上のメッセージを取得する。
messageIdが指定されている場合は、当該のメッセージに対する応答電文を
取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文
を取得する。
キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、
指定した時間が経過する(タイムアウトする)までブロックする。
タイムアウトした場合はnullをかえす。
タイムアウト時間に0以下の数値を設定した場合は
応答電文を受信するまでブロックし続ける。
|
java.lang.String |
send(SendingMessage message)
メッセージを送信する。
|
abstract java.lang.String |
sendMessage(SendingMessage message)
メッセージを送信する。
|
ReceivedMessage |
sendSync(SendingMessage message)
メッセージの同期送信を行う。
プロバイダ側設定のタイムアウト時間を経過した場合はnullを返す。
|
ReceivedMessage |
sendSync(SendingMessage message,
long timeout)
メッセージの同期送信を行う。
メッセージ送信後、応答電文を受信するか、指定した時間が経過するまでブロックする。
タイムアウトした場合はnullを返す。
タイムアウト時間に0以下の数値を設定した場合、
プロバイダ側のデフォルトタイムアウト時間を経過した場合はnullを返す。
タイムアウト時間が指定された場合は有効期間ヘッダにタイムアウト時間を指定する。
|
public static MessagingContext getInstance() throws java.lang.IllegalStateException
java.lang.IllegalStateException
- メッセージングコンテキストが現在のスレッド上に存在しない場合public static void attach(MessagingContext context)
context
- カレントスレッドに紐づけるメッセージングコンテキストpublic static void detach()
public java.lang.String send(SendingMessage message)
message
- 送信メッセージpublic ReceivedMessage sendSync(SendingMessage message)
message
- 送信メッセージpublic ReceivedMessage sendSync(SendingMessage message, long timeout)
message
- 送信メッセージtimeout
- 応答タイムアウト (単位:ミリ秒、0以下の数値の場合はブロックし続ける)public ReceivedMessage receiveSync(java.lang.String receiveQueue)
receiveQueue
- 受信キューの論理名public ReceivedMessage receiveSync(java.lang.String receiveQueue, long timeout)
receiveQueue
- 受信キューの論理名timeout
- 応答タイムアウト
(単位:ミリ秒、0以下の数値の場合はブロックし続ける)public ReceivedMessage receiveSync(java.lang.String receiveQueue, java.lang.String messageId, long timeout)
receiveQueue
- 受信キューの論理名messageId
- 送信電文のメッセージID (応答受信でない場合はnull)timeout
- 応答タイムアウト
(単位:ミリ秒、0以下の数値の場合はブロックし続ける)public abstract java.lang.String sendMessage(SendingMessage message)
message
- 送信メッセージpublic abstract ReceivedMessage receiveMessage(java.lang.String receiveQueue, java.lang.String messageId, long timeout)
receiveQueue
- 受信キューの論理名messageId
- 送信電文のメッセージID (応答受信でない場合はnull)timeout
- 応答タイムアウト
(単位:ミリ秒、0以下の数値の場合はブロックし続ける)public abstract void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
protected void emitLog(InterSystemMessage<?> message)
message
- メッセージオブジェクト