public class FailoverClientConnectionFactory extends AbstractClientConnectionFactory
TcpConnection
を提供し、書き込みが成功するかリストが使い果たされるまで、各ファクトリからの接続を反復処理できます。DEFAULT_REPLY_TIMEOUT, lifecycleMonitor
EXPRESSION_PARSER, logger
コンストラクターと説明 |
---|
FailoverClientConnectionFactory(ListSE<AbstractClientConnectionFactory> factories) 提供されたデリゲートファクトリを使用してインスタンスを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean | isRunning() すべてのファクトリが稼働している場合は true を返します |
protected TcpConnectionSupport | obtainConnection() |
protected void | onInit() サブクラスは、初期化ロジック用にこれを実装できます。 |
void | registerListener(TcpListener listener) データの受信に使用されるデリゲート TCP クライアント接続ファクトリには、メッセージを送信するリスナーが必要です。 |
void | registerSender(TcpSender sender) TcpSender を登録します。サーバーソケットの場合、接続情報を提供するために使用されるため、送信者は受信メッセージに返信するために使用できます。 |
void | setCloseOnRefresh(boolean closeOnRefresh) 共有接続を使用する場合 singleUse が false の場合、これを true に設定すると、リフレッシュ後に古い共有接続が閉じられます。 |
void | setRefreshSharedInterval(long refreshSharedInterval) 共有接続 singleUse を使用する場合、false の場合、ファクトリリストの最初からフェールバックして開始するまでの待機時間を指定します。 |
void | start() |
void | stop() サーバーの停止。 |
buildNewConnection, enableManualListenerRegistration, forceClose, getConnection, getConnectionTest, getConnectTimeout, getTheConnection, initializeConnection, obtainNewConnection, obtainSharedConnection, setConnectionTest, setConnectTimeout, setTheConnection
addConnection, checkActive, closeConnection, delayRead, doAccept, getApplicationEventPublisher, getDelayedReads, getDeserializer, getHost, getLifecycleMonitor, getListener, getMapper, getOpenConnectionIds, getPort, getReadDelay, getSender, getSenders, getSerializer, getSoLinger, getSoReceiveBufferSize, getSoSendBufferSize, getSoTimeout, getSoTrafficClass, getSslHandshakeTimeout, getTaskExecutor, getTcpSocketSupport, harvestClosedConnections, isActive, isLookupHost, isSingleUse, isSoKeepAlive, isSoTcpNoDelay, processNioSelections, setActive, setApplicationEventPublisher, setDeserializer, setHost, setInterceptorFactoryChain, setLeaveOpen, setLookupHost, setMapper, setNioHarvestInterval, setPort, setReadDelay, setSerializer, setSingleUse, setSocketAttributes, setSoKeepAlive, setSoLinger, setSoReceiveBufferSize, setSoSendBufferSize, setSoTcpNoDelay, setSoTimeout, setSoTrafficClass, setSslHandshakeTimeout, setTaskExecutor, setTcpSocketSupport, toString, unregisterSender, wrapConnection
afterPropertiesSet, extractTypeIfPossible, generateId, getApplicationContext, getApplicationContextId, getBeanDescription, getBeanFactory, getBeanName, getChannelResolver, getComponentName, getComponentType, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, isInitialized, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, setTaskScheduler
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
public FailoverClientConnectionFactory(ListSE<AbstractClientConnectionFactory> factories)
factories
- 代表団。public void setRefreshSharedInterval(long refreshSharedInterval)
singleUse
を使用する場合、false の場合、ファクトリリストの最初からフェールバックして開始するまでの待機時間を指定します。デフォルトは Long.MAX_VALUE
SE です。これは、現在の接続が失敗した場合にのみフェールバックすることを意味します。CachingClientConnectionFactory
デリゲートを使用している場合は変更できません。refreshSharedInterval
- ミリ秒単位の間隔。AbstractConnectionFactory.setSingleUse(boolean)
, setCloseOnRefresh(boolean)
public void setCloseOnRefresh(boolean closeOnRefresh)
singleUse
が false の場合、これを true に設定すると、リフレッシュ後に古い共有接続が閉じられます。これが false の場合、接続は開いたままになりますが、接続ファクトリが接続の取得に再び使用されるまで使用されません。下位互換性のため、デフォルトは false です。CachingClientConnectionFactory
デリゲートを使用している場合は変更できません。closeOnRefresh
- 閉じます。AbstractConnectionFactory.setSingleUse(boolean)
, setRefreshSharedInterval(long)
protected void onInit()
IntegrationObjectSupport
AbstractConnectionFactory
の onInit
public void registerListener(TcpListener listener)
初期化中に、ファクトリにリスナーがないことが検出されると、そのリスニングロジック(アクティブスレッド)は終了します。
onMessage() メソッドを呼び出すことができるように、ファクトリに登録されたリスナーは、それが作成する各接続に提供されます。
このコードは、このリスナーがリスニングロジックを実行する必要があることをファクトリに通知するという最初の要件を満たします。
実際の接続を FailoverTcpConnections でラップすると、接続にはリスナーとしてラッパーが渡されるため、onMessage() のヘッダーを拡張できます。その後、ラッパーは変更されたメッセージを使用して、ここで提供される実際のリスナーを呼び出します。
AbstractConnectionFactory
の registerListener
listener
- TcpListener。public void registerSender(TcpSender sender)
AbstractConnectionFactory
AbstractConnectionFactory
の registerSender
sender
- 送り主 protected TcpConnectionSupport obtainConnection() throws InterruptedExceptionSE
AbstractClientConnectionFactory
の obtainConnection
InterruptedExceptionSE
public void start()
Lifecycle
の start
ManageableLifecycle
の start
AbstractConnectionFactory
の start
public void stop()
AbstractConnectionFactory
Lifecycle
の stop
ManageableLifecycle
の stop
AbstractConnectionFactory
の stop
public boolean isRunning()
Lifecycle
の isRunning
ManageableLifecycle
の isRunning
AbstractConnectionFactory
の isRunning