Thursday, February 25, 2010 #

SQL Server does not exist or access denied : 08001 when deploying Microsoft.BizTalk.ESB.BAM.Exceptions.xml

When deploying the Microsoft.BizTalk.ESB.BAM.Exceptions.xml BAM activity (as part of the Core ESB Toolkit install) we ran into this error:

---

OLE DB error: OLE DB or ODBC error: DBNETLIB][ConnectionOpen (Connect()).]SQL Server does not exist or access denied : 08001

Errors in the high-level relational engine.  A connection could not be made to the data source with the DataSourceID of ‘bam_ExcByApplication’, Name of ‘bamExcByApplication’

---

The issue was that we used a SQL Server Alias while configuring BizTalk to point to our backend SQL servers.  This apparently led to the alias name being embedded into the Analysis Services artifact generation when we tried to deployed the BAM Activity.  We had the SQL Server Alias on the two BizTalk application servers.  We did not have it on the two Analysis Services cluster nodes.  Once we added it to the SSAS nodes we were able to successfully deploy the activity.

posted @ Thursday, February 25, 2010 2:34 PM | Feedback (0)

ESB Toolkit 2.0 Portal 401 Exception

I had this exception in the Application Event Log after trying to bring up the portal in IE (after a newly installed and configured BizTalk & ESB platform):

---

Exception information:
    Exception type: WebException
    Exception message: The remote server returned an error: (401) Unauthorized.

---

I was working in a two (application) server BizTalk environment but I only had this exception on one server.  The portal came up fine on the other server.

I looked at IIS log files and found a 401 for /ESB.Exceptions.Service/ExceptionService.svc/GetUserSettings

I browsed to the /ESB.Exceptions.Service/ExceptionService.svc in IE and saw this in the Application Event Log:

---

Exception information:

Exception type: NotSupportedException

Exception message: Security settings for this service require Windows Authentication but it is not enabled for the IIS application that hosts this service.

---

Uhh... I did have that configured: Windows Integrated was turned on and Anonymous was turned off.

The issue was that I did not run the set command for NTAuthenticationProviders (specified in this KB: http://support.microsoft.com/kb/215383) on that server.  I had previously ran the set command on the other server in my environment before running the Microsoft.Practices.ESB.UDDIPublisher.exe

posted @ Thursday, February 25, 2010 12:57 PM | Feedback (0)

Tuesday, February 09, 2010 #

Error 194008: An error occurred reading the, esb, Section in the config file.

I ran into the error, below, because the host instance didn't have permissions to read the C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\esb.config file.  Also, don't forget to restart your host instance (or run iisreset) after you update your permissions.

Event Type: Error
Event Source: BizTalk ESB Toolkit 2.0
Event Category: None
Event ID: 6060
Date:  2/9/2010
Time:  2:03:58 PM
User:  N/A
Computer: XXXXXXXXXXXXX
Description:
Error 194008: An error occurred reading the, esb, Section in the config file.

Source: Microsoft.Practices.ESB.Resolver.ResolverMgr

Method: System.Collections.Generic.Dictionary`2[System.String,System.String] Resolve(Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext)

Error Source: Microsoft.Practices.ESB.Resolver

Error TargetSite: Microsoft.Practices.ESB.Configuration.ESBConfigurationSection get_ESBConfig() 

Error StackTrace:    at Microsoft.Practices.ESB.Resolver.ResolverConfigHelper.get_ESBConfig()
   at Microsoft.Practices.ESB.Resolver.ResolverMgr.get_ResolverProviderCache()
   at Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver(ResolverInfo info)
   at Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(ResolverInfo info, IBaseMessage message, IPipelineContext pipelineContext)
 

posted @ Tuesday, February 09, 2010 2:30 PM | Feedback (0)

Tuesday, February 02, 2010 #

ESB Itinerary Selector: Parameter name cannot be null or an empty string. Parameter name: key

 

Event Type:        Error

Event Source:        BizTalk ESB Toolkit 2.0

Event Category:        None

Event ID:        6060

Date:                1/31/2010

Time:                7:06:00 AM

User:                N/A

Computer:        WS03_OFFICE07

Description:

Parameter name cannot be null or an empty string.

Parameter name: key

 

Source: Microsoft.Practices.ESB.Resolver.ResolverMgr

 

Method: System.Collections.Generic.Dictionary`2[System.String,System.String] Resolve(Microsoft.Practices.ESB.Resolver.ResolverInfo, Microsoft.BizTalk.Message.Interop.IBaseMessage, Microsoft.BizTalk.Component.Interop.IPipelineContext)

 

Error Source: Microsoft.Practices.EnterpriseLibrary.Caching

 

Error TargetSite: Void ValidateKey(System.String) 

 

Error StackTrace:    at Microsoft.Practices.EnterpriseLibrary.Caching.Cache.ValidateKey(String key)

   at Microsoft.Practices.EnterpriseLibrary.Caching.Cache.GetData(String key)

   at Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager.GetData(String key)

   at Microsoft.Practices.ESB.Cache.Cache`1.Get(String key, Boolean returnAndRemove)

   at Microsoft.Practices.ESB.Cache.Cache`1.Get(String key)

   at Microsoft.Practices.ESB.Resolver.ResolverMgr.GetResolver(ResolverInfo info)

   at Microsoft.Practices.ESB.Resolver.ResolverMgr.Resolve(ResolverInfo info, IBaseMessage message, IPipelineContext pipelineContext)

 

For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

 

The issue was that I had the BRI string like this: BRI:// instead of BRI:\\  in the pipeline component's configuration.  The latter is the correct way…

 

posted @ Tuesday, February 02, 2010 1:43 PM | Feedback (0)

Multi-Server ESB Toolkit 2.0 Install (including the Management Portal)

[Source: http://geekswithblogs.net/andym/archive/2010/02/02/137753.aspx]
 
I recently had the pleasure of installing and configuring the ESB Toolkit 2.0 in a multi-server environment. There are some notes on how to do this in the official documentation but they’re not exhaustive and they don’t include details on how to install the management portal in a multi-server environment.
 
Prerequisites:
·         Install and Configure BizTalk in your multi-server environment
·         Install and Configure UDDI in your multi-server environment:
o   You install and configure the Database components on the SQL Server! Yes, your DBAs are going to be unhappy about this.
o   Install and configure the other UDDI components on your BizTalk Servers
o   If you have a named SQL instance see Raj’s post here in order to get UDDI configured: http://rajsinghblog.wordpress.com/2009/10/26/configuring-uddi-on-a-non-default-clustered-sql-instance/
o   Note that you can only run the Notification Service component on server (I assume you could cluster it but we didn’t get into this…)
 
ESB Toolkit 2.0 Installation and Configuration:
·         Follow the documentation for “Installing the ESB Toolkit Core” on all of your servers
·         Please note that you can use the “File” configuration in a multi-server environment. To me, it seems that the docs are pushing the “SSO” configuration but you don’t have to use “SSO” for a multi-server environment. Just run the configuration tool on the second to “n” server and point toward the already created databases. Also I have heard that people have had a lot of problems with the SSO configuration
·         Double check the esb.config file and make sure all of the settings are correct
·         Watch out for this one during configuration: Exception calling "Create" with "0" argument(s): "Create failed for Login 'MyDomain\BizTalk Server Administrators'." See this for how to fix: http://social.msdn.microsoft.com/Forums/en/biztalkesb/thread/5ea700b9-dd91-4dcf-b442-7ada6210f44f
·         You may need to turn Kerberos on for IIS before you can successfully execute the Microsoft.Practices.ESB.UDDIPublisher.exe: http://support.microsoft.com/kb/215383
·         Make sure you unpack the samples C:\Program Files\Microsoft BizTalk ESB Toolkit 2.0\ESBSource.zip following the official documentation. (Basically just follow all of the instructions in the “Installing the ESB Toolkit Core” section of the docs
 
ESB Management portal Installation and Configuration in a Multi-Server Environment:
·         Keep in mind that the portal is a sample
·         You can’t use the Management_Install scripts on a server that doesn’t have Visual Studio on it because the scripts require the Visual Studio 2008 SDK to function; the Visual Studio 2008 SDK requires Visual Studio for it to be installed… obviously VS won’t be installed in a multi-server environment
·         The Portals solution (.sln) does include a setup project. I wanted a debug build so I had to open the solution (on my developer workstation) and in Visual Studio and use Configuration Manager to make sure that the setup project would be built for a “debug” build
·         Build the solution, on your developer workstation, and find the .msi that was created for the portal
·         Now on each sever in your group, perform the following:
·         Create an application pool, in IIS, named EsbPortalNetworkAppPool and have it run under Network Service
·         Install the .msi on your first server; the .msi creates the appropriate Virtual Directories (but doesn’t configure them correctly, see the authentication changes, below); use the application pool you created, when prompted. This creates four virtual directories one for the portal and one for each of its three services. Please note that this installs the portal, the ESB.BAM.Service, ESB.Exceptions.Service and the ESB.UDDI.Services to c:\inetpub\wwwroot
·         Create the ESBAdmin db using the C:\projects\Microsoft.Practices.ESB\ESBSource\Source\Samples\Management Portal\SQL\ESB.Administration Database.sql file; it blew up at the bottom (find the “Create BizTalk Server Administrators Login” section) because my BizTalk Admin and BizTalk App Users groups were named differently; I manually added the appropriate permissions in SQL Server
·         Update the C:\Inetpub\wwwroot\ESB.Portal\web.config with the correct db location and group names (connectionStrings and authorization nodes)
·         Update the C:\Inetpub\wwwroot\ESB.Exceptions.Service\web.config to point to the EsbExceptionDb (connectionStrings node)
·         Update the C:\Inetpub\wwwroot\ESB.BAM.Service\web.config to point to the BAMPrimaryImport db (connectionStrings node)
·         Add Windows Integrated to the ESB.Exceptions.Service, ESB.BAM.Service and ESB.Portal virtual directories
·         Removed Anonymous from ESB.Exceptions.Service, ESB.BAM.Service and ESB.Portal virtual directories
·         Update the SQL permissions for the ESB Exception Db using the statements found in this thread http://social.msdn.microsoft.com/Forums/en/biztalkesb/thread/1fb510a8-9f4b-4e1e-9261-3273b037786c Props to that guy for banging his head against the wall and figuring out those permissions
·         Follow the installation and configuration steps for the “Installing the ESB Management Portal Alert Service” and “Installing the ESB Management Portal UDDI Publishing Service” sections. We did this on one server in the group, no more.
·         We also followed the “Configuring Exception Management InfoPath Form Template Shares” section but I don’t see how that is necessary at this point.
 
Update 2/10/2010:
  • Make sure your host instance service accounts have access to the esb.config file
  • In order to use the esbimportutil.exe to deploy itineraries I had to copy the Microsoft.Practices.Modeling.Common, Microsoft.Practices.Modeling.Services and Microsoft.Practices.Modeling.ExtensionProvider (not sure on the last one but the first two are definately needed) assemblies from a developer workstation to the GAC on the server(s)

       Update 2/22/2010

  • Update the EmailTransformation.xslt (for the ESB Portal Alert Service) so that the hyperlinks that it generates point to the server name/dns name for the environment you are installing in
 
I hope this helps. If I run into issues or I find that I need to correct this post I will update it… 

posted @ Tuesday, February 02, 2010 9:20 AM | Feedback (0)

Friday, May 22, 2009 #

Service Virtualization with the Microsoft Managed Services Engine

I presented at the Twin Cities Connected Systems User Group last night on the Managed Services Engine.  You can get the presentation here.

The Managed Services Engine is a CTP technology that acts as a service intermediary.  It helps abstract consumers form the services that they call, performing things such as xslt mapping, protocol switching, version mapping and service stubbing (useful for testing unhappy service respone paths as well as development of the consumer before the service is really ready.)

You can get the Managed Services Engine on CodePlex: http://www.codeplex.com/servicesengine

posted @ Friday, May 22, 2009 3:49 PM | Feedback (0)

Thursday, May 21, 2009 #

BAM Archiving/BAM_DM_ observations

From the BizTalk documentation: “The DTS package, BAM_DM_<ActivityName>, performs the partitioning and archiving/purging. Each time this package runs, it truncates another partition and archives/drops all partitions that are outside the online window.”

 

Here’s my restatement of this:  The BAM_DM_<ActivityName> package (SSIS or DTS depending on your version of BizTalk and despite the fact that the docs refer to DTS only) performs two operations: building partition tables and archiving those partitions to the BAMArchive database when a partition’s creation date is past the online window.

 

If you open up a BAM_DM_<ActivityName> SSIS/DTS package and walk through it you’ll see that the second step calls the bam_Metadata_SpawnPartition stored procedure.  Toward the end of that sproc it inserts a new record into the bam_Metadata_Partitions table setting the CreationTime’s value but not the ArchivedTime value which means it will be NULL.

 

A later step in the package calls the bam_Metadata_BeginArchiving stored procedure.  Toward the end of this stored procedure it performs an SQL Update on the bam_Metadata_Partitions table where the ArchivedTime is null and the CreationTime is less than the online threshold (derived from the online window.)  If the Update succeeds any partitions that should be archived have their ArchivingInProgress value set to 1 (this is set so that if the package runs again, before it completes, the second run will essentially just exit without doing anything.)

 

Later steps (two of them) in the package perform the actual archiving; they examine the CreationTime and ArchivedTime to figure out what they should archive, using the same logic outlined above (for the . bam_Metadata_BeginArchiving sproc).

 

There are many more details but hopefully provides enough detail for the takeway.

 

Takeaway: your BAM_DM_<ActivityName> package almost certainly needs to run twice to actually archive data to the BAMArchive database because the time between when the partition is created during the second step of the package and when archiving will happen (later steps) isn’t going to be greater than your online window.  The lowest you can set your online windows is 1 minute.  Unless you have massive quantities of BAM data, and a slow SQL Server, it isn’t going to take more than a minute between when the bam_Metadata_SpawnPartition sproc runs (which sets the CreationTime) and the archiving steps execute.  So, the first time you run your package it will create the partitions; the second time it will archive those partitions, if they fall outside the online window.  This means you need to think carefully about how often you schedule your BAM_DM_<ActivityName> packages and how that is related to the online window.

 

For additional context reference the Business Activity Monitoring in Depth for Developers whitepaper here:  http://download.microsoft.com/download/D/D/A/DDA95D1F-14D4-49A2-B2C8-E244535E8502/BAM_for_Developers.docx

posted @ Thursday, May 21, 2009 9:52 AM | Feedback (0)

Monday, May 04, 2009 #

The BAM deployment failed. Encountered error while executing command on SQL Server. String or binary data would be truncated.

I ran into an issue with bm.exe this morning.

 

Here’s the error I saw when running the bm.exe depoy-all command on a spreadsheet.

 

Deploying View... ERROR: The BAM deployment failed.

Encountered error while executing command on SQL Server "MyMachineName".

String or binary data would be truncated.

The statement has been terminated.

 

I ran SQL Profiler the next time I executed this (as well as adding the –Trace:On parameter to the deploy-all command which _never_ seems to add any additional information.  After a little bit of sleuthing it looked like this was the last statement executed before profiler showed sql statements that were deleting BAM tables, sprocs, etc.

 

-- Register activity in RTA metadata table

INSERT [dbo].[bam_Metadata_RealTimeAggregations]

(

            CubeName,

            RtaName,

            RTAWindow,

            Timeslice,

            ConnectionString

)

VALUES

(

            N'CreateOESIView',

            N'CreateOESIPT',

            3600, -- RTA window defaults to 60 hours

            60,  -- Time slice defaults to 60 mins

            N'[HugeStringHere]’

 

The ConnectionString column’s max size is 3600 and you guessed it, my [HugeStringHere] value was larger than that.  The string was actually not just a connection string and included CREATE CUBE and other statements in it. 

 

It turns out that the PivotTable that I created in Excel for this particular view was too big – as in it had too much stuff in it (Dimensions, Measures).  I created a smaller pivot table with fewer Dimensions in it and then the activity deployed without problems.

posted @ Monday, May 04, 2009 11:45 AM | Feedback (0)

Thursday, July 19, 2007 #

BizTalk vs. WF/WCF Comparison (Smack Down) Article published

In the BizTalk Hotrod quarterly ezine.  You can find a condensed version of the article at http://www.biztalkhotrod.com

The full version (huge!) can be found at http://biztalkhotrod.com/Documents/BizTalk%20Smack%20Down%20Full.pdf

The article was a ton of work but was well worth the effort.  The intent was to have some fun comparing BizTalk and WF/WCF.  Let me know if you have any feedback!

posted @ Thursday, July 19, 2007 11:32 AM | Feedback (0)

Sunday, May 06, 2007 #

Twin Cities Spring 2007 Code Camp - Developing Business Activity Monitoring Solutions with BizTalk Server’s BAM Features

Thanks to all who attended my session on BAM last weekend.

You can find the presentation and demo source code here.  Note that I did not get the WCF Interception running so the XML file for that is not included - I'll discuss that in a follow up post in the next week or two.

To run the demo artifacts you'll need BizTalk Server 2006 R2 Beta 2, .NET 3.0 installed and Excel 2007 installed.

posted @ Sunday, May 06, 2007 2:57 PM | Feedback (0)

Monday, April 23, 2007 #

BizTalk Hotrod Magazine

I'm a little late in posting about this but there is a new BizTalk-specific "magazine" called BizTalk Hotrod: http://biztalkhotrod.com/default.aspx

The first issue was published just a few days ago.

Enjoy!

posted @ Monday, April 23, 2007 2:39 PM | Feedback (0)

Twin Cities Code Camp - Spring 2007

The second Twin Cities Code Camp will occur this Saturday, April 28th.  Here's the website, which includes a schedule and list of sessions: http://www.twincitiescodecamp.com/TCCC/Default.aspx

I'll be presenting on utilizing BizTalk's BAM features from non-BizTalk applications.

posted @ Monday, April 23, 2007 2:37 PM | Feedback (0)

Wednesday, December 06, 2006 #

Repost - BizTalkRocks 'Debugging Tips and Tricks' Webcast

This post disappeared from a previous blog of mine so I'm reposting it.

---

 

'Thank you' to everyone who attended the Debugging Tips and Tricks webcast that I presented today for the BizTalkRocks community.  You can find the presentation at http://www.biztalknuggets.com/presentations/BizTalk Debugging Tips and Tricks.zip

 

I recorded the webcast.  I will repost this article and include a link to the recorded webcast when it is posted.

 

If you have any questions on the presentation or the webcast please contact me through the Contact link on this blog.

 

Update (12/9/05): I think I skipped a slide yesterday. If you download the presentation, search for 'BizUnit' to find another 'Other Tools...' slide.  Sorry about that.

Update (3/26/07): Updated the link to the presentation.

 

posted @ Wednesday, December 06, 2006 7:29 AM | Feedback (4)

Tuesday, December 05, 2006 #

Changing PivotTable Names for the BAM Portal (Before Deploying the BAM Definition)

If you’ve worked with BAM and the BAM Portal in BizTalk 2006 you’ve noticed that the PivotTables in the My Views - Aggegations section shows up with ugly names like PivotTable13, PivotTable14, etc.  This is fine when you are doing POCs with a small number of Views/PivotTables but it can quickly become confusing – and more importantly these names aren’t appropriate when you’re deploying a real BAM solution to end users.

 

If you want to change these names before you deploy your BAM Definition you need to:

  • Export the BAM Definition to XML using the BAM menu in Excel.
  • Open the exported BAM Definition
  • Update each /BAMDefinition/Extension/OWC/PivotTableView/PivotTable/PivotView/Label/Caption element’s text to use a more appropriate name; note that this applies to both Real-Time aggregations and scheduled aggregations.

[Update 12/7/06 - You can also right click the PivotTable in Excel, select Table Options and then change the Name.] 

 

Now when deploying the BAM Definition, use the .xml version of it and then you will see your version of the PivotTable names in the My Views section of the BAM Portal.

posted @ Tuesday, December 05, 2006 7:47 AM | Feedback (0)

Wednesday, December 06, 2006 #

Twin Cities User Group Website

The Twin Cities BizTalk User Group now has a website, you can find it here:  http://www.mnbiztalk.com/

If you are a BizTalker, and live in or around the Twin Cities, and you haven't attended a session yet - I strongly encourage you to attend.  The sessions are great and the environment isn't as "stiff" as some of the other users groups out there :)

posted @ Wednesday, December 06, 2006 7:32 AM | Feedback (0)

Copyright © Andy Morrison

Design by Bartosz Brzezinski

Design by Phil Haack Based On A Design By Bartosz Brzezinski