2.2.2. JMS

2.2.2.1. 標準インタフェース
WebOTX JMQでは、サンマイクロシステムズ社発行の「Java TMMessage Service Version 2.0」で定義されている標準のインタフェースを提供しています。

Java Mesage Service Version 2.0

2.2.2.2. 拡張インタフェース
WebOTX JMQでは、次のパッケージを提供しています。
com.nec.webotx.messaging パッケージ
com.nec.webotx.messaging パッケージは、WebOTX JMQ固有のインタフェースを提供します。

ClientQueueConnection インタフェース
com.nec.webotx.messaging.ClientQueueConnection インタフェースは、javax.jms.QueueConnection のメッセージ再配信遅延時間設定の拡張機能を提供します。 拡張メソッドを呼び出す場合、キャストして呼び出してください。
 
createQueueSession メッセージ再配信遅延時間を設定してQueueSessionを生成する

createQueueSession
名称 createQueueConnection − メッセージ再配信遅延時間を設定してQueueSessionを作成する。
形式 package com.nec.webotx.messaging; 

public class  ClientQueueConnection { 
    public QueueSession createQueueSession( 
        boolean transacted
        int acknowledgeMode
        int redeliverytime
    ); 
}

説明 transactedにはトランザクション制御を行うかどうか、 acknowledgeModeには確認応答モードを指定します。 redeliverytimeにメッセージ再配信遅延時間を相対時間 (秒) で指定します。このメソッドを使って生成したセッションを使ってメッセージの受信処理を行い、リカバリを実行すると実際にコンシューマに再配信されるのは redeliverytime時間経過した後になります。
戻り値 javax.jms.QueueSession
エラー javax.jms.JMSException


ClientTopicConnection インタフェース
com.nec.webotx.messaging.ClientTopicConnection インタフェースは、javax.jms.TopicConnection のメッセージ再配信遅延時間設定の拡張機能を提供します。 拡張メソッドを呼び出す場合、キャストして呼び出してください。
 
createTopicSession メッセージ再配信遅延時間を設定してTopicSessionを生成する

createTopicSession
名称 createTopicSession − メッセージ再配信遅延時間を設定してTopicSessionを作成する。
形式 package com.nec.webotx.messaging; 

public class  ClientTopicConnection { 
    public TopicSession createTopicSession( 
        boolean transacted
        int acknowledgeMode
        int redelaytime
   ); 
}

説明 transactedにトランザクション制御を行うかどうか、 acknowledgeModeに確認応答モードを指定します。 redeliverytimeにメッセージ再配信遅延時間を相対時間 (秒) で指定します。このメソッドを使って生成したセッションを使ってメッセージの受信処理を行い、リカバリを実行すると実際にコンシューマに再配信されるのは redeliverytime時間経過した後になります。
戻り値 javax.jms.TopicSession
エラー javax.jms.JMSException


ClientSession インタフェース
com.nec.webotx.messaging.ClientSession インタフェースは、javax.jms.Session の拡張機能を提供します。

NO_ACKNOWLEDGE 確認応答なしモード


NO_ACKNOWLEDGE
名称 NO_ACKNOWLEDGE − 確認応答なしモードをあらわす変数。
形式 package com.nec.webotx.messaging; 

public interface  ClientSession { 
    public static final int  NO_ACKNOWLEDGE = 4; 
};

説明 Session オブジェクトを生成するときの acknowledgeModeに使用します。 確認応答なしモードのSession オブジェクトを生成するときに指定してください。


com.nec.webotx.messaging.jmq.jmsclient パッケージ
com.nec.webotx.messaging.jmq.jmsclient パッケージは、WebOTX JMQ固有のインタフェースを提供します。

MessageImpl クラス
com.nec.webotx.messaging.jmq.jmsclient.MessageImplクラスは、Messageの配信時刻指定の拡張機能を提供します。
インタフェースjavax.jms.MessageのWebOTX JMQでの実装クラスです。拡張メソッドを呼び出す場合、キャストして呼び出してください。
setDeliveryTime(int) メッセージ配信遅延時間を相対時間 (秒) で指定する
setDeliveryTime(java.util.Date) メッセージ配信遅延時間を絶対時刻 (java.util.Date) で指定する

setDeliveryTime
名称 setDeliveryTime − Messageの配信遅延時間を相対時間 (秒) で指定する
形式 package com.nec.webotx.messaging.jmq.jmsclient; 

public class  MessageImpl { 
    public void setDeliveryTime(int delaytime); 
}

説明 delaytimeにMessage配信遅延時間を相対時間 (秒) で指定します。メッセージ送信処理実行後、 実際にコンシューマに配信されるのは delaytime時間経過した後になります。
戻り値 ありません。
エラー
ありません。

setDeliveryTime
名称 setDeliveryTime − Messageの配信遅延時間を絶対時刻 (java.util.Date) で指定する
形式 package com.nec.webotx.messaging.jmq.jmsclient; 

public class  MessageImpl { 
    public void setDeliveryTime(java.util.Date date); 
}

説明 dateにMessage配信遅延時間を絶対時刻 (java.util.Date) で指定します。メッセージ送信処理実行後、 実際にコンシューマに配信されるのは dateで指定した時刻になります。
戻り値 ありません。
エラー ありません。


com.nec.webotx.messaging.jms パッケージ
com.nec.webotx.messaging.jms パッケージは、WebOTX JMQ固有のインタフェースを提供します。

Connection インタフェース
com.nec.webotx.messaging.jms.Connection インタフェースは、javax.jms.Connection のメッセージ再配信遅延時間設定や、イベント通知のためのリスナ設定などの拡張機能を提供します。拡張メソッドを呼び出す場合、キャストして呼び出してください。
createSession メッセージ再配信遅延時間を設定してSessionを生成する
setEventListener コネクションにコネクションイベントリスナを設定する
setConsumerEventListener コネクションにコンシューマイベントリスナを設定する
removeConsumerEventListener コネクションからコンシューマイベントリスナを削除する

createSession
名称 createSession − メッセージ再配信遅延時間を設定してSessionを生成する
形式 package com.nec.webotx.messaging.jms;

public interface Connection extends javax.jms.Connection {
    public Session createSession(
        boolean transacted,
        int acknowledgeMode,
        int redeliverytime
    ) throws javax.jms.JMSException;
}

説明 transactedにはトランザクション制御を行うかどうか、 acknowledgeModeには確認応答モードを指定します。 redeliverytimeにメッセージ再配信遅延時間を相対時間 (秒) で指定します。このメソッドを使って生成したセッションを使ってメッセージの受信処理を行い、リカバリを実行すると実際にコンシューマに再配信されるのは redeliverytime時間経過した後になります。
戻り値 javax.jms.Session
エラー
javax.jms.JMSException

setEventListener
名称 setEventListener − コネクションにコネクションイベントリスナを設定する
形式 package com.nec.webotx.messaging.jms;

public interface Connection extends javax.jms.Connection {
    public void setEventListener (
        com.nec.webotx.messaging.jms.notification.EventListener listener
    ) throws javax.jms.JMSException;
}

説明 コネクションクローズや、コネクション再接続に関するイベントが発生した場合に動作する、コネクションイベントリスナを設定します。 listenerには、このコネクションに設定する、コネクションイベントリスナを指定します。
戻り値 ありません。
エラー
javax.jms.JMSException

setConsumerEventListener
名称 setConsumerEventListener − コネクションにコンシューマイベントリスナを設定する
形式 package com.nec.webotx.messaging.jms;

public interface Connection extends javax.jms.Connection {
    public void setConsumerEventListener (
        com.nec.webotx.messaging.Destination dest,
        com.nec.webotx.messaging.jms.notification.EventListener listener
    ) throws javax.jms.JMSException;
}

説明 送信先に対するコンシューマの有無のイベント通知を受けたときに動作する、コンシューマイベントリスナを設定します。 destには、コンシューマイベント通知の受信対象となる送信先を指定します。 listenerには、このコネクションに設定する、コンシューマイベントリスナを指定します。
戻り値 ありません。
エラー
javax.jms.JMSException

removeConsumerEventListener
名称 removeConsumerEventListener − コネクションからコンシューマイベントリスナを削除する
形式 package com.nec.webotx.messaging.jms;

public interface Connection extends javax.jms.Connection {
    public void removeConsumerEventListener (
        com.nec.webotx.messaging.Destination dest
    ) throws javax.jms.JMSException;
}

説明 送信先に対するコンシューマイベントリスナを削除します。 destにはコンシューマイベントリスナを削除する送信先を指定します。
戻り値 ありません。
エラー
javax.jms.JMSException


com.nec.webotx.messaging.jms.notification パッケージ
com.nec.webotx.messaging.jms.notification パッケージは、WebOTX JMQ固有のイベント通知に関するインタフェースを提供します。

ConnectionClosedEvent クラス
com.nec.webotx.messaging.jms.notification.ConnectionClosedEvent クラスは、コネクションのクローズに関するイベントを表します。
getEventCode イベントコードを取得する
getEventMessage イベントメッセージを取得する
getBrokerAddress コネクションの接続先JMSサーバのアドレスを取得する
getConnection イベントと関連付けられているコネクションを取得する
getJMSException コネクションのクローズ原因となったJMSExceptionを取得する
CONNECTION_CLOSED_ERROR JMSサーバ側のエラーによるクローズを示す定数
CONNECTION_CLOSED_KILL 管理者がコネクションをクローズしたことを示す定数
CONNECTION_CLOSED_LOST_CONNECTION ネットワークやJMSサーバ異常によるコネクションのクローズを示す定数
CONNECTION_CLOSED_SHUTDOWN 管理者がJMSサーバをシャットダウンしたことによるクローズを示す定数

getEventCode
名称 getEventCode − イベントコードを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public String getEventCode();
}

説明 このイベントのイベントコードを取得します。ConnectionClosedEventでは、次のいずれかの値が返却されます。
ConnectionClosedEvent.CONNECTION_CLOSED_ERROR
ConnectionClosedEvent.CONNECTION_CLOSED_KILL
ConnectionClosedEvent.CONNECTION_CLOSED_LOST_CONNECTION
ConnectionClosedEvent.CONNECTION_CLOSED_SHUTDOWN
戻り値 String
エラー
ありません。

getEventMessage
名称 getEventMessage − イベントメッセージを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public String getEventMessage();
}

説明 このイベントのイベントメッセージを取得します。
戻り値 String
エラー
ありません。

getBrokerAddress
名称 getBrokerAddress − コネクションの接続先JMSサーバのアドレスを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public String getBrokerAddress();
}

説明 コネクションが接続していたJMSサーバのアドレスを取得します。
戻り値 String
エラー
ありません。

getConnection
名称 getConnection − イベントを受信したコネクションを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public javax.jms.Connection getConnection();
}

説明 このイベントに関連付けられているコネクションを取得します。
戻り値 javax.jms.Connection
エラー
ありません。

getJMSException
名称 getJMSException − コネクションのクローズ原因となったJMSExceptionを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public javax.jms.JMSException getJMSException();
}

説明 コネクションがクローズされる原因となったJMSException例外オブジェクトを取得します。
戻り値 javax.jms.JMSException
エラー
ありません。

CONNECTION_CLOSED_ERROR
名称 CONNECTION_CLOSED_ERROR − JMSサーバ側のエラーによるクローズを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public static final String CONNECTION_CLOSED_ERROR = "E203";
}

説明 ConnectionClosedEventのイベントコードです。 JMSサーバ側のエラー (OutOfMemoryErrorなど) により、コネクションがクローズしたことを示します。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionClosedEvent#getEventCode()

CONNECTION_CLOSED_KILL
名称 CONNECTION_CLOSED_KILL − 管理者がコネクションをクローズしたことを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public static final String CONNECTION_CLOSED_KILL = "E204";
}

説明 ConnectionClosedEventのイベントコードです。 管理者が運用管理操作によりコネクションをクローズしたことを示します。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionClosedEvent#getEventCode()

CONNECTION_CLOSED_LOST_CONNECTION
名称 CONNECTION_CLOSED_LOST_CONNECTION − ネットワークやJMSサーバ異常によるコネクションのクローズを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public static final String CONNECTION_CLOSED_LOST_CONNECTION = "E206";
}

説明 ConnectionClosedEventのイベントコードです。 ネットワークの問題や、JMSサーバプロセスの異常終了、または、内部エラーによりコネクションがクローズしたことを示します。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionClosedEvent#getEventCode()

CONNECTION_CLOSED_SHUTDOWN
名称 CONNECTION_CLOSED_SHUTDOWN − 管理者がJMSサーバをシャットダウンしたことによるクローズを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionClosedEvent {
    public static final String CONNECTION_CLOSED_SHUTDOWN = "E201";
}

説明 ConnectionClosedEventのイベントコードです。 管理者による停止要求によりコネクションがクローズしたことを示します。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionClosedEvent#getEventCode()

ConnectionReconnectedEvent クラス
com.nec.webotx.messaging.jms.notification.ConnectionReconnectedEvent クラスは、コネクションの再接続に関するイベントを表します。
getEventCode イベントコードを取得する
getEventMessage イベントメッセージを取得する
getBrokerAddress コネクションの再接続先JMSサーバのアドレスを取得する
getConnection イベントと関連付けられているコネクションを取得する
CONNECTION_RECONNECTED コネクションが再接続したことを示す定数

getEventCode
名称 getEventCode − イベントコードを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectedEvent {
    public String getEventCode();
}

説明 このイベントのイベントコードを取得します。ConnectionReconnectedEventでは、次の値が返却されます。
ConnectionReconnectedEvent.CONNECTION_RECONNECTED
戻り値 String
エラー
ありません。

getEventMessage
名称 getEventMessage − イベントメッセージを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectedEvent {
    public String getEventMessage();
}

説明 このイベントのイベントメッセージを取得します。
戻り値 String
エラー
ありません。

getBrokerAddress
名称 getBrokerAddress − コネクションの再接続先JMSサーバのアドレスを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectedEvent {
    public String getBrokerAddress();
}

説明 コネクションが再接続したJMSサーバのアドレスを取得します。
戻り値 String
エラー
ありません。

getConnection
名称 getConnection − イベントと関連付けられているコネクションを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectedEvent {
    public javax.jms.Connection getConnection();
}

説明 このイベントに関連付けられているコネクションを取得します。
戻り値 javax.jms.Connection
エラー
ありません。

CONNECTION_RECONNECTED
名称 CONNECTION_RECONNECTED − コネクションが再接続したことを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectedEvent {
    public static final String CONNECTION_RECONNECTED = "E301";
}

説明 ConnectionReconnectedEventのイベントコードです。 コネクションの自動再接続機能が有効になっている場合に、JMSサーバに再接続したことを示します。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionReconnectedEvent#getEventCode()

ConnectionReconnectFailedEvent クラス
com.nec.webotx.messaging.jms.notification.ConnectionReconnectFailedEvent クラスは、コネクションの再接続失敗に関するイベントを表します。
getEventCode イベントコードを取得する
getEventMessage イベントメッセージを取得する
getBrokerAddress コネクションの再接続先JMSサーバのアドレスを取得する
getConnection イベントと関連付けられているコネクションを取得する
getJMSException コネクション再接続失敗の原因となったJMSExceptionを取得する
CONNECTION_RECONNECT_FAILED コネクションの再接続失敗を示す定数

getEventCode
名称 getEventCode − イベントコードを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public String getEventCode();
}

説明 このイベントのイベントコードを取得します。ConnectionReconnectFailedEventでは、次の値が返却されます。
ConnectionReconnectFailedEvent.CONNECTION_RECONNECT_FAILED
戻り値 String
エラー
ありません。

getEventMessage
名称 getEventMessage − イベントメッセージを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public String getEventMessage();
}

説明 このイベントのイベントメッセージを取得します。
戻り値 String
エラー
ありません。

getBrokerAddress
名称 getBrokerAddress − コネクションの再接続先JMSサーバのアドレスを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public String getBrokerAddress();
}

説明 コネクションが再接続を試みたJMSサーバのアドレスを取得します。
戻り値 String
エラー
ありません。

getConnection
名称 getConnection − イベントを受信したコネクションを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public javax.jms.Connection getConnection();
}

説明 このイベントに関連付けられているコネクションを取得します。
戻り値 javax.jms.Connection
エラー
ありません。

getJMSException
名称 getJMSException − コネクション再接続失敗の原因となったJMSExceptionを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public javax.jms.JMSException getJMSException();
}

説明 コネクションの再接続失敗の原因となったJMS例外を取得します。
戻り値 javax.jms.JMSException
エラー
ありません。

CONNECTION_RECONNECT_FAILED
名称 CONNECTION_RECONNECT_FAILED − コネクションの再接続失敗を示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConnectionReconnectFailedEvent {
    public static final String CONNECTION_RECONNECT_FAILED = "E401";
}

説明 ConnectionClosedEventのイベントコードです。 コネクションの自動再接続機能が有効になっている場合に、JMSサーバへの再接続に失敗したことを示します。再接続に失敗するたびに通知を行います。 なお、例外リスナは、再接続の試行回数が上限に達した場合のみに呼び出されます。
関連項目
com.nec.webotx.messaging.jms.notification.ConnectionReconnectFailedEvent#getEventCode()

ConsumerEvent クラス
com.nec.webotx.messaging.jms.notification.ConsumerEvent クラスは、送信先に対するコンシューマの接続有無に関するイベントを表します。
getEventCode イベントコードを取得する
getEventMessage イベントメッセージを取得する
getBrokerAddress イベントを送信したJMSサーバのアドレスを取得する
getConnection イベントを受信したコネクションを取得する
getDestination イベントが発生した送信先を取得する
CONSUMER_NOT_READY コンシューマが存在しないことを示す定数
CONSUMER_READY コンシューマが存在することを示す定数

getEventCode
名称 getEventCode − イベントコードを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public String getEventCode();
}

説明 このイベントのイベントコードを取得します。ConsumerEventでは、次のいずれかの値が返却されます。
ConsumerEvent.CONSUMER_NOT_READY
ConsumerEvent.CONSUMER_READY
戻り値 String
エラー
ありません。

getEventMessage
名称 getEventMessage − イベントメッセージを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public String getEventMessage();
}

説明 このイベントのイベントメッセージを取得します。
戻り値 String
エラー
ありません。

getBrokerAddress
名称 getBrokerAddress − イベントを送信したJMSサーバのアドレスを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public String getBrokerAddress();
}

説明 このイベントを送信したJMSサーバのアドレスを取得します。
戻り値 String
エラー
ありません。

getConnection
名称 getConnection − イベントを受信したコネクションを取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public javax.jms.Connection getConnection();
}

説明 このイベントを受信したコネクションを取得します。
戻り値 javax.jms.Connection
エラー
ありません。

getDestination
名称 getDestination − イベントが発生した送信先を取得する
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public javax.jms.Destination getDestination();
}

説明 このイベントが発生した送信先を取得します。
戻り値 javax.jms.Destination
エラー
ありません。

CONSUMER_NOT_READY
名称 CONSUMER_NOT_READY − コンシューマの準備ができていないことを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public static final String CONSUMER_NOT_READY = "E701";
}

説明 ConsumerEventのイベントコードです。 コンシューマの準備ができていない (コンシューマが存在している状態から存在しない状態になった) ことを示します。 なお、INACTIVE 状態の永続サブスクリプションは「存在しない」とみなされます。
関連項目
com.nec.webotx.messaging.jms.notification.ConsumerEvent#getEventCode()

CONSUMER_READY
名称 CONSUMER_READY − コンシューマの準備ができたことを示す定数
形式 package com.nec.webotx.messaging.jmq.jmsclient;

public class ConsumerEvent {
    public static final String CONSUMER_READY = "E700";
}

説明 ConsumerEventのイベントコードです。 コンシューマの準備ができた (コンシューマが存在しない状態から存在する状態になった) ことを示します。 なお、INACTIVE 状態の永続サブスクリプションは「存在しない」とみなされます。
関連項目
com.nec.webotx.messaging.jms.notification.ConsumerEvent#getEventCode()