2014-02-18 6 views
0

Я использую wso2cep 3.0.0 и activemq5.8.0 В соответствии с документами CEP я хочу публиковать события, используя CEP. Для этого я начал ActiveMQ с 2 определяют QUEUES с именем jmsProxy для входящего сообщения и JmsProxy для из message.I добавлены необходимые банки в КЭП Lib ActiveMQ-брокер-5.8.0.jar, ActiveMQ-клиент -5.8.0.jar, axiom.jar, Джеронимо-j2ee-management_1.1_spec-1.0.1.jar, Джеронимо-jms_1.1_spec-1.1.1.jar, hawtbuf-1.2.jar, xpp3-1.1.4c.jar , XStream-1.4.4.jarКак работать с wso2CEP3.0.0 и activemq 5.8.0

моя конфигурация как этот InputEventAdaptor

<?xml version="1.0" encoding="UTF-8"?> 
<inputEventAdaptor name="jmsProxy" statistics="disable" trace="enable" 
    type="jms" xmlns="http://wso2.org/carbon/eventadaptormanager"> 
    <property name="java.naming.provider.url">tcp://localhost:61616</property> 
    <property name="transport.jms.SubscriptionDurable">true</property> 
    <property name="transport.jms.DurableSubscriberName">jmsProxy</property> 
    <property name="transport.jms.UserName">admin</property> 
    <property name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</property> 
    <property name="transport.jms.Password">admin</property> 
    <property name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</property> 
    <property name="transport.jms.DestinationType">queue</property> 
</inputEventAdaptor> 

выше для входящих сообщений, которые подберут сообщения от jmsProxy очереди Но его не удалось подобрать сообщение от jmsProxy Queue.How бы я начать это, чтобы получить сообщение в СЕР и outputEventAdaptor

конфигурация строитель
<?xml version="1.0" encoding="UTF-8"?> 
<outputEventAdaptor name="JmsProxy" statistics="disable" trace="disable" 
    type="jms" xmlns="http://wso2.org/carbon/eventadaptormanager"> 
    <property name="java.naming.security.principal">admin</property> 
    <property name="java.naming.provider.url">tcp://localhost:61616</property> 
    <property name="java.naming.security.credentials">admin</property> 
    <property name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</property> 
    <property name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</property> 
    <property name="transport.jms.DestinationType">queue</property> 
</outputEventAdaptor> 

событие, как этот

<?xml version="1.0" encoding="UTF-8"?> 
<eventBuilder name="ReadingsDtoBuilder" statistics="disable" 
    trace="disable" xmlns="http://wso2.org/carbon/eventbuilder"> 
<from eventAdaptorName="jmsProxy" eventAdaptorType="jmsProxy"> 
    <property name="transport.jms.Destination">JmsProxy</property> 
</from> 
<mapping customMapping="disable" 
    parentXpath="//ReadingsLiteTaildtos" type="xml"> 
    <property> 
     <from xpath="//ReadingsLiteTaildto/ParameterId"/> 
     <to name="meta_parameterId" type="string"/> 
    </property> 
    <property> 
     <from xpath="//ReadingsLiteTaildto/Slno"/> 
     <to name="meta_slno" type="string"/> 
    </property> 
    <property> 
     <from xpath="//ReadingsLiteTaildto/FinalValue"/> 
     <to name="finalValue" type="int"/> 
    </property> 
    <property> 
     <from xpath="//ReadingsLiteTaildto/InputText"/> 
     <to name="inputText" type="string"/> 
    </property> 
    <property> 
     <from xpath="//ReadingsLiteTaildto/InputValue"/> 
     <to name="inputValue" type="double"/> 
    </property> 
</mapping> 
<to streamName="org.sample.readings.dto.stream" version="1.0.0"/> 
</eventBuilder> 

План выполнения может быть как follows.like этого

<?xml version="1.0" encoding="UTF-8"?> 
<executionPlan name="ReadingsAnalyzer" statistics="disable" 
    trace="disable" xmlns="http://wso2.org/carbon/eventprocessor"> 
    <description>This execution plan analyzes readings and triggers notifications based on  threshold.</description> 
    <siddhiConfiguration> 
    <property name="siddhi.enable.distributed.processing">false</property> 
    <property name="siddhi.persistence.snapshot.time.interval.minutes">0</property> 
    </siddhiConfiguration> 
    <importedStreams> 
    <stream as="readings" name="org.sample.readings.dto.stream" version="1.0.0"/> 
    </importedStreams> 
    <queryExpressions><![CDATA[from readings[finalValue > 100] 
select * 
insert into notificationStream;]]></queryExpressions> 
    <exportedStreams> 
    <stream name="notificationStream" valueOf="notificationStream" version="1.0.0"/> 
    </exportedStreams> 
</executionPlan> 

Я определил потоки внутри потока менеджер-config.xml, подобное приведенному ниже.

<streamDefinition name="org.sample.readings.dto.stream" version="1.0.0"> 
<metaData> 
     <property name="parameterId" type="STRING"/> 
     <property name="slno" type="STRING"/> 
</metaData> 
    <payloadData> 
     <property name="finalValue" type="INT"/> 
     <property name="inputText" type="STRING"/> 
     <property name="inputValue" type="DOUBLE"/> 
    </payloadData> 
</streamDefinition> 
<streamDefinition name="notificationStream" version="1.0.0"> 
<metaData> 
     <property name="parameterId" type="STRING"/> 
     <property name="slno" type="STRING"/> 
</metaData> 
    <payloadData> 
     <property name="finalValue" type="INT"/> 
     <property name="inputText" type="STRING"/> 
     <property name="inputValue" type="DOUBLE"/> 
    </payloadData> 
</streamDefinition>. 

его внешний вид, как и все хорошо, пока я посылаю любое сообщение на мой jmsProxy очереди сообщения не отражают КООС для события и я получаю это сообщение в CEP

[2014-02-18 11:57:53,159] INFO - {EventBuilderDeployer} Event Builder undeployed successfully : ReadingsDtoBuilder.xml 
[2014-02-18 11:57:53,160] INFO - {EventBuilderDeployer} Event builder deployment held back and in inactive state :ReadingsDtoBuilder, Waiting for Input Event Adaptor dependency :jmsProxy 
[2014-02-18 12:03:58,006] INFO - {InputEventAdaptorConfigurationFilesystemInvoker} Input Event Adaptor configuration deleted from file system : jmsProxy.xml 
[2014-02-18 12:03:58,006] INFO - {InputEventAdaptorDeployer} Input Event Adaptor undeployed successfully : jmsProxy.xml 
[2014-02-18 12:03:58,008] INFO - {InputEventAdaptorConfigurationFilesystemInvoker} Input Event Adaptor configuration saved in th filesystem : jmsProxy 
[2014-02-18 12:03:58,009] INFO - {InputEventAdaptorDeployer} Input Event Adaptor deployed successfully and in active state : jmsProxy 
[2014-02-18 12:03:58,009] INFO - {EventBuilderDeployer} Event Builder undeployed successfully : ReadingsDtoBuilder.xml 
[2014-02-18 12:03:58,009] INFO - {EventBuilderDeployer} Event builder deployment held back and in inactive state :ReadingsDtoBuilder, Waiting for Input Event Adaptor dependency :jmsProxy 
+0

для более Referance см эту ссылку http://stackoverflow.com/questions/21624344/how-event-stream-works-in-wso2cep3-0-0/21671482?noredirect= 1 # comment33067412_21671482 –

ответ

0

Глядя вашей конфигурации, кажется, что конфигурация построителя событий неверна. Тип адаптера события должен быть «jms» в конфигурации компоновщика событий.

<from eventAdaptorName="jmsProxy" eventAdaptorType="jms"> 

Пожалуйста, исправьте это, как указано выше, чтобы заставить его работать. Вы можете включить трассировку [1], чтобы узнать, попадают ли сообщения в конкретный компонент CEP.

[1] https://docs.wso2.org/display/CEP300/CEP+Event+Tracer