WSO2: временная метка учебника по опросу базы данных не обновляется

Я следовал следующему образцу с одной другой базой данных MS SQL, которую я использовал. http://wso2.com/library/tutorials/2013/11/scheduled-database-polling-with-wso2-data-services-server/

Я наблюдаю, что опрос работает должным образом, но отметка времени (столбец даты и времени в sql не обновляется)

Вот мой DSS XML

 <data enableBatchRequests="true" name="PollingService" serviceNamespace="http://ws.wso2.org/dataservice/samples/eventing_sample" transports="http https local">
   <config enableOData="false" id="Default">
      <property name="driverClassName">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
      <property name="url">jdbc:sqlserver://geoshieldsp3\sqlexpress;databaseName=RahulTest</property>
      <property name="username">sa</property>
      <property name="password">CSSL#2014</property>
   </config>
   <query id="pollingQuery" output-event-trigger="pollingTrigger" useConfig="Default">
      <sql>select x.[Call Number], x.Priority, x.Call_Type, x.DispatchDate,y.total from CADFeeds as x left join &#xd;(select *,count([Call Number]) over() as total from CADFeeds ) as y on x.[Call Number]=y.[Call Number]   &#xd;where x.DispatchDate &gt; (select TIMESTAMP from Timestamp where id=1)</sql>
      <result element="Calls" rowName="call">
         <element column="Call Number" name="CallNumber" xsdType="string"/>
         <element column="Priority" name="Priority" xsdType="float"/>
         <element column="Call_Type" name="Call_Type" xsdType="string"/>
         <element column="DispatchDate" name="DispatchDate" xsdType="string"/>
         <element column="total" name="count" xsdType="integer"/>
      </result>
   </query>
   <query id="UpdateTimeStamp" useConfig="Default">
      <sql>update dbo.Timestamp set timestamp = GETDATE() where ID=1</sql>
      <param name="timestamp" ordinal="2" sqlType="STRING"/>
   </query>
   <event-trigger id="pollingTrigger">
      <expression>//*[local-name()='count' and namespace-uri()='http://ws.wso2.org/dataservice/samples/eventing_sample']&gt;0</expression>
      <target-topic>polling_Topic</target-topic>
      <subscriptions>
         <subscription>http://localhost:8280/services/PollingProxy</subscription>
      </subscriptions>
   </event-trigger>
   <operation name="PollingOperation">
      <call-query href="pollingQuery"/>
   </operation>
   <operation name="UpdateTimeStamp">
      <call-query href="UpdateTimeStamp">
         <with-param name="timestamp" query-param="timestamp"/>
      </call-query>
   </operation>
</data>

Вот схема БД для таблицы меток времени

CREATE TABLE [dbo].[Timestamp](
[ID] [int] NULL,
[timestamp] [datetime] NULL

) НА [ПЕРВИЧНОМ]

Я не вижу ничего в журнале или командной строке, связанном с обновлением метки времени.

Любая помощь приветствуется.

Спасибо, Рахул


person Rahul    schedule 11.07.2017    source источник


Ответы (1)


Кажется, существует несоответствие между операцией и запросом.

Для приведенного ниже SQL параметр запроса не требуется, так как аргументы не указаны. Пожалуйста, попробуйте следующее.

<operation name="UpdateTimeStamp">
      <call-query href="UpdateTimeStamp">
      </call-query>
</operation>

<query id="UpdateTimeStamp" useConfig="Default">
      <sql>update dbo.Timestamp set timestamp = GETDATE() where ID=1</sql>
</query>
person Muralidharan.rade    schedule 11.07.2017
comment
Я внес предложенные вами изменения и обновил их после <event-trigger id="pollingTrigger"> <expression>//*[local-name()='count' and namespace-uri()='http://ws.wso2.org/dataservice/samples/eventing_sample']&gt;0</expression> <target-topic>polling_Topic</target-topic> <subscriptions> <subscription>http://CSSLLAPTOP-168:8280/services/PollingService</subscription> </subscriptions> </event-trigger> теперь получаю сообщение об ошибке Ссылка на конечную точку (EPR) для операции не найдена - person Rahul; 12.07.2017
comment
@Rahul, не могли бы вы опубликовать XML-файл прокси-сервиса, который развернут в вашем ESB? - person Muralidharan.rade; 12.07.2017
comment
Я не создавал прокси сервис раньше, я создал его сейчас и вот как он выглядит <proxy xmlns="http://ws.apache.org/ns/synapse" name="PollingProxy" startOnLoad="true" statistics="disable" trace="disable" transports="http,https"> <target> <inSequence> <log level="full"/> </inSequence> <outSequence> <log level="full"/> <send/> </outSequence> <endpoint> <address uri="http://cssllaptop-168:9764/services/pollingService/"/> </endpoint> </target> <description/> </proxy> - person Rahul; 13.07.2017
comment
Используйте указанный ниже прокси-сервер только для регистрации полезной нагрузки от службы dss. Надеюсь, служба DSS работает нормально с предыдущими изменениями. посмотрите полезную нагрузку от dss в наших журналах esb, ХОРОШО. <?xml version="1.0" encoding="UTF-8"?> <proxy xmlns="http://ws.apache.org/ns/synapse" name="PollingProxy" transports="http,https" statistics="disable" trace="disable" startOnLoad="true"> <target> <inSequence> <log level="full"/> </inSequence> <outSequence> <log level="full"/> </outSequence> </target> <description/> </proxy> - person Muralidharan.rade; 13.07.2017
comment
Я заменил xml в исходном коде, теперь я получаю сообщение об ошибке. Я что-то упускаю, но не могу понять что? ОШИБКА {org.wso2.carbon.event.ws.internal.notify.WSEventDispatcher} — невозможно отправить сообщение org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) org.apache.axis2.transport.http.HTTPSender .sendViaPost(HTTPSender.java:199) org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77) - person Rahul; 13.07.2017
comment
в ДСС?? или ЕСБ? оба в одной системе или разные? также измените последовательность следующим образом: <inSequence> <log level="full"/> <respond/> </inSequence> - person Muralidharan.rade; 13.07.2017
comment
Внес изменения. Все еще вижу ту же ошибку. Да, ESB и DSS находятся на одном сервере. Я попытался изменить смещение на 1 в файле cardbon.xml, но после этого изменения wso2 не работает. - person Rahul; 14.07.2017