iRop's BizTalk blog

Tuesday, February 16, 2010

Oracle EBS LOB Adapter

Very not so successful, working with oracle. I installed the BizTalk LOB adapter for Oracle EBS (E-Business Suite) and encountered the following problem:

COULD NOT LOAD FILE OR ASSEMBLY ‘ORACLE.DATAACCESS, VERSION=2.111.7.20, CULTURE=NEUTRAL, PUBLICKEYTOKEN=89B483F429C47342′ OR ONE OF ITS DEPENDENCIES. THE SYSTEM CANNOT FIND THE FILE SPECIFIED.

I took some time before I found the right installation. Oracle 11g client comes standard with 2.111.6 and that's exactly the problem. There's a patch available that only contains jar files and such. I just need a SETUP.EXE please! Don't want to copy and compile through some console windows :/ Or you have to login and have an Oracle customer ID or so.

Well, after some searching i installed the following and it worked:


Oracle 11g ODAC 11.1.0.7.20 with Oracle Developer Tools for Visual Studio
http://www.oracle.com/technology/software/tech/windows/odpnet/index.html


Hopefully it helps other people searching for a solution. Ow yes! And restart your instance and Visual Studio afterwards might help :)

Labels: , , , , , ,

Thursday, January 28, 2010

MSMQ snap-in missing in MMC console

Well, took a little while to figure out what was going on here. Installed MSMQ, but then ended up not being able to manage the queues through the MMC (Microsoft Console). The Message Queuing node was missing from the Services and Applications node.

The solution? Just register mqsnap.dll in the system32 folder. So run the following command to register the file:

regsvr32 C:\windows\system32\mqsnap.dll

And there it was again! Didn't find anything about missing snap-in groups on the internet, so i hope this post will help people who come across the same annoying problem.

Cheers!

Labels: , , , , , , ,

Monday, February 9, 2009

Installing the BizTalk ESB Guidance and troubleshooting

Installing the ESB guidance should be a hazard, according to people around me. And i have to admit... YES IT IS! It took me at least a day to get it installed. The main problem is the little documentation that's available. Where is the bindingfile if you want to import the core.msi without the bindings?? Well, i will try and explain some things i encountered and hopefully this will help some guys trying to get the ESB Guidance (2.0) installed on BizTalk Server 2006.

There are a few prerequisites that should be met. My problem was that i couldn't install KB923028 for some reason. Probably because the files were already up-to-date. But make sure the others are all met.
To use UDDI make sure Kerberos is enabled and ofcourse UDDI itself must be installed and configured.
I used the windows installer file to install the ESB guidance. The problem with installing from source code, is the fact the Strong Name Key (snk) differs from the msi and this may cause some problems later on in the installion procedure.
The following steps describe the installation procedure I've followed and eventually worked for me.



Installing the ESB guidance using the Windows Installer File
  1. Unpack and install the ESB Guidance package.
    -
  2. Unpack the ESBSource.zip file to C:\Projects\Microsoft.Practices.ESB
    -
  3. Open the Biztalk Administration Console and right click Applications, choose import MSI file and choose Microsoft.Practices.ESB.CORE_NOBINDING.msi. Choose No Bindings, because the bindings won't be able to be imported before the pipelines are deployed properly.
    At the end of the wizard, make sure to check the box to execute the MSI in Windows to install all components and web services. Also complete this wizard.
    -
  4. After that restart all biztalk services, to be sure all pipelines are registered.
    -
  5. Open Microsoft SQL Management Studio and import the sql script EsbExceptionDb_CREATE.sql (C:\Program Files\Generated by BizTalk\Microsoft.Practices.ESB\SQL). Please be sure to install this on the server and database you've set in the bindingfile in the step above.
    -
  6. Then import the following bindings into this application (you may modify it in your own way, i've modified the snks, because i used the source code file):

    Microsoft.Practices.ESB.CORE_Bindings.xml

    Replace the following string with your server name: <YOURSERVER>. Also check the hosts you are using (i use 2, namely BizTalk Server and SendHost). If you use a different host for sending, you must modify the Send Handler of the All.Exceptions SendPort to the right host, the one used in the adapter. Also check you trusted and untrusted settings.
    -
  7. Execute C:\Program Files\Generated by BizTalk\Microsoft.Practices.ESB\InstallWebServiceConfig.vbs to configure the webservices.
    -
  8. After the steps above were succesful, InstallPostProcessing.cmd must be executed. This file can be found in C:\Program Files\Generated by BizTalk\Microsoft.Practices.ESB\.

    This file contains calls to other files. This file will perform the following steps:
    1) Install exception tracking in the BAM
    2) Install the vocabularies in the BRE
    3) Publish the UDDI parameters

    I had some problems with this file, because my installation directory was different from the ones set in this file. The BizTalk installation directory can also be set (hardcoded) by yourself in C:\Program Files\Generated by BizTalk\Microsoft.Practices.ESB\BAM\bin\bmdeploy.cmd. Replace the wildcard in %BMPATH% in the last line with your BizTalk installation path (by default C:\Program Files\BizTalk Server 2006). You can also modify SetBmPath.cmd in the same directory if you want to.

    If this all is set AND your UDDI settings are correct, it should work. If your UDDI settings are incorrect, the following errors may be encountered:


    UDDI Errors

    Error creating UDDI entries... Error 285014: An unexpected error occurred retrieving the Category Key for the TModel name, 'System.ServiceModel.Security.MessageSecurityException: The HTTP request is unauthorized with client authentication scheme 'Negotiate'. The authentication header received from the server was 'NTLM,Basic realm="localhost"'. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.

    This error is most likely caused by the fact that Kerberos is not set in IIS on this website. You can go to this article to read how to get support for the Kerberos protocol in IIS: http://support.microsoft.com/kb/215383

    Error creating UDDI entries... Error 285023: An unexpected error occurred creating the new Category, 'System.ServiceModel.FaultException`1[uddiorg.api_v2.dispositionReport]: (Fault Detail is equal to uddiorg.api_v2.dispositionReport).', in Uddi.

    In combination with this entry in the eventlog: UDDI_ERROR_FATALERROR_HTTPSREQUIREDFORPUBLISH

    Well, this obviously has something to do with SSL encryption. For me this is turned off in IIS, but not for the UDDI Service manager. Open the UDDI Services Console (Administrative tools -> UDDI Services Console). Bring up the properties for the uddi service and check if the "Require SSL for publication" is checked. Uncheck it and try again.
    -
After these steps you should edit the BizTalk configuration file and the machine.config file. Please do like provided in the Microsoft ESB Guidance help file.
Hopefully this post helped some people installing the ESB Guidance...

Labels: , , , , , ,

Thursday, October 16, 2008

WF and WCF

Hey all,

i am just getting started with WF and WCF. Kinda late maybe... but, it seems companies are also just starting with it. I'll put up some basic examples later on this month.

Labels: ,

Friday, October 10, 2008

Failed to serialize message part ....

Well, I've come across this error message quite often:

Failed to serialize the message part "" into the type "" using namespace "http://namespace". Please ensure that the message part stream is created properly.

The first time you will probably end up searching what is causing the error. Generally this error occurs when the message is holding an improper value, think of a character string in an integer field, or a complex type field is empty (and not nullable). It could also be that a mandatory field is missing in the message being sent to the adapter (this won't occur when you are using validation).

Also keep into account that this error may also occur because of a weird (or wrong) WSDL / proxy class generation in BizTalk and fields become optional, allthough they are mandatory. When adding the proxy class, the schemas that are being generated aren't correct at all. E.g. all strings are generated as optional, though they may not be optional in the service contract. I will put this problem in a seperate entry next week, because it's really hard to find anything on this problem on the internet.

Labels: , , , , , ,

BizTalk Macros

Sometimes it may happen that you can't remember what the macros are to display variables in your filenames in your sendports. Here's a list of the macros (source: Jan Tielens' bloggings):

  • %datetime%
    Coordinated Universal Time (UTC) date time in the format YYYY-MM-DDThhmmss (for example, 1997-07-12T103508).
  • %datetime_bts2000%
    UTC date time in the format YYYYMMDDhhmmsss, where sss means seconds and milliseconds (for example, 199707121035234 means 1997/07/12, 10:35:23 and 400 milliseconds).
  • %datetime.tz%
    Local date time plus time zone from GMT in the format YYYY-MM-DDThhmmssTZD, (for example, 1997-07-12T103508+800).
  • %DestinationParty%
    Name of the destination party. The value comes from message the context property BTS.DestinationParty.
  • %DestinationPartyID%
    Identifier of the destination party (GUID). The value comes from the message context property BTS.DestinationPartyID.
  • %DestinationPartyQualifier%
    Qualifier of the destination party. The value comes from the message context property BTS.DestinationPartyQualifier.
  • %MessageID%
    Globally unique identifier (GUID) of the message in BizTalk Server. The value comes directly from the message context property BTS.MessageID.
  • %SourceFileName%
    Name of the file from where the File adapter read the message. The file name includes extension and excludes the file path, for example, foo.xml. When substituting this property, the File adapter extracts the file name from the absolute file path stored in the FILE.ReceivedFileName context property. If the context property does not have a value, for example, if message was received on an adapter other than File adapter, then the macro will not be substituted and will remain in the file name as is (for example, C:\Drop\%SourceFileName%).
  • %SourceParty%
    Name of the source party from which the File adapter received the message.
  • %SourcePartyID%
    Identifier of the source party (GUID). The value comes from the message context property BTS.SourcePartyID.
  • %SourcePartyQualifier%
    Qualifier of the source party from which the File adapter received the message.
  • %time%
    UTC time in the format hhmmss.
  • %time.tz%
    Local time plus time zone from GMT in the format hhmmssTZD (for example, 124525+530).

Labels: , , ,

Monday, October 6, 2008

Errors in .NET proxy class generation and its WSDL in BizTalk

When a proxy class is generated with BizTalk 2004 and 2006 (not R2 as it seems) it will hold a few errors. It's important to take these irregularities into account (Microsoft calls it "by design").

Mandatory strings (minoccurs="1") are converted to optional (minoccurs="0"). Nullable types (xsi:nil="true"), e.g. xs:int or xs:datetime, are ignored when passing it through the proxy class.

I could try and explain the problem, though the entire "problem" can be found on the URL below. This is a Microsoft source.

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101972

Labels: , , , , , , , , , , , , , ,