検索

3.5. トランザクションクライアントとトランザクションマネージャー間の OSGi インターフェイス

download PDF

Warehouse トランザクションクライアント API と Spring Boot トランザクションクライアント API の記述後に、Fuse などの OSGi サーバー内の関係を確認すると便利です。OSGi の機能の 1 つは、グローバルサービスレジストリーで、以下を実行するために使用できます。

  • フィルターまたはインターフェイスでサービスを検索します。
  • 指定されたインターフェイスとプロパティーでサービスを登録します。

Java EE アプリケーションサーバーにデプロイされたアプリケーションが、JNDI (サービスロケータメソッド) を使用して javax.transaction.UserTransaction への参照を取得したり、CDI (依存性注入メソッド) で注入したりするのと同じように、OSGi では、同じ参照 (直接的または間接的) を以下のいずれかの方法で取得できます。

  • org.osgi.framework.BundleContext.getServiceReference() メソッド (サービスロケーター) を呼び出します。
  • それらを Blueprint コンテナーに挿入します。
  • Service Component Runtime(SCR) アノテーション (依存性注入) を使用します。

以下の図は、OSGi ランタイムにデプロイされた Fuse アプリケーションを示しています。アプリケーションコードや Camel コンポーネントは API を使用してトランザクションマネージャー、データソース、および接続ファクトリーへの参照を取得します。

OSGi トランザクションアーキテクチャー

アプリケーション (バンドル) は、OSGi レジストリーに登録されているサービスと対話します。インターフェイス を介してアクセスされ、これがアプリケーションに関連するすべてです。

Fuse では、(直接的または小さなラッパーを介して) トランザクションクライアントインターフェイスを実装する基本オブジェクトは org.jboss.narayana.osgi.jta.internal.OsgiTransactionManager です。以下のインターフェイスを使用してトランザクションマネージャーにアクセスできます。

  • javax.transaction.TransactionManager
  • javax.transaction.UserTransaction
  • org.springframework.transaction.PlatformTransactionManager
  • org.ops4j.pax.transx.tm.TransactionManager

これらのインターフェイスを直接使用するか、Camel などのフレームワークまたはライブラリーを選択して暗黙的に使用することができます。

Fuse で org.jboss.narayana.osgi.jta.internal.OsgiTransactionManager を設定する方法は、4章Narayana トランザクションマネージャーの設定 を参照してください。このガイドの後半の章では、その章の情報に基づいて、JDBC データソースや JMS 接続ファクトリーなどの他のサービスを設定および使用する方法について説明します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.