重複するコンポジット・センサー名に関する必知事項

コンポジット・センサーに重複する名前を使用する場合は、次の詳細に注意してください。

  • 重複する名前を持つコンポジット・センサーを作成すると、定義の内容全体が比較されます。重複する名前は、1つ以上の追加パラメータが異なる場合に許可されます(たとえば、異なる構成タイプや異なる式、フィルタ、操作名など)。重複する名前が許可されるためには、定義で何かが異なっている必要があります。

  • 重複するセンサー定義がある場合は、最後に実行されたセンサー値のみが維持されます。このため、相互に排他的なパスに対してこのタイプの構成を使用できます(たとえば、コンポジットはサービス1またはサービス2によって起動されます)。したがって、両方のサービスで同じセンサー名を定義できます。ただし、サービス1と参照1に同じ名前を定義した場合、参照1のセンサー値(最後に実行されたセンサー)のみが格納されます。

  • 通常は、同じ名前の複数のセンサーを使用して、異なるソースから抽出された同じ論理エンティティを指します(たとえば、Oracle Enterprise Manager Fusion Middleware Controlでは、最終的なセンサー値が表示されます)。このため、異なるソースから電子メール値と社会保障値を抽出する場合に同じセンサー名を使用すると、混乱を招く可能性があります。

  • センサー・アクションは、同じセンサー名のすべての発生に適用されます。この状況は、最近定義された同じ名前のセンサーのセンサー・アクションが優先されることを意味します。

次の例のsensor.xmlに示すシナリオでは:

  • Service1という名前に最初の2つのセンサーは同一です。さらに、構成タイプはどちらもserviceConfig(サービス・バインディング・コンポーネントで定義されたコンポジット・センサー)です。したがって、センサーは1つのエントリになります(2番目のセンサーは無視されます)。

  • Service1という名前の3番目のセンサーは、異なる構成タイプeventConfig(ビジネス・イベントで定義されたコンポジット・センサー)を持ちます。したがって、このセンサーは別のエントリで表されます。

  • PurchaseOrder Idという名前の2つのセンサーは、構成タイプが異なります(eventConfigおよびserviceConfig)。したがって、これらは別のエントリで表されます。

  • PurchaseOrderという名前の2つのセンサーは、構成タイプは同じ(eventConfig)ですが、式は異なります。したがって、これらは別のエントリで表されます。

<sensors xmlns="http://xmlns.oracle.com/bpel/sensor">
   <sensor sensorName="Service1" kind="service" target="undefined" filter="">
      <serviceConfig service="OrderPublisher_ep"
 expression="$in.property.tracking.ecid" operation="execute"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
   <sensor sensorName="Service1" kind="service" target="undefined" filter="">
      <serviceConfig service="OrderPublisher_ep"
 expression="$in.property.tracking.ecid" operation="execute"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
   <sensor sensorName="Service1" kind="event" target="undefined" filter=""
 xmlns:po="http://www.mycompany.com/ns/order">
      <eventConfig component="EventMediator"
 expression="$in/po:PurchaseOrder/po:OrderID"
 event="{http://mycompany.com/events/orders}OrderReceivedEvent"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   <sensor sensorName="Event1" kind="event" target="undefined" filter="">
      <eventConfig component="EventMediator" actionType="Subscribe"
 expression="$in.property.tracking.ecid"
 event="{http://mycompany.com/events/orders}OrderReceivedEvent"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
   <sensor sensorName="PurchaseOrder Id" kind="event" target="undefined" filter=""
 xmlns:po="http://www.mycompany.com/ns/order">
      <eventConfig component="EventMediator"
 expression="$in/po:PurchaseOrder/po:OrderID"
 event="{http://mycompany.com/events/orders}OrderReceivedEvent"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
  <sensor sensorName="PurchaseOrder Id" kind="service" target="undefined"
 filter="">
      <serviceConfig service="OrderPublisher_ep"
 expression="$in.property.tracking.ecid" operation="execute"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
   <sensor sensorName="PurchaseOrder" kind="event" target="undefined" filter=""
 xmlns:po="http://www.mycompany.com/ns/order">
      <eventConfig component="EventMediator" expression="$in/po:PurchaseOrder"
 event="{http://mycompany.com/events/orders}OrderReceivedEvent"
 outputDataType="PurchaseOrder"
 outputNamespace="http://mycompany.com/events/orders"/>
   </sensor>
   <sensor sensorName="PurchaseOrder" kind="event" target="undefined" filter=""
 xmlns:po="http://www.mycompany.com/ns/order">
      <eventConfig component="EventMediator"
 expression="$in/po:PurchaseOrder/po:OrderID"
 event="{http://mycompany.com/events/orders}OrderReceivedEvent"
 outputDataType="string" outputNamespace="http://www.w3.org/2001/XMLSchema"/>
   </sensor>
   </sensor>
</sensors>