285.5. 高度な使用方法


285.5.1. プラグ可能な接続リソース管理

SJMS は、組み込み 接続 プールを使用して JMS 接続リソース管理を提供します。これにより、サードパーティーの API プーリングロジックに依存する必要がなくなります。ただし、J2EE や OSGi コンテナーによって提供される外部接続リソースマネージャーを使用する必要がある場合があります。この SJMS は、内部 SJMS 接続プール機能を上書きするために使用できるインターフェースを提供します。これは、ConnectionResource インターフェースを使用して実行できます。

Connection Resource は、必要に応じて接続をバンドルおよび返すメソッドが、接続プールを SJMS コンポーネントに提供するために使用されるコントラクトです。SJMS を外部接続プールマネージャーと統合する必要がある場合にユーザーを使用する必要があります。

標準の ConnectionFactory プロバイダーでは、SJMS をそのまま提供される ConnectionFactoryResource 実装を使用することが、このコンポーネントに対して最適化されるので、拡張することが推奨されます。

以下は、ActiveMQ PooledConnectionFactory でプラグイン可能な ConnectionResource を使用する例です。

public class AMQConnectionResource implements ConnectionResource {
    private PooledConnectionFactory pcf;

    public AMQConnectionResource(String connectString, int maxConnections) {
        super();
        pcf = new PooledConnectionFactory(connectString);
        pcf.setMaxConnections(maxConnections);
        pcf.start();
    }

    public void stop() {
        pcf.stop();
    }

    @Override
    public Connection borrowConnection() throws Exception {
        Connection answer = pcf.createConnection();
        answer.start();
        return answer;
    }

    @Override
    public Connection borrowConnection(long timeout) throws Exception {
        // SNIPPED...
    }

    @Override
    public void returnConnection(Connection connection) throws Exception {
        // Do nothing since there isn't a way to return a Connection
        // to the instance of PooledConnectionFactory
        log.info("Connection returned");
    }
}

次に、ConnectionResourceSjmsComponent に渡します。

CamelContext camelContext = new DefaultCamelContext();
AMQConnectionResource pool = new AMQConnectionResource("tcp://localhost:33333", 1);
SjmsComponent component = new SjmsComponent();
component.setConnectionResource(pool);
camelContext.addComponent("sjms", component);

使用方法の完全なサンプルを表示するには、ConnectionResourceIT を参照してください。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る