0

我从几天开始就面临这个问题。我的要求是执行一个存储过程,如果找到数据,则每 10-15 分钟运行一次编排。

为此,我使用 Oracle 的轮询方法。

我有以下存储过程,

 create or replace procedure BTS_RAD_PollManageStateDOCAMD( p_rc out sys_refcursor) is
        begin
        for rec in (
         SELECT * FROM RAD_BTS_MANAGE_DOCAMS 
           WHERE MESSAGE_STATE='CREATED')   
         loop  
          dbms_output.put_line(
              rec.CORRELATION_ID || ',' ||    rec.MESSAGE_KEY     || ','  ||rec.MESSAGE_FILENAME    || ',' ||rec.MESSAGE_ROOTNODE
||',' ||rec.MESSAGE_ELIMINATEDFLAG || ',' ||rec.MESSAGE_CONTENT || ',' ||rec.MESSAGE_STATE );  
          end loop;  
         end;

我通过使用适配器服务方法生成了以下模式。我有三个模式

OracleDBBindingGenericOperation.xsd
   OracleDBBindingRADAR.PollingProcedure.xsd
   OracleDBBindingRADAR.Procedure.xsd 

因为我使用 OracleDBBindingRADAR.PollingProcedure.xsd 作为我在 orch 中的消息。

 <?xml version="1.0" encoding="utf-16" ?> 
- <xs:schema xmlns:b="http://schemas.microsoft.com/BizTalk/2003" xmlns:ns3="http://Microsoft.LobServices.OracleDB/2007/03" elementFormDefault="qualified" targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03/RADAR/PollingProcedure" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation=".\OracleDBBindingGenericOperation.xsd" namespace="http://Microsoft.LobServices.OracleDB/2007/03" /> 
- <xs:annotation>
- <xs:appinfo>
  <fileNameHint xmlns="http://schemas.microsoft.com/servicemodel/adapters/metadata/xsd">RADAR.PollingProcedure</fileNameHint> 
- <references xmlns="http://schemas.microsoft.com/BizTalk/2003">
  <reference targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03" /> 
  </references>
  </xs:appinfo>
  </xs:annotation>
- <xs:element name="BTS_RAD_POLLMANAGESTATEDOCAMD">
- <xs:annotation>
- <xs:documentation>
  <doc:action xmlns:doc="http://schemas.microsoft.com/servicemodel/adapters/metadata/documentation">http://Microsoft.LobServices.OracleDB/2007/03/RADAR/PollingProcedure/BTS_RAD_POLLMANAGESTATEDOCAMD</doc:action> 
  </xs:documentation>
  </xs:annotation>
- <xs:complexType>
- <xs:sequence>
  <xs:element minOccurs="1" maxOccurs="1" name="P_RC" nillable="true" type="ns3:ArrayOfGenRecordRow" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:schema>

现在在管理级别,我在接收位置进行了以下配置设置,请帮助我做错了什么。

Trasport 类型:WCF-OracleDB EnableBiztalkcompatibilityMode:True PollDataAvilableStatment:SELECT count(*) FROM RAD_BTS_MANAGE_DOCAMS WHERE MESSAGE_STATE='CREATED' 轮询操作:http://Microsoft.LobServices.OracleDB/2007/03/RADAR/PollingProcedure/BTS_RAD_POLLMANAGESTATEDOCAMD 轮询语句:使用环境交易:假

我怀疑 polling Statement 存在一些问题。

您能否有人建议,在我的 SP 中,它不在 Courser 中,它只是在外面。我应该怎么写或者让我知道它可能出错的地方。

我得到的错误:

适配器“WCF-OracleDB”引发了错误消息。

Details "Microsoft.ServiceModel.Channels.Common.XmlReaderParsingException: Unexpected start node "BTS_RAD_POLLMANAGESTATEDOCAMD" with namespace "http://Microsoft.LobServices.OracleDB/2007/03/RADAR/PollingProcedure/BTS_RAD_POLLMANAGESTATEDOCAMD" found.
       at Microsoft.ServiceModel.Channels.Common.Design.AdapterAsyncResult.End()
       at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.EndTryReceive(IAsyncResult result, Message& message)
       at System.ServiceModel.Dispatcher.InputChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
       at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)".
4

2 回答 2

0
  1. 您应该导入向导生成的绑定文件。
  2. 必须部署带有架构的程序集。
于 2014-07-17T13:40:28.020 回答
0

最后我可以整理出答案,

我做了一些我纠正的错误,

Trasport Type : WCF-OracleDB
EnableBiztalkcompatibilityMode : True 
PollDataAvilableStatment : SELECT count(*) FROM RAD_BTS_MANAGE_DOCAMS WHERE MESSAGE_STATE='CREATED' Polling Action : http://Microsoft.LobServices.OracleDB/2007/03/RADAR/PollingProcedure/BTS_RAD_POLLMANAGESTATEDOCAMD polling Statement : 
<ns0:BTS_RAD_POLLMANAGESTATEDOCAMD xmlns:ns0="http://Microsoft.LobServices.OracleDB/2007/03/RADAR/Procedure">
  <ns0:P_RC_IN>OPEN ? FOR SELECT * FROM RAD_BTS_MANAGE_DOCAMS WHERE MESSAGE_STATE='CREATED';</ns0:P_RC_IN> 
  </ns0:BTS_RAD_POLLMANAGESTATEDOCAMD>
use ambient Transaction : False

我的错误是我在 xmlns 的轮询语句中调用轮询操作的 url。这里的 URL 假设来自不同的模式。

另一个错误是在我的陈述中我没有包括;。

于 2014-07-18T10:44:43.803 回答