public class WmqMessagingContext extends MessagingContext
MessagingContext
の実装クラス。Constructor and Description |
---|
WmqMessagingContext(WmqMessagingProvider provider,
com.ibm.mq.MQQueueManager mqQueueManager,
java.util.Map<java.lang.String,com.ibm.mq.MQQueue> sendingMqQueues,
com.ibm.mq.MQQueue receivedMqQueue,
com.ibm.mq.MQQueue poisonMqQueue)
コンストラクタ。
|
Modifier and Type | Method and Description |
---|---|
void |
backout()
分散トランザクションをバックアウトする。
WmqMessagingProvider.backout(MQQueueManager) メソッドに処理を委譲する。 |
void |
begin()
分散トランザクションを開始する。
WmqMessagingProvider.begin(MQQueueManager) メソッドに処理を委譲する。 |
protected void |
checkReceivedQueueName(java.lang.String receiveQueue)
指定された受信キュー名に対応するキューが登録されているか否かをチェックする。
|
void |
close()
現在のセッションを終了し、保持しているリソースを開放する。
|
void |
commit()
分散トランザクションをコミットする。
WmqMessagingProvider.commit(MQQueueManager) メソッドに処理を委譲する。 |
static WmqMessagingContext |
getInstance()
カレントスレッドに紐づけられている
WmqMessagingContext を取得する。 |
java.sql.Connection |
getJdbcConnection(javax.sql.XADataSource xaDataSource)
MQQueueManager からConnection を取得する。
WmqMessagingProvider.getJdbcConnection(MQQueueManager, XADataSource) メソッドに処理を委譲する。 |
protected com.ibm.mq.MQQueue |
getMQQueue(java.util.Map<java.lang.String,com.ibm.mq.MQQueue> mqQueues,
java.lang.String queueName)
MQQueue マップから指定されたキュー名のMQQueue を取得する。 |
ReceivedMessage |
receiveMessage(java.lang.String receiveQueue,
java.lang.String messageId,
long timeout)
指定した受信キュー上のメッセージを取得する。
messageIdが指定されている場合は、当該のメッセージに対する応答電文を
取得する。messageIdが指定されていないばあいは、受信キュー上の任意の電文
を取得する。
キュー上に取得対象のメッセージが存在しない場合、メッセージを受信するか、
指定した時間が経過する(タイムアウトする)までブロックする。
タイムアウトした場合はnullをかえす。
タイムアウト時間に0以下の数値を設定した場合は
応答電文を受信するまでブロックし続ける。
|
java.lang.String |
sendMessage(SendingMessage sendingMessage)
メッセージを送信する。
|
attach, detach, emitLog, receiveSync, receiveSync, receiveSync, send, sendSync, sendSync
public WmqMessagingContext(WmqMessagingProvider provider, com.ibm.mq.MQQueueManager mqQueueManager, java.util.Map<java.lang.String,com.ibm.mq.MQQueue> sendingMqQueues, com.ibm.mq.MQQueue receivedMqQueue, com.ibm.mq.MQQueue poisonMqQueue)
provider
- WmqMessagingProvider
mqQueueManager
- MQQueueManager
sendingMqQueues
- 送信先MQQueue
マップ(キーはキュー名)receivedMqQueue
- 受信先MQQueue
poisonMqQueue
- ポイズンメッセージ送信先MQQueue
public static WmqMessagingContext getInstance()
WmqMessagingContext
を取得する。WmqMessagingContext
public java.lang.String sendMessage(SendingMessage sendingMessage)
WmqMessagingProvider.putMessage(MQQueue, SendingMessage)
メソッドに処理を委譲する。sendMessage
in class MessagingContext
sendingMessage
- 送信メッセージpublic ReceivedMessage receiveMessage(java.lang.String receiveQueue, java.lang.String messageId, long timeout)
WmqMessagingProvider.getMessage(MQQueue, String, long, MQQueue)
メソッドに処理を委譲する。receiveMessage
in class MessagingContext
receiveQueue
- 受信キューの論理名messageId
- 送信電文のメッセージID (応答受信でない場合はnull)timeout
- 応答タイムアウト
(単位:ミリ秒、0以下の数値の場合はブロックし続ける)protected void checkReceivedQueueName(java.lang.String receiveQueue) throws MessagingException
receiveQueue
- 受信キュー名MessagingException
- 指定されたキュー名に対するMQQueue
が登録されていなかった場合protected com.ibm.mq.MQQueue getMQQueue(java.util.Map<java.lang.String,com.ibm.mq.MQQueue> mqQueues, java.lang.String queueName) throws MessagingException
MQQueue
マップから指定されたキュー名のMQQueue
を取得する。mqQueues
- MQQueue
マップqueueName
- キュー名MQQueue
MessagingException
- 指定されたキュー名に対するMQQueue
が登録されていなかった場合public void close()
WmqMessagingProvider.close(Map)
メソッド、
WmqMessagingProvider.close(MQQueue)
メソッド、
WmqMessagingProvider.disconnect(MQQueueManager)
メソッド
を順に呼び出し、処理を委譲する。close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class MessagingContext
public java.sql.Connection getJdbcConnection(javax.sql.XADataSource xaDataSource) throws java.sql.SQLException, javax.transaction.xa.XAException
MQQueueManager
からConnection
を取得する。
WmqMessagingProvider.getJdbcConnection(MQQueueManager, XADataSource)
メソッドに処理を委譲する。xaDataSource
- XAデータソースConnection
java.sql.SQLException
- Connection
の取得に失敗した場合javax.transaction.xa.XAException
- Connection
の取得に失敗した場合public void begin()
WmqMessagingProvider.begin(MQQueueManager)
メソッドに処理を委譲する。public void commit()
WmqMessagingProvider.commit(MQQueueManager)
メソッドに処理を委譲する。public void backout()
WmqMessagingProvider.backout(MQQueueManager)
メソッドに処理を委譲する。