Problem
I was deploying a Biztalk project from the development enviroment to the test enviroment when I encountered an error with Oracle adapter. That's because I have a different database schema name in both enviroments and database schema name is hard-coded to the schema.
This means that I can't use same SOAP header action in a send port for test and development enviroment and I didn't want to generate different schemas for different enviroments.
Solution
In a generated schema file I had namespaces with schema name on it:
http://Microsoft.LobServices.OracleDB/2007/03/NAMEOFSCHEMA/View/MYVIEWNAME
I removed schema name from the namespace:
http://Microsoft.LobServices.OracleDB/2007/03/View/MYVIEWNAME
Then I deployed project again. Next thing I did was changing the send port properties. Database schema name must be in SOAP header action even when schema name is not declared in a namespace
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="portOperationName" Action="http://Microsoft.LobServices.OracleDB/2007/03/NAMEOFSCHEMA/View/MYVIEWNAME/Select" />
</BtsActionMapping>
I also changed couple of send port binding-properties EnableBiztalkCompabilityMode=true and useSchemaInNamespace=false.
Now I can deploy my Biztalk project to several enviroments without generating different schemas for each enviroment
No comments:
Post a Comment