Question

Okay, I've been looking over this for the past couple of days but I cannot get it to consume a message. Here is my basic message schema structure. The message is created against this schema through a pipeline (works, tested).

<?xml version="1.0" encoding="utf-16"?>
<xs:schema targetNamespace="http://Microsoft.LobServices.OracleDB/2007/03/XXSCHEMA/Package/XXPAC_AQ_PKG" 
           xmlns="http://XXCOMPANY.Schemas.adEnqueueRequest" 
           xmlns:b="http://schemas.microsoft.com/BizTalk/2003" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ENQUEUE">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="1">
        <xs:element name="p_queue_name" type="xs:string" maxOccurs="1" minOccurs="1" nillable="false" />
        <xs:element name="p_payload" type="xs:string" maxOccurs="1" minOccurs="1" nillable="false" />
        <xs:element name="p_message_type" type="xs:string" maxOccurs="1" minOccurs="1" nillable="false" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

The send port is configured like to use the WCF-OracleEBSAdapter and I've confirmed I have all my environment details set up correctly(ie, username, password, TNS information.)

The current bts action I've set is:

<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Operation Name="ENQUEUE" Action="http://Microsoft.LobServices.OracleDB/2007/03/XXSCHEMA/Package/XXPAC_AQ_PKG/ENQUEUE" />
</BtsActionMapping>

But I've tried all of the action mappings on http://msdn.microsoft.com/en-us/library/dd788171.aspx to get it working. Each time my message suspends and the event log shows:

A message sent to adapter "WCF-OracleEBSAdapter" on send port "SENDPORTNAME" with URI "SENDPORTURI" is suspended.

 Error details: Microsoft.ServiceModel.Channels.Common.UnsupportedOperationException: Action "http://Microsoft.LobServices.OracleDB/2007/03/XXSCHEMA/Package/XXPAC_AQ_PKG/ENQUEUE" is invalid.

Server stack trace: 
   at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndCall(String action, Object[] outs, IAsyncResult result)
   at System.ServiceModel.Channels.ServiceChannel.EndRequest(IAsyncResult result)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult result)
   at Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult result) 
 MessageId:  {26BF83FF-742E-4649-8FCC-45729767FF8E}
 InstanceID: {CA97B656-FC1A-4884-8A6A-F95D156298ED}

The aim of this send port is to call a routine on an oracle server that will place a message on a specified queue. Has anyone successfully done this before? Can anyone see anything that might be wrong with my configuration. Any tips would also be appreciated.

Was it helpful?

Solution

Your operation isn't formed correctly. You seem to have an two parts (XXPAC_AQ_PKG/ENQUEUE) after Package instead of one.

The correct format as per Message Schemas for Functions and Procedures and the URL you quoted

http://Microsoft.LobServices.OracleDB/2007/03/[SCHEMA]/Package/[PACKAGE_NAME]

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top