170.5.4. 管理命名パターン


Camel 2.10 で利用可能

Camel 2.10 以降では、MBean の命名パターンの設定を容易にします。このパターンは、ドメイン名の後にキーとして ObjectName の一部として使用されます。

デフォルトでは、Camel は以下のように ManagedCamelContextMBean に MBean 名を使用します。

Copy to Clipboard Toggle word wrap
org.apache.camel:context=localhost/camel-1,type=context,name=camel-1

Camel 2.13 以降では、ホスト名は MBean 名に含まれないため、上記の例は以下のようになります。

Copy to Clipboard Toggle word wrap
org.apache.camel:context=camel-1,type=context,name=camel-1

CamelContext で名前を設定すると、その名前は ObjectName に含まれます。たとえば、以下があるとします。

Copy to Clipboard Toggle word wrap
<camelContext id="myCamel" ...>

この場合、MBean 名は以下のようになります。

Copy to Clipboard Toggle word wrap
org.apache.camel:context=localhost/myCamel,type=context,name=myCamel

JVM に命名の競合がある場合(上記の名前が指定された MBean がすでに存在しているなど)、Camel はデフォルトでカウンターを使用して JMXMBeanServer で新しい空き名を見つけようとします。カウンターが追加されたように、ObjectName の一部として myCamel-1 があります。

Copy to Clipboard Toggle word wrap
org.apache.camel:context=localhost/myCamel-1,type=context,name=myCamel

これは、Camel はデフォルトで以下のトークンをサポートする命名パターンを使用するためです。

  • camelId = the CamelContext id (eg the name)
  • name - same as camelId
  • counter - インクリメントカウンター * bundleId - OSGi バンドル ID(OSGi 環境のみ)
  • symbolicName: OSGi シンボリック名(OSGi 環境のみ)
  • バージョン: OSGi バンドルバージョン(OSGi 環境のみ)

デフォルトの命名パターンは、OSGi と非 OSGi を区別します。

  • OSGI 以外の: 名前
  • OSGi: bundleId-name
  • OSGi Camel 2.13

しかし、JMXMBeanServer に命名の競合がある場合、Camel は自動的にフォールバックを行い、パターンの カウンター を使用してこれを変更します。そのため、以下のパターンが使用されます。

  • OSGI 以外の - name-counter
  • OSGi: bundleId-name-counter
  • OSGi Camel 2.13: symbolicName-counter

明示的な命名パターンを設定した場合、そのパターンは常に使用され、上記のデフォルトのパターンは使用され ません

これにより、レジストリー内の CamelContext ID と JMXMBeanRegistry の JMX MBean の両方に対する命名を完全に制御し、非常に簡単に制御できます。

Camel 2.15 以降では、JVM システムプロパティーを使用してデフォルトの管理名パターンを設定し、これを JVM に対してグローバルに設定できます。以下の例のように、このパターンを明示的に設定することで、このパターンを上書きできます。

JVM システムプロパティーを設定して、その名前の前に名前を追加するデフォルトの管理名パターンを使用します。

Copy to Clipboard Toggle word wrap
System.setProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN, "cool-#name#");

したがって、CamelContext を明示的に名前を付け、固定 MBean 名を使用する場合は、変更しない(カウンターはありません)、新しい managementNamePattern 属性を使用できます。

Copy to Clipboard Toggle word wrap
<camelContext id="myCamel" managementNamePattern="#name#">

この場合、MBean 名は常に以下のようになります。

Copy to Clipboard Toggle word wrap
org.apache.camel:context=localhost/myCamel,type=context,name=myCamel

Java では、以下のように managementNamePattern を設定できます。

Copy to Clipboard Toggle word wrap
context.getManagementNameStrategy().setNamePattern("#name#");

また、id 以外の名前を managementNamePattern で使用することができるため、たとえば以下を行うことができます。

Copy to Clipboard Toggle word wrap
<camelContext id="myCamel" managementNamePattern="coolCamel">

OSGi バンドル ID を MBean 名の一部として望ましくない場合に、OSGi 環境ではこの設定を行うことができます。サーバーを再起動するか、同じアプリケーションのアンインストールおよびインストールを行うと、OSGi バンドル ID が変更される可能性があります。次に、以下のように、OSGi バンドル ID を名前の一部として使用しないようにすることができます。

Copy to Clipboard Toggle word wrap
<camelContext id="myCamel" managementNamePattern="#name#">

これには、myCamel は JVM 全体で一意である必要があることに注意してください。同じ CamelContext id と managementNamePattern を持つ 2 番目の Camel アプリケーションをインストールすると、Camel は起動時に失敗し、MBean はすでに存在する例外を報告します。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat, Inc.