Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WSO2:数据库轮询教程时间戳未更新_Wso2_Wso2dss - Fatal编程技术网

WSO2:数据库轮询教程时间戳未更新

WSO2:数据库轮询教程时间戳未更新,wso2,wso2dss,Wso2,Wso2dss,我使用了一个不同的MS SQL数据库,遵循以下示例。 我观察到轮询按预期工作,但时间戳(sql中的datetime列未得到更新) 这是我的DSS XML <data enableBatchRequests="true" name="PollingService" serviceNamespace="http://ws.wso2.org/dataservice/samples/eventing_sample" transports="http https local"> &l

我使用了一个不同的MS SQL数据库,遵循以下示例。

我观察到轮询按预期工作,但时间戳(sql中的datetime列未得到更新)

这是我的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>
)在[小学]

我在日志或命令提示符中没有看到与时间戳更新相关的任何内容

非常感谢您的帮助

谢谢,
Rahul

操作和查询之间似乎不匹配

对于下面的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>

更新dbo.Timestamp set Timestamp=GETDATE(),其中ID=1

我做了您建议的更改,并在下面更新了
/*[local-name()='count'和namespace-uri()='http://ws.wso2.org/dataservice/samples/eventing_sample“]0轮询\u主题http://CSSLLAPTOP-168:8280/services/PollingService           
现在在端点引用(EPR)中出现错误因为手术没有found@Rahul您可以发布部署在ESB中的代理服务xml吗?我之前没有创建代理服务,我现在创建了它,下面是它的外观
使用下面的代理记录来自dss服务的有效负载。希望DSS服务与以前的更改配合良好。请在esb日志中查看dss的有效负载,很好<代码>我在源代码视图中替换了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.java:77)
<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>