第2章 レジストリの設定
注記
jdbc:teiid:vdb_name@mm://localhost:31000 です。
- Apache Scout
- Apache Scout は JAXR 実装です。
- レジストリインターフェース
- これは、ESB が jUDDI Registry と通信する手段です。
注記
手順2.1 レジストリ設定の定義
$SOA_ROOT/server/$PROFILE/deployers/esb.deployer/jbossesb-properties.xmlファイルのレジストリのセクションは、以下のプロパティを定義しています。<properties name="registry"> <property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/> <property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/> <property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.v3.client.transport.wrapper.UDDIInquiryService#inquire"/> <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.v3.client.transport.wrapper.UDDIPublicationService#publish"/> <property name="org.jboss.soa.esb.registry.securityManagerURI" value="org.apache.juddi.v3.client.transport.wrapper.UDDISecurityService#secure"/> <property name="org.jboss.soa.esb.registry.user" value="root"/> <property name="org.jboss.soa.esb.registry.password" value="root"/> <property name="org.jboss.soa.esb.scout.proxy.uddiVersion" value="3.0"/> <property name="org.jboss.soa.esb.scout.proxy.uddiNameSpace" value="urn:uddi-org:api_v3"/> <property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/> <!-- specify the interceptors, in order --> <property name="org.jboss.soa.esb.registry.interceptors" value="org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor, org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor"/> <!-- The following properties modify the cache interceptor behaviour --> <property name="org.jboss.soa.esb.registry.cache.maxSize" value="100"/> <property name="org.jboss.soa.esb.registry.cache.validityPeriod" value="600000"/> <!-- Organization Category to be used by this deployment. --> <property name="org.jboss.soa.esb.registry.orgCategory" value="org.jboss.soa.esb.:category"/> </properties>
表2.1 Registry プロパティ
| プロパティ | 説明 |
|---|---|
org.jboss.soa.esb.registry.implementationClass |
JBoss ESB Registry インターフェースを実装するクラスです。
JAXRRegistryImpl の実装 1 つが含まれています。JAXRRegistry インターフェースを使用します。
|
org.jboss.soa.esb.registry.factoryClass |
JAXR ConnectionFactory 実装のクラス名です。
|
org.jboss.soa.esb.registry.queryManagerURI |
サービスのクエリに JAXR で使用する URI です。
|
org.jboss.soa.esb.registry.lifeCycleManagerURI |
JAXR が編集に使用する URI です。
|
org.jboss.soa.esb.registry.user |
編集に使用するユーザー名です。
|
org.jboss.soa.esb.registry.password |
指定のユーザーのパスワードです。
|
org.jboss.soa.esb.scout.proxy.uddiVersion |
クエリの UDDI バージョンです。
|
org.jboss.soa.esb.scout.proxy.uddiNameSpace |
UDDI 名前空間です。
|
org.jboss.soa.esb.scout.proxy.transportClass |
Apache Scout が UDDI Registry にアイテムを送信する際に利用するクラスです。
|
org.jboss.soa.esb.registry.interceptors |
これは Registry に適用されるインターセプター一覧です。ESB には、インターセプターが 2 つあり、1 つは InVM 登録の処理に、もう 1 つは Registry にキャッシュを提供します。
デフォルトのインターセプターは、InVM インターセプター用にエントリ 1 つのみを含みます。
|
org.jboss.soa.esb.registry.cache.maxSize |
これがキャッシュ内に含むことができる最大サーバーエントリ数です。この値を超えると、エントリが最も古い順番に削除されます。デフォルトは、
100 です。
|
org.jboss.soa.esb.registry.cache.validityPeriod |
キャッシュインターセプターに設定された有効期限です。この値はミリ秒で指定し、デフォルトは
600000 (10 分) となっています。キャッシュが失効しないようにするには、この値を 0 に設定してください。
|
org.jboss.soa.esb.registry.orgCategory |
ESB の 組織カテゴリ名です。デフォルトは
org.jboss.soa.esb.:category です。
|
2.1. Registry のコンポーネント

図2.1 Registry コンポーネントのアーキテクチャー
- JBoss Enterprise Service Bus は、
registry interface経由で Registry とのやり取りをすべて送ります。 - その後、このインターフェースの JAXR 実装を呼び出します。
- JAXR API は JAXR 実装を使用する必要があります (デフォルトは Apache Scout)。
- 次に Apache Scout は jUDDI Registry を呼び出します。
注記
注記
org.jboss.soa.esb.registry.implementationClass API は、XML ベースのレジストリやレポジトリであればどれにでも接続できるため、便利です。しかし、別の API を使用することも可能です。
手順2.2 他の API の使用
- 新しい
SystinetRegistryImplemtationクラスを記述して、このプロパティ内から参照します。
2.2. JAXR 実装の設定
手順2.3 JAXR 実装の設定
- 特定の JAXR 実装を選択します。
- プロパティを設定してクラスを構成します (JBoss Enterprise SOA Platform は Apache Scout を使用して、デフォルトでこのプロパティは
org.apache.ws.scout.registry.ConnectionFactoryImplという Scout factory クラスに設定されています)。 - Registry の場所を提供することで、JAXR 実装を設定します。
org.jboss.soa.esb.registry.queryManagerURI、org.jboss.soa.esb.registry.lifeCycleManagerURI、org.jboss.soa.esb.registry.securityManagerURIを編集します。
2.3. jUDDI トランスポートの使用
org.jboss.soa.esb.scout.proxy.transportClass) を設定することができます。これは、Scout と jUDDI Registry の間の通信を容易にする transport クラスです。
LocalTransport のままにして、jUDDI registry のトランスポート (InVM、RMI、WS) を使用するように server/config/deploy/jbossesb.sar/META-INF/esb.juddi.client.xml ファイルを設定します。このファイルは、Registry のノードを定義します。
- ノード
- ノードは、jUDDI Registry の場所です。
手順2.4 トランスポートの選択
- ノード設定を使用してどのトランスポートを使用するか選択します。
<node> <!-- required 'default' node --> <name>default</name> <description>Main jUDDI node</description> <properties> <property name="serverName" value="localhost" /> <property name="serverPort" value="8880" /> </properties> <!-- JAX-WS Transport <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport> <custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer?wsdl</custodyTransferUrl> <inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry?wsdl</inquiryUrl> <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish?wsdl</publishUrl> <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security?wsdl</securityUrl> <subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription?wsdl</subscriptionUrl> <subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener?wsdl</subscriptionListenerUrl> <juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api?wsdl</juddiApiUrl> --> <!-- In VM Transport Settings <proxyTransport>org.jboss.internal.soa.esb.registry.client.JuddiInVMTransport</proxyTransport> <custodyTransferUrl>org.apache.juddi.api.impl.UDDICustodyTransferImpl</custodyTransferUrl> <inquiryUrl>org.apache.juddi.api.impl.UDDIInquiryImpl</inquiryUrl> <publishUrl>org.apache.juddi.api.impl.UDDIPublicationImpl</publishUrl> <securityUrl>org.apache.juddi.api.impl.UDDISecurityImpl</securityUrl> <subscriptionUrl>org.apache.juddi.api.impl.UDDISubscriptionImpl</subscriptionUrl> <subscriptionListenerUrl>org.apache.juddi.api.impl.UDDISubscriptionListenerImpl</subscriptionListenerUrl> <juddiApiUrl>org.apache.juddi.api.impl.JUDDIApiImpl</juddiApiUrl> --> <!-- RMI Transport Settings --> <proxyTransport>org.apache.juddi.v3.client.transport.RMITransport</proxyTransport> <custodyTransferUrl>/juddiv3/UDDICustodyTransferService</custodyTransferUrl> <inquiryUrl>/juddiv3/UDDIInquiryService</inquiryUrl> <publishUrl>/juddiv3/UDDIPublicationService</publishUrl> <securityUrl>/juddiv3/UDDISecurityService</securityUrl> <subscriptionUrl>/juddiv3/UDDISubscriptionService</subscriptionUrl> <subscriptionListenerUrl>/juddiv3/UDDISubscriptionListenerService</subscriptionListenerUrl> <juddiApiUrl>/juddiv3/JUDDIApiService</juddiApiUrl> <javaNamingFactoryInitial>org.jnp.interfaces.NamingContextFactory</javaNamingFactoryInitial> <javaNamingFactoryUrlPkgs>org.jboss.naming</javaNamingFactoryUrlPkgs> <javaNamingProviderUrl>jnp://localhost:1099</javaNamingProviderUrl> </node> - デフォルトでは Remote Method Invocation (RMI) の設定が有効になっています。トランスポートを切り替えるには、RMI の設定をコメントアウトして、使用したいものを有効にします。
transport を設定する場合、以下のアイテムを指定する必要があります。
proxyTransport- 対応の UDDI アプリケーションプログラミングインターフェースすべてに対する URL (
inquiry、publish、security、subscription、subscription-listener、custodytransfer) - jUDDI アプリケーションプログラミングインターフェースの URL
- RMI トランスポート (JNDI 設定を含みます)
2.4. Apache Scout と jUDDI の使用
org.jboss.soa.esb.scout.proxy.transportClass クラス実装が 4 つあり、SOAP、SAAJ、RMI、Embedded Java (Local) それぞれに対して 1 つずつ存在することになります。jUDDI Registry とやり取りを行う場合は、transportClass を LocalTransport に設定したままで残して、Registry のトランスポート (それぞれ、InVM、RMI、WS)を使用するように uddi.xml ファイルを設定します
- jUDDI データベースにアクセスできなければなりません。アクセスできるかを確認するには、データベースにスキーマを作成して、
jbossesb publisherを追加します (product/install/jUDDI-registryディレクトリには、最も一般的なデータベース向けのdatabase-createスクリプトが含まれています。)注記
ユーザーにテーブル作成の権限が与えられている場合は、システムにより自動でデータベースを生成することができます。jUDDI Registry は、関連の Hibernate 方言が存在するデータベースを作成することができます。 esb.juddi.xmlとesb.juddi.client.xmlは必須ファイルです。これらのファイルには、実際の jUDDI 設定が含まれています。
注記
SOAP queryManagerURI http://localhost:8080/juddi/inquiry lifeCycleManagerURI http://localhost:8080/juddi/publish transportClass org.apache.ws.scout.transport.AxisTransport RMI queryManagerURI jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire lifeCycleManagerURI jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish transportClass org.apache.ws.scout.transport.RMITransport Local queryManagerURI org.apache.juddi.registry.local.InquiryService#inquire lifeCycleManagerURI org.apache.juddi.registry.local.PublishService#publish transportClass org.apache.ws.scout.transport.LocalTransport
2.5. Registry インターセプター
- リクエストにサービスを提供
- リクエストに直接レスポンス
- 下層にあるインターセプターまたはレジストリ実装から受け取ったレスポンスを拡大

図2.2 Registry インターセプター
手順2.5 インターセプタースタックの設定
jbossesb-properties.xmlファイルを開き org.jboss.soa.esb.registry.interceptors プロパティを変更します。
表2.2 Registry プロパティ
| プロパティ | 説明 |
|---|---|
| org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor |
InVM レジストリインターセプターは、InVM エンドポイント参照の処理を担当します。同じサーバーインスタンス内で実行するサービスにより登録されます。InVM EPR や関連サービスの情報は、インターセプター内にキャッシュされ、後続のインターセプターに伝搬されず、後続のインターセプターやレジストリクエリからの決定を最適化して呼び出し元に返されます。
|
| org.jboss.internal.soa.esb.services.registry.CachingRegistryInterceptor |
キャッシュレジストリのインターセプターは、エンドポイント参照のキャッシュと関連のサービスを保持して、LRU ベースまたは、情報が失効した後にキャッシュから情報をエビクトします。
インターセプターは、jbossesb-properties.xml 内でorg.jboss.soa.esb.registry.cache.maxSize と org.jboss.soa.esb.registry.cache.validityPeriod プロパティを使用して設定することができます。
|

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.