The Oracle Adapter in BizTalk Adapter Pack v2.0
Has anyone been successful creating schemas based off of an Oracle package using the new Oracle adapter (BAP v2.o)? We had a Business Adapter Pack v1.0 send port that utilized an Oracle package. When we upgraded to v2.0, it stopped working showing an error like this:
| Event Type: Warning Event Source: BizTalk Server 2006 Event Category: (1) Event ID: 5743 Date: 2/12/2010 Time: 11:57:06 AM User: N/A Computer: YOUR_SERVER Description: The adapter failed to transmit message going to send port “ProcessGSTUpsert.WCF” with URL “oracledb://oracle_server_name/”. It will be retransmitted after the retry interval specified for this Send Port. Details:”Microsoft.ServiceModel.Channels.Common.TargetSystemException: ORA-06550: line 2, column 1: PLS-00306: wrong number or types of arguments in call to ‘UPDATE_PROCEDURE’ ORA-06550: line 2, column 1: PL/SQL: Statement ignored —> Oracle.DataAccess.Client.OracleException ORA-06550: line 2, column 1: PLS-00306: wrong number or types of arguments in call to ‘UPDATE_PROCEDURE’ ORA-06550: line 2, column 1: PL/SQL: Statement ignored at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode, OracleConnection conn, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src, String procedure) at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode, OracleConnection conn, String procedure, IntPtr opsErrCtx, OpoSqlValCtx* pOpoSqlValCtx, Object src) at Oracle.DataAccess.Client.OracleCommand.ExecuteNonQuery() at Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery(OracleCommand command, OracleCommonExecutionHelper executionHelper) — End of inner exception stack trace — <Server stack trace: at System.ServiceModel.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)”. |
I tried recreating the schema used by the Oracle adapter, but it complains as follows:
| The categories in the ‘Added categories and operations’ list contain no operations for metadata generation. |
This worked before the upgrade. Any ideas?
15-Feb-2010 Update:
See my reply to Antti – the runtime aspect of the problem was figured out. I’ll see if I can find a solution to the schema-generation problem.
Advertisement
Categories: BizTalk Server
RSS Feed
Maybe you need to change the value of the binding property “SkipNillNodes”.
If that doesnt solve the issue, can you send me an email with:
1. Screenshot of the add adapter service reference wizard when you try generating schemas
2. Input XML
3. SP definition.
I tried setting SkipNilNodes to false (default was true), but that didn’t help. I’ll send you an email with the details as soon as I can get a definition of the package containing the stored procedure (I need to get this from a DBA). Thanks for offering to help.
Looks the same we are having http://social.msdn.microsoft.com/Forums/en/biztalkr2adapters/thread/5a1defd8-154d-40b3-9629-e0a01ec6fbee
Antti
Yes, it appears the runtime error we receive is the same. You prompted me to try the xsi:nil approach using XSL to determine whether to pass the value if provided or pass xsi:nil=”true” if not provided, like what you did – something like this:
<b:P_USER_ID>
<xsl:choose>
<xsl:when test=”a:UserID”>
<xsl:value-of select=”a:UserID”/>
</xsl:when>
<xsl:otherwise>
<xsl:attribute name=”xsi:nil”>true</xsl:attribute>
</xsl:otherwise>
</xsl:choose>
</b:P_USER_ID>
That fixed the runtime problem, which is great news. However, why can’t we generate a new schema from the Oracle package? That’s still an issue; however, since we happened to have generated a schema with BAP v1, we at least have a schema we can work with (and apply the runtime fix described above). We’ll only have a problem with other packages we may need to generate a schema from (assuming the problem repeats).
I think Microsoft should have made the BAP v2 behavior identical to v1. This difference doesn’t allow customers with v1 projects to simply update to v2 – code changes will be required. That’s my 2 cents anyway.