クラス AbstractJmsListeningContainer
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、DisposableBean
、InitializingBean
、Lifecycle
、Phased
、SmartLifecycle
- 既知の直属サブクラス
AbstractMessageListenerContainer
JmsAccessor
基本クラスから継承します。 このクラスは、基本的なライフサイクル管理、特に共有 JMS 接続の管理を提供します。サブクラスはこのライフサイクルにプラグインされ、sharedConnectionEnabled()
および doInitialize()
および doShutdown()
テンプレートメソッドを実装することになっています。
この基本クラスは、特定のリスナープログラミングモデルまたはリスナー呼び出しメカニズムを想定していません。JMS 接続 / セッションで動作するあらゆる種類の JMS ベースのリスニングメカニズムに必要な一般的なランタイムライフサイクル管理を提供するだけです。
具体的なリスナープログラミングモデルについては、AbstractMessageListenerContainer
サブクラスを確認してください。具体的なリスナー呼び出しメカニズムについては、DefaultMessageListenerContainer
クラスを確認してください。
- 導入:
- 2.0.3
- 作成者:
- Juergen Hoeller
- 関連事項:
ネストされたクラスのサマリー
修飾子と型クラス説明static class
このコンテナーの共有 JMS 接続の初期セットアップが失敗したことを示す例外。フィールドサマリー
クラス org.springframework.jms.support.destination.JmsDestinationAccessor から継承されたフィールド
RECEIVE_TIMEOUT_INDEFINITE_WAIT, RECEIVE_TIMEOUT_NO_WAIT
クラス org.springframework.jms.support.JmsAccessor から継承されたフィールド
logger
インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド
DEFAULT_PHASE
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
validateConfiguration()
およびinitialize()
へのデリゲート。protected ConnectionEE
このコンテナーの共有接続を作成します。void
destroy()
BeanFactory がコンテナーインスタンスを破棄するときにshutdown()
を呼び出します。protected abstract void
このコンテナー内の呼び出し元を登録します。protected void
doRescheduleTask
(ObjectSE task) 指定されたタスクオブジェクトをすぐに再スケジュールします。protected abstract void
登録された呼び出し元を閉じます。protected void
doStart()
共有接続があれば開始し、すべての呼び出し元タスクに通知します。protected void
doStop()
すべての呼び出し元タスクに通知し、共有接続があれば停止します。protected void
このコンテナーの共有接続を確立します。protected final StringSE
このリスナーコンテナーが含まれている Bean ファクトリで割り当てられている Bean 名を返します(存在する場合)。このコンテナーによって作成および使用される共有接続の JMS クライアント ID を返します(ある場合)。int
現在一時停止しているタスクがある場合は、その数を確認します。int
getPhase()
このコンテナーが開始および停止されるライフサイクルフェーズを返します。protected final ConnectionEE
このコンテナーによって維持されている共有 JMS 接続を返します。void
このコンテナーを初期化します。final boolean
isActive()
このコンテナーが現在アクティブであるかどうか、つまり、セットアップされているがまだシャットダウンされていないかどうかを返します。boolean
final boolean
このコンテナーが現在実行中かどうか、つまり、コンテナーが開始されていて、まだ停止されていないかどうかを判別してください。protected void
logRejectedTask
(ObjectSE task, RuntimeExceptionSE ex) doRescheduleTask(java.lang.Object)
によって拒否されたタスクをログに記録します。protected void
prepareSharedConnection
(ConnectionEE connection) このコンテナーの共有接続として登録される、指定された接続を準備します。protected final void
このコンテナーが保持している共有接続をリフレッシュします。protected final void
共有接続がある場合は、それを解放します。protected final boolean
このコンテナーが現在実行されている場合はすぐに、または後でこのコンテナーが再起動されたら、指定されたタスクオブジェクトを取得して再スケジュールします。protected void
一時停止したすべてのタスクを再開してください。protected boolean
このコンテナーのリスナーが一般に実行を許可されているかどうかを確認します。void
setAutoStartup
(boolean autoStartup) 初期化後にコンテナーを自動的に起動するかどうかを設定します。void
setBeanName
(StringSE beanName) この Bean を作成した Bean ファクトリで Bean の名前を設定します。void
setClientId
(StringSE clientId) このコンテナーによって作成および使用される共有接続の JMS クライアント ID を指定します。void
setPhase
(int phase) このコンテナーを開始および停止するライフサイクルフェーズを指定します。protected abstract boolean
共有 JMS 接続をこのコンテナー基本クラスで維持する必要があるかどうかを返します。void
shutdown()
共有接続を停止し、doShutdown()
を呼び出して、このコンテナーを閉じます。void
start()
このコンテナーを起動します。protected void
共有接続を開始します。void
stop()
このコンテナーを停止します。protected void
共有接続を停止します。protected void
このコンテナーの構成を検証します。クラス org.springframework.jms.support.destination.JmsDestinationAccessor から継承されたメソッド
getDestinationResolver, isPubSubDomain, receiveFromConsumer, resolveDestinationName, setDestinationResolver, setPubSubDomain
クラス org.springframework.jms.support.JmsAccessor から継承されたメソッド
convertJmsAccessException, createConnection, createSession, getConnectionFactory, getSessionAcknowledgeMode, isClientAcknowledge, isSessionTransacted, obtainConnectionFactory, setConnectionFactory, setSessionAcknowledgeMode, setSessionAcknowledgeModeName, setSessionTransacted
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド
stop
フィールドの詳細
lifecycleMonitor
コンストラクターの詳細
AbstractJmsListeningContainer
public AbstractJmsListeningContainer()
メソッドの詳細
setClientId
このコンテナーによって作成および使用される共有接続の JMS クライアント ID を指定します。クライアント ID は、基盤となる JMS プロバイダーのすべてのアクティブな接続間で一意である必要があることに注意してください。さらに、クライアント ID は、元の ConnectionFactory がまだ割り当てていない場合にのみ割り当てることができます。
getClientId
このコンテナーによって作成および使用される共有接続の JMS クライアント ID を返します(ある場合)。setAutoStartup
public void setAutoStartup(boolean autoStartup) 初期化後にコンテナーを自動的に起動するかどうかを設定します。デフォルトは "true" です。これを "false" に設定すると、
start()
メソッドによる手動起動が可能になります。isAutoStartup
public boolean isAutoStartup()インターフェースからコピーされた説明:SmartLifecycle
true
が含まれるApplicationContext
がリフレッシュされるときに、このLifecycle
コンポーネントがコンテナーによって自動的に開始される場合、true
を返します。false
の値は、プレーンLifecycle
実装に類似した、明示的なLifecycle.start()
呼び出しを介してコンポーネントが開始されることを意図していることを示します。デフォルトの実装は
true
を返します。setPhase
public void setPhase(int phase) このコンテナーを開始および停止するライフサイクルフェーズを指定します。起動順序は最低位から最高位へ進み、シャットダウン順序はその逆になります。デフォルトは
SmartLifecycle.DEFAULT_PHASE
で、このコンテナーはできるだけ遅く開始され、できるだけ早く停止することを意味します。getPhase
public int getPhase()このコンテナーが開始および停止されるライフサイクルフェーズを返します。- 次で指定:
- インターフェース
Phased
のgetPhase
- 次で指定:
- インターフェース
SmartLifecycle
のgetPhase
- 関連事項:
setBeanName
インターフェースからコピーされた説明:BeanNameAware
この Bean を作成した Bean ファクトリで Bean の名前を設定します。通常の Bean プロパティの設定後、ただし
InitializingBean.afterPropertiesSet()
またはカスタム init メソッドなどの init コールバックの前に呼び出されます。- 次で指定:
- インターフェース
BeanNameAware
のsetBeanName
- パラメーター:
beanName
- ファクトリ内の Bean の名前。この名前は、ファクトリで使用される実際の Bean 名であり、最初に指定した名前とは異なる場合があります。特に内部 Bean 名の場合、実際の Bean 名は "#..." サフィックスを追加することで一意になります。必要に応じて、BeanFactoryUtils.originalBeanName(String)
メソッドを使用して、元の Bean 名(サフィックスなし)を抽出します。
getBeanName
このリスナーコンテナーが含まれている Bean ファクトリで割り当てられている Bean 名を返します(存在する場合)。afterPropertiesSet
public void afterPropertiesSet()validateConfiguration()
およびinitialize()
へのデリゲート。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
JmsAccessor
のafterPropertiesSet
validateConfiguration
protected void validateConfiguration()このコンテナーの構成を検証します。デフォルトの実装は空です。サブクラスでオーバーライドされます。
destroy
public void destroy()BeanFactory がコンテナーインスタンスを破棄するときにshutdown()
を呼び出します。- 次で指定:
- インターフェース
DisposableBean
のdestroy
- 関連事項:
initialize
このコンテナーを初期化します。JMS 接続を作成し、
Connection
EE を開始し("autoStartup"
がオフになっていない場合)、doInitialize()
を呼び出します。- 例外:
JmsException
- 起動に失敗した場合
shutdown
共有接続を停止し、doShutdown()
を呼び出して、このコンテナーを閉じます。- 例外:
JmsException
- シャットダウンに失敗した場合
isActive
public final boolean isActive()このコンテナーが現在アクティブであるかどうか、つまり、セットアップされているがまだシャットダウンされていないかどうかを返します。start
このコンテナーを起動します。- 次で指定:
- インターフェース
Lifecycle
のstart
- 例外:
JmsException
- 起動に失敗した場合- 関連事項:
doStart
共有接続があれば開始し、すべての呼び出し元タスクに通知します。- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
stop
このコンテナーを停止します。- 次で指定:
- インターフェース
Lifecycle
のstop
- 例外:
JmsException
- 停止に失敗した場合- 関連事項:
doStop
すべての呼び出し元タスクに通知し、共有接続があれば停止します。- 例外:
JMSExceptionEE
- JMS API メソッドによってスローされた場合- 関連事項:
isRunning
public final boolean isRunning()このコンテナーが現在実行中かどうか、つまり、コンテナーが開始されていて、まだ停止されていないかどうかを判別してください。runningAllowed
protected boolean runningAllowed()rescheduleTaskIfNecessary
このコンテナーが現在実行されている場合はすぐに、または後でこのコンテナーが再起動されたら、指定されたタスクオブジェクトを取得して再スケジュールします。このコンテナーがすでにシャットダウンされている場合、タスクは再スケジュールされません。
- パラメーター:
task
- 再スケジュールするタスクオブジェクト- 戻り値:
- タスクが再スケジュールされたかどうか (すぐに、またはこのコンテナーの再起動用)
- 関連事項:
resumePausedTasks
protected void resumePausedTasks()一時停止したすべてのタスクを再開してください。再スケジュールが失敗したタスクは、単に一時停止モードのままになります。getPausedTaskCount
public int getPausedTaskCount()現在一時停止しているタスクがある場合は、その数を確認します。doRescheduleTask
指定されたタスクオブジェクトをすぐに再スケジュールします。rescheduleTaskIfNecessary
を呼び出した場合にサブクラスによって実装されます。この実装は UnsupportedOperationException をスローします。- パラメーター:
task
- 再スケジュールするタスクオブジェクト- 関連事項:
logRejectedTask
doRescheduleTask(java.lang.Object)
によって拒否されたタスクをログに記録します。デフォルトの実装では、対応するメッセージを警告レベルでログに記録するだけです。
- パラメーター:
task
- 拒否されたタスクオブジェクトex
-doRescheduleTask(java.lang.Object)
からスローされた例外
doInitialize
このコンテナー内の呼び出し元を登録します。サブクラスは、特定の呼び出し元管理プロセスのためにこのメソッドを実装する必要があります。
共有 JMS 接続がある場合は、この時点ですでに開始されています。
- 例外:
JMSExceptionEE
- 登録に失敗した場合- 関連事項:
doShutdown
登録された呼び出し元を閉じます。サブクラスは、特定の呼び出し元管理プロセスのためにこのメソッドを実装する必要があります。
共有 JMS 接続がある場合は、 その後自動的に閉じられます。
- 例外:
JMSExceptionEE
- シャットダウンに失敗した場合- 関連事項: