Reputation: 103
I am facing this issue since couple of days. My requirement is to execute a stored procedure and if data found run the orchestration every 10-15 min.
for that i using polling approach with Oracle.
I have below stored procedure,
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;
I have genarated the below schemas via consume adapter services method. I got three schemas
OracleDBBindingGenericOperation.xsd
OracleDBBindingRADAR.PollingProcedure.xsd
OracleDBBindingRADAR.Procedure.xsd
in that i am using the OracleDBBindingRADAR.PollingProcedure.xsd as my message in 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>
now at adminstration level i have made below config setting at receive location, please help where i am doing wrong.
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 : use ambient Transaction : False
I doubt there is someprob with polling Statement .
Could you some one suggest, in my SP its not in out Courser, its just out. How should i write or let me know where it might be going wrong.
Error I am getting:
The adapter "WCF-OracleDB" raised an error message.
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)".
Upvotes: 0
Views: 1375
Reputation: 103
Finally i could sort out the ans,
I have done some of the mistakes which i corrected,
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
my mistake was i was calling url of polling action in Polling statement at xmlns. Where here the URL is suppose to be from of different Schema.
the other mistake is in my statement i didnt include ;.
Upvotes: 0
Reputation: 11040
Upvotes: 0