Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

You can create an event trigger from a query as explained below. 

Table of Contents

...

Before you begin

  • Update email configurations: Open the axis2_client.xml file from the <DSS<EI_HOME>/repository/conf/axis2 folder and add the following XML element:

    Code Block
    <transportSender name="mailto"
     class="org.apache.axis2.transport.mail.MailTransportSender">
     <parameter name="mail.smtp.from">esb.sample@gmail.com</parameter>
     <parameter name="mail.smtp.user">esb.sample</parameter>
     <parameter name="mail.smtp.password">esb*sample8</parameter>
     <parameter name="mail.smtp.host">smtp.gmail.com</parameter>
     <parameter name="mail.smtp.port">587</parameter>
     <parameter name="mail.smtp.starttls.enable">true</parameter>
     <parameter name="mail.smtp.auth">true</parameter>
     </transportSender>
  • Set up a datasource:

    1. Install the MySQL server.
    2. Download the JDBC driver for MySQL from here and copy it to your <DSS<EI_HOME>/repository/componentswso2/lib directory.

    3. Create the following database: Company

    4. Create the ACCOUNT table in the Company database:

      Code Block
      CREATE TABLE ACCOUNT(AccountID int NOT NULL,Branch varchar(255) NOT NULL, AccountNumber varchar(255),AccountType ENUM('CURRENT', 'SAVINGS') NOT NULL,Balance FLOAT,ModifiedDate DATE,PRIMARY KEY (AccountID));
    5. Enter the following data into the ACCOUNT table:

      Code Block
      INSERT INTO ACCOUNT VALUES (1,"AOB","A00012","CURRENT",231221,'2014-12-02');

Enabling notifications for a query in a data service

Let's create a data service using the Create Data Service wizard:

  1. Log into the management console of WSO2 DSS and EI and click Create in the Data Service menu.
  2. Add a name for the data service and go to the next step.
  3. Connect to the Company database that you defined above.
  4. Click Next to go to the Queries screen.
  5. Click Add New Query to specify the query details:
    1. Enter UpdateAccBalance as the query ID.

    2. Enter the following SQL dialect:

      Code Block
      UPDATE ACCOUNT SET Balance=:Balance WHERE AccountID=:AccountID
  6. Click Generate Input Mapping to automatically generate input mappings for the AccountID and Balance fields.
  7. At the bottom of the page you will find the Events section:

  8. Click Manage Events and add a new event as shown below:
     

    The fields in the Add Events screen are explained below.

    1. Event Idaccount_balance_low_trigger

      Info

      The ID used for identifying the event-trigger used in data services queries.

    2. Xpath: /updateAccountBalanceQ/Balance<200

      Info

      Represents an XPath expression that is run against the XML message presented. That is, the request/response message. When this evaluation returns true, the event is triggered. 

    3. Target Topicproduct_stock_low_topic

      Info

      The topic to which the event notifications are published. 

    4. Event Sink URLmailto:youremail@wso2.com 

      Info

      A subscription can be any endpoint that is complaint with WS-Eventing. For example, you can use an SMTP transport to send a message to a mail inbox, where an email address is given as the subscription. Here, many subscriptions can be defined for the given topic.

  9. Save the event.

  10. Save the UpdateAccBalance query.
  11. Create an operation for the UpdateAccBalance query as shown below.

  12. Save the Operation.

  13. Click Finish to navigate to the Deployed Services window from where you can manage data services.

...

Invoking the data service 

You can try the data service you created by using the TryIt tool that is in your product by default. 

...