Monday, December 20, 2010 1:05:00 AM
Using the WCF SQL Adapter with BizTalk 2009 can be relatively straight forward.
Thursday, September 30, 2010 8:16:15 PM
Wednesday, September 22, 2010 12:30:06 PM
September 2010 - Sarasota SQL Pass Meeting
Speaker: Kendal Van Dyke
Kendal began working with SQL Server 7.0 as a developer in 1999. He has spent the last 9 years as a production DBA working on systems that process hundreds of millions of transactions per day. He is currently Senior DBA at Channel Intelligence in Celebration, FL where he is responsible for the management, monitoring, and performance of 40+ SQL Servers. Kendal stays active in the SQL Community by speaking at events such as SQL Saturday, .NET Code Camp, and OPASS (Orlando PASS chapter). Kendal is known as @SQLDBA on Twitter and is a contributor to the forums on SQLServerCentral.com. Kendal also maintains a technical blog on SQL Server topics at http://kendalvandyke.blogspot.com.
Meeting Summary:
Kendal presented on DR/HA (disaster recovery/high availability). Kendal started out by visually communicating the difference between DR and HA.
For HA he used a picture of a Twin Engine Aircraft with one engine stopped. Since the plane had 2 engines it could fall back to using one if the other one failed.
For DR he used a picture of a Plane Crash (Ground Impact, Ball of Flame, pilot parachuting down to safety) and in the background there was a copy of the plane ready to go. Since the 1st plane crashed it’s recent mission went with it, however since there was a second plane the pilot could get back in the seat and return to flying.
His approach to the session was to create a table of desired features for DR/HA. (This is my recollection not his actual table)
| Feature |
Auto Failover |
Data Corruption |
Data Loss |
DownTime |
| Sql Backup |
|
|
|
|
| Snapshot |
|
|
|
|
| Replication |
|
|
|
|
| Log Shipping |
|
|
|
|
| Clustering |
|
|
|
|
He talked about each feature at a high level and gave his opinion on whether the feature provided certain protections. In the table features are listed in the first column, protection is listed in the first row.
Once he finished covering what comes out of the box with SQL, Kendal also briefly covered 3rd Party Tools and Technologies for providing HA/DR:
· RedGate Tools
· EMC SAN – Block Level Replication from one SAN to another
· Others….
Kendal closed the session with a demo of SQL Server 2005 setup to failover. He showed the tools available in SQL that let a DBA see the HA configuration (two servers in an active/passive cluster). He then stopped the primary server (reboot), the tool then showed the primary as stopped and the secondary as coming online and taking the primary role.
Saturday, July 10, 2010 8:56:25 PM
It's rare that I write reviews for anything that I buy. But I have to make an exception for this product. I have owned the Kindle 2 for about 18 months and I purchased a Kindle 2 for my wife. We both enjoy the user friendly layout of the controls on that device. As a software architect I had a problem with the quality of books as they were displayed on the Kindle 2 and decided to give the Kindle DX a shot at it. In just the last couple of months Amazon has release some updates to the underlying reader software that were said to improve on the issues of early adopters. Additionally, the July 2010 relase of the Charcoal colored Kindle DX is said to have sharper text. So I bought one.
Pros:
1) The text is definately sharper/clearer than on the Kindle 2.
2) The pictures/images are much clearer. (Don't confuse that with clear. Publishers control the quality)
3) Page turning feels faster, not just a little but much faster when compared to my Kindle 2
4) You can create Collections now. Think of this as being an organizer for your content. One book can be referenced by more than one collection.
5) You can password protect the device. I personally, don't store information on the device that requires protection of this nature. But if you read material on the device that you don't want someone else to see without knowing a password then this feature is for you.
6) As always you can annote the text of a book you are reading, but now when you save that note, you can save a share it. When you save and share, it immediately posts whatever you have typed directly to Twitter and Facebook with a link to that book/magazine on Amazon.
7) Size and Weight. I am a software architect, I have several books that are 900-1600 pages that serve as great reference materal. My core set of paper edition books weighs 27lbs. With book cover my Kindle DX's un-official weight is 2lbs. My stack of paper edition books is 15" tall. The Kindle is 1/3".
8) Price. $389.00. That's the lowest price ever for a newly manufactured Kindle DX.
9) Book Selection. 620K Book Selection, 1.8M free out of copyright books.
10) WhisperNet - Books in 60 seconds. Not books overnight for extra, or books in 2-3-5 days. ...and you don't pay extra for whispernet.
Neutrals:
1) Some reviewers mention the weight of the device. The device with a cover does have an uncomfortable total weight, however, at least for me, if I read from the device without the cover it feels only a tiny bit heavy and certainly better than my 900-1600 page paper edition books.
Cons:
1) I really would like a Next Page Button on the Left Hand side. I miss that button because, like others, I often switch hands while holding the Kindle. Having that Next Page button, similar to the Kindle 2, on both sides of the device is a must.
2) Collections don't transfer to devices. Prior to purchasing the Kindle DX I upgraded the Kindle Firmware on my Kindle 2 to get the collections feature. I created collections, moved my books/periodicals into the collections. When I activated my Kindle DX I got my books but not my collections. This is not a show stopper, I am sure in some future softeare update Amazon will consider this as a must have.
3) Paying for Amazon to covert common formats to Kindle format. When I first purchased my Kindle 2 Amazon would convert PDF's to Kindle Format. It seems now they are charging more to get the PDF to my kindle but they have dropped converting it to Kindle format in favor of Providing PDF Viewer functionality.
4) Price. For $389.00, you have to have a need to carry a few books around with you. With extended warranty, and a descent book cover though you are looking at $520.00 or so. If you are buying this to read one book at a time, and that book is not an image/diagram heavy book, pass this one up and buy the Kindle 2. You might be asking yourself 'For 520.00 why wouldn't I buy the IPAD? Well an IPad with a cover and an extended warranty is appx 770.00 not the 500.00 you might be thinking about. If you are comparing IPAD to this device for price-v-functionality. The IPad will win. If you are comparing this device to IPad for eReading-v-price. This device will win.
Wishes:
Amazon - You have subscriptions to Magazines, Blogs, etc.. I would pay 5.00/month for access to email.
Summary:
If you plan to read technical books, math, physics, software development, etc.. and those books have diagrams/images, then the Kindle DX is your choice. Even when the publishers of those books provide low quality graphics/images as part of their 'for Kindle' edition, they are better viewed on this device than the smaller Kindle 2 version. I don't regret this purchase at this price. I would and do recommend it for it's quality, service, and price.
Sunday, July 04, 2010 1:05:00 AM
Trillian Astra - An all in one Messaging application with all the bells and whistles. Supports Astra, AIM, Yahoo, ICQ, Windows Live, MySpaceIM, Google Talk, Jabber/XMPP. For Windows Clients you also have: Facebook, Twitter, Skype, Bonjour, IRC, Pop3 Mail, and IMAP Mail. There is a free version, I went with the Pro (pay) version.
NotePad ++ - is a free (as in "free speech" and also as in "free beer") source code editor and Notepad replacement that supports several languages. Running in the MS Windows environment, its use is governed by GPL License.
Gizmo Central - Mount ISO's or Encrypted HD Images (Virtual Drives). As an MSDN Subscriber, I get quite a bit of my software as downloaded .isos. This tool is great for mouting up to 10 isos as CD Drives and its free
Microsoft SharedView - How this Gem stays off the radar, I just don't get it. There are many services out there that let you share your desktop for a meeting. But how many are free? SharedView enables you to easily share your screen with one or more remote participants (up to 15). You can choose to share the entire desktop or limit the view to a selected application or document. By default, the remote users are limited to a view-only presentation mode, but you can grant a user temporary control at any time to allow for interactive teamwork or remote assistance. SharedView is easy to use and does not require any technical expertise, once you start a screen sharing session, the program will generate an online link and a password, along with instructions that can sent by email to invite your participants (or you can simply give them the password over the phone). Other features include file sharing options, personal mouse cursors to identify each participant, user blocking and more. Requires a Windows Live ID to start a sharing session. No ID is needed for those who join a session.
SysInternals Suite - The Sysinternals Troubleshooting Utilities have been rolled up into a single Suite of tools. I can't tell you how often I have used DebugView and Process Explorer to get a handle on what is going on inside of running applications. You know, you can issue Console.Writeline(..) which works great when your running your code from Visual Studio. But, you can also see those messages in the executable if you use DebugView. Microsoft provides these tools free
Fiddler2 - is a free Web Debugging Proxy utility that lets you "fiddle" with incoming or outgoing HTTP data. It logs all HTTP traffic between your PC and the Internet. You can use it to inspect two-way HTTP activity, set breakpoints, and more. Fiddler2 is one of Microsoft's nifty Power Toys, a class of plain but useful system tools and other small utilities that greatly expand users' control over the Windows environment as well as their PC's software and hardware. Last year I gave a demo on MVC 1.x, I wanted to have a tool at hand that would reveal the evidence that I was meeting the goals of the demo. I showed how refactoring a web site with MVC and AJAX I could decrease Web Server Outbound bandwidth 30 fold, Inbound bandwidth 20 fold, and decrease end user wait times for page loads by at least 15 fold. Fiddler trapped that information on the client in a way that provided the evidence I needed.
Paint.Net - Do you want a better paint program than MS Paint? Do you want it to be free? Paint.NET is free image and photo editing software for computers that run Windows. It features support for layers, unlimited undo, special effects, and a wide variety of useful and powerful tools. I have used this tool quite a few times to create images for web sites. The best thing with this tool is that the tutorials are user supported. That is to say, many of the things you want to do with a paint program, the user community have provided in step by step tutorials.
AraxisMerge - Not free. But too good for me to pass up, there is a free 30 day trial. Merge is a visual file comparison (diff), merging, and folder synchronization too application. Use it to compare and merge source code, web pages, XML and other text files with native application performance. Directly open and compare the text from Microsoft Office (Word and Excel), OpenDocument, PDF and RTF files. Compare images and binary files. Synchronize folders. Perform code reviews and audits. Work with folder hierarchies containing thousands of files. I found this tool a couple of years back. It is so good that I convinced Release Administration to use this tool to double check the differences between released code and vnext code.
ReSharper - Not free. But too good for me to pass up, there is a free 30 day trial. Some things have so much good in them it's hard to explain. So if you follow the link you will see a comparison between native VS2010 features and the features in ReSharper. I have not yet used ReSharper 5 in VS2010 but I have been using it for months in VS2008. This utility has really saved me time in re-factoring code and helping me stay on track with code style rules.
Browsers - Have you ever wondered what your site looks like running under various browsers? Do you really want to install all of the browser variations just so you can see how your site looks. I didn't want too. Then I found spoon.net. You will need to install the browser plugin, then visit spoon.net/browsers, start one of the browsers found on the web page, and go visit your site. The browser plugin allows the web site to create a sandbox on your system for loading any of the browsers they support.
Wednesday, June 16, 2010 1:05:00 AM
General Discussion
Every once in awhile I research core functionality of the .Net Framework. This time I was focusing on 'Measuring the Speed of Lists'. Now I could go into the Math that backs up the how lists perform, however, a better source for that can be found in the articles that I provided links to at the bottom of this blog...
O(1) or O(n) or O(n log n) ... Don't snooze... Read the linked articles.... Pay attention the math does matter, for insertion and retrieval speeds.
There are a plethora of lists in .Net. and many new ones were added in .Net 3.5 and 4.0. Don't assume your old standbys of Dictionary<T,T>, Hashtable or, List<T> are still your best choices. Here is a List of some of those lists
- Array
- ArrayList
- List<T>
- SortedList<T>
- Dictionary<T,T>
- Queue (Not MSMQ)
- Stack
- Hashtable
- Hashset (New in .Net 3.5) - Useful for math like operations.. Union, intersect, Set SubTraction, Symetric Differences. Similar to LINQ set operations.
- BinaryTree (BTree) ..... Just kidding this class is missing from the .Net Framework. The functionality you need you can get from existing classes in most cases.
- BinarySearchableTree (BST)... Hey this one does exist it's called SortedDictionary<T,T>
- Balanced BST... New to .Net 4.0 the SortedSet<T> class provides a self-balancing (red-black) tree that maintains data in sorted order after insertions, deletions, and searches.
- ConcurrentDictionary<T,T>... New to .Net 4.0. All public and protected members of ConcurrentDictionary<TKey, TValue> are thread-safe and may be used concurrently from multiple threads. Think multi-core CPU think Multiple threads adding and reading elements.
Criteria for measuring speed (aka performance)
- Make a functional list of what the .Net lists you are considerg can do
- Add an item
- Remove an item
- Update an item
- Query (Search) for an item
- Strong/Loose typed item support
- Prevent duplicate items
- Sort the list
- Order your functional list by what is most important to you for your current task
- Are you going to be adding alot of items to the list, but once added you are pretty much done with them?
- Are you going to be adding some items now, more later, more later still? If the list has to redimension, How speedy does the list handle re-dimensioning?
- Are you going to be deleting items? How does the list handle re-dimensioning?
- Are you going to be getting items from the list? How often (rare, moderate, all the time)? How does the list index the item you want to get? (index number, index key..). Will you always have the index number available to use to find your item?
- If you have a large list (1K,10K items, ...more), can you wait for the list searching algorithm to traverse the whole list to find the second to the last item? Understanding how an item is found in a list when you supply the key, will help you choose which list is better for you.
- Do you need to add items to a list that have different data types (item 1 is string, item 2 is date, item 3 is decimal etc...)?
- Can you aford the time it takes to perform boxing and unboxing types from the list to get them to be the strong type you need?
- Do you need to be able to retrieve more than 1 item at a time? Does the list support IQueryable?
- How does the list prevent duplicates or does it?
- Is it important to your design that the first item in the list is the first item out? What about last item in is first item out?
- Measure the speed of accomplishing the functions of the list in the way that you are going to use the list values.
- With items 1 and 2 taken care of you can create performance tests.
- Generally performance tests measure the total time it takes to complete a set of operations.
- Create a loop that performs your top 3 functional requirements
- Before you enter the loop instace you favorite object to track time and start it tracking time
- After the loop is through, immediately get a time check. Subtract the Start Time from the Stop time and record the results in your favorite metric (ticks, milliseconds, seconds etc...
- Repeat your test with the rest of the candidate list types. Be sure to track the time you must put into the chosen list to extend it to meet your criteria, if you have not chosen a list that is a perfect match. This time needs to be indicated in notes and not be accumulated into the result time of the loop. The fact that you wrote code to extend the object means there are other costs to consider for your list choice, Debugging, Testing....
- By this time you know which list is going to suit your purpose best. Unless, in your dev environment you are thinking about the size of this list for your first year, but how big will that list get over time? If the list gets to big, will your speed of operations degrade quickly? Do you need to choose a thread safe list? What if you are hosting the list on a web site that has 50K users accessing static methods on the list, will one user erroneously be adding items to another user's list?
Summary
Speed of access to an item is usually measured by most people reporting 'List Speed'. However, insertion, deletion, memory allocation, set based operations, volume of data, thread safety, and other things will affect your choice of what is the best performing list. More often than not, you should be testing at least 3 or 4 of your top functional operations in the looping process to determine your best speed factor on a set of data that represents the expected list size.
Good Information about how lists work
An Introduction to Data Structures
The Queue Stack and Hashtable
Binary Trees and BSTs
Building a Betting BST
From Trees to Graphs
Efficiently Representing Sets Algorithms and Data Structures
Saturday, June 05, 2010 1:00:05 AM
This entry is one of a mult-part series for setting up the network to work in Sun Virtual Box to support BizTalk 2009
To prepare the BizTalk Server for installation please have the following software on hand. FYI, the order I am listing the software is the order you should follow for software installation.
As I pointed in part 1 of this series I am using my MSDN licenses to set this server up but you might be able to use these evaluation editions to set yours up.
If you followed part 1 of this series you have already installed the Windows 2008 Enterprise R2 64 Bit version of the Operating System. But you have not yet configured the server to fill it's role as the BizTalk Application Server for our Dev BizTalk 2009 network.
Windows First
You should have already changed the administrator's password. So start that Virtual Machine and sign-in.
Once you have logged-in the Initial Configuration Application is started. If it does not start automatically, select 'Start-Run' and type in 'oobe' - this will start the Initial Configuration application. If you did not install the Virtual Machine Addtions, you should do so before you continue. In the VirtualBox Frame that surrounds your Windows Virtual instance select the Devices Menu then select 'Install Guest Additions'. When the guest addtions are through installing you will need to re-boot.To improve page load times and to decrease my outgoing bandwidth I will supply pictures only where I think they are necessary. MSDN and TechNet documentation for setting up Windows 2008 Server and SQL Server 2008 have excellent documentation in case you can't follow this.The Initial Configuration application is divided into three parts:
- 1 - Provide Computer Information
- 2 - Update this server
- 3 - Customize this server
Although "Activate Windows" might seem like it should be the first step. Let's Configure the network first so that Activating Windows has access to the internet. We are going to setup this network to have a static IPs. To prepare for IP allocation you will need to configure your Internet Router to allocate a range of IP's to this network and not assign them to DHCP Clients. You can find information in part 2 of the series that covers this step.Click the Configure Networking link - The Network Connections window will be displayed.Right Click the 'Local Area Connection Network' icon and select properties. From the 'Local Area Connection Network Properties' dialog locate and select the 'Internet Protocol Version 4 (TCP/IPv4)' entry. Then click on the Properties button. This will display the 'Internet Protocol Version 4 (TCP/IPv4) Properties' dialog.
- Select use the following IP Address
- IP Address: 192.168.1.52 - An IP in the rage we reserved for this network at the Internet Router
- Subnet Mask: 255.255.255.0 - Typical Subnet Mask
- Default Gateway: 192.168.1.1 - (this is the internal IP Address of the Internet Router or proxy server.)
- Select use the following DNS Server addresses
- Preferred Server: 192.186.1.50 (this is the IP address of this networks Domain Name Server that was setup in part 1 of this blog series.)
- Alternate Server:
- Select the Advanced Button and then select the 'WINS' tab. Ensure that the 'Enable LMHOSTS lookup' checkbox is checked. In the NetBios section, ensure that 'Enable NetBIOS over TCP/IP is selected. Then choose OK to close the advanced configuration dialog
Select OK to close each of the dialogs. If we succeeded in setting up the Network IP for this server then activating Windows over the internet will succeed. Select Activate Windows from the Intitial Configuration Tasks application. Provide your product key. After windows activates close the Activate Windows dialog.
To check network connectivity, Ping the AD Server. Start > Run > type in Cmd. In the Console Window that is displayed type Ping 192.168.1.50 (or the IP that you assigned your Domain Server). If that works, check internet connectivity by lauching the browser and navigating to http://www.microsoft.com , because you are on a server you may be prompted about allowing navigation to the site. I allowed the navigation. If the ping is not successful or the web site navigation is not successful, double check your NIC configuration, and double check that the AD Server that was setup in part 1 of this blog series is running.
Select 'Set Time Zone' - The Windows Date and Time dialog will display. Set the correct settings for your location then select OK to apply the settings and close the dialog.
Select "Provide computer name and domain". When changing this computer from a workgroup to the domain you will need to be signed on or have access to a domain adminstrator account capable of joining a computer to the domain. Once you are ready, provide the computer a name and also change the computer from running in a workgroup to joining the domain. I used "bts001" (BizTalk 1st computer). You can use any name you want. I entered a description as 'BizTalk Application Server'. On save you will be asked to Reboot. Do so.
After Re-Boot and Login, we will move to section 2 - Update this server.
Select 'Enable automatic updating and feedback'. A dialog will appear giving you 2 choices. I chose Manual Configuration. My choice produced the 'Manual Configuration Settings' dialog. I changed the settings to 'automatically download but ask me to install updates'. I set recommended updates to the same setting. You should do what makes you feel comfortable. I chose my settings to allow me to take a snapshot of the VM before applying changes ---- Safety first you know. I also chose not to participate in error reporting and not to participate in the customer experience program.
Select Download and install updates. This step may take quite a bit of time and it will fail if our network adapter is not setup correctly. Remember this is a VirtualBox so the network adapter is configured through windows and through VirtualBox managment consoles. If the adapter is not setup with a bridged connection you will not get to the internet even if you just setup the windows network configuration correctly.
After Re-boot and Login, Locate the Customize This Server section in the Initial Configuration Tasks Application.
Select the Add Roles Link. Select Next. In the list of available Roles choose 'Application Server'. You will be prompted to add required features. Choose to add the required features. When the Prompt disappears you will be returned to the Roles selection. Choose Web Server (IIS). You will be prompted to add required features. Select add required features. When the Prompt disappears you will be returned to the Roles selection, you should not select any additional roles. You will see addition feature required prompts as you go through wizard based on your selections.

Figure 1 - Selection of Application Server and Web Server Roles during windows configuration
Select next. The Role Services Selection for Application Server will be displayed. Select all role services except WS-Atomic Transactions. If you choose WS-Atomic transactions you will need to have a certificate ready to support the installation. I don't want the transactions at this time so, I am not going to cover the installation of that Role Service. As I mentioned in the previous blog entry, BizTalk and SQL will be communicating with each other occasionally in a transactional way. As a result we need COM+ Network Access and Distributed Transactions. Additinoal selections here are different than the selections I made for the SQL Server, particularly around the Windows Process Activation Service Support. As a result, I saw additional prompts when configuring options for Windows Activation Services and accepted the feature installations.

Figure 2 - Selection of Application Server Role Services while configuring the Windows Operating System
Select Next. The Role Services selection for Web Server will be displayed. The next two figures (images) show the selections I made while setting up the Web Server Role services. Of course this server will host the BAM web site and it has ASP.Net and serves up typical HTML Content so I chose Common HTTP Features and under application developement I chose typical ASP.Net fetures. Health and Diagnostics are always good choices for a development box. IIS Management Services are useful for administering web sites. File movement is done efficiently on the Web with FTP. Finally, allowing Hostable applications will permit us to host custom applications that internally provide IIS functionality. Oh yeah this is a BizTalk server, so setting up IIS allows BizTalk to Receive files via HTTP, FTP etc...

Figure 3 - Selections for Web Server Role Services while configuring the Windows Server Operating System

Figure 4 - Additional Selections for Web Server Role Services while configuring the Windows Server Operating System
In the Figure 4 you will notice that I did not select IIS Management Compatibility. I thought to myself... I will be using IIS 7.5 who needs that selection. As it turns out I did. There are IIS Management scripts in this selection that will be used later when setting up IIS to work with the BAM Portal ( a 32Bit ASP.Net Web Site). This mistake is recoverable, but if you don't want to have to fix it later, go ahead and select all the IIS 6 options now. Select Next and finish out the wizard for installation of the Selected Roles, Role Services, and Required Features.
Next we need to go to the Component Services Management Console and set the Security Properties for the Local DTC (DTC on this VM). Start - Run - type dcomconfig. Open the treeview on the left until you find Local DTC. Right click on that node and select properties. Select the Security Tab. You need to ensure that following options are selected:
- Network DTC
- Check Both: Allow Remote Clients, Allow Remote Administration
- Transaction Manager Communication
- Check Both: Allow Inbound, Allow Outbound
- I selected No-Authentication Required, however the better option is Mutual Authentication Required
- DTC Logon Account
- I left the default: NTAuthority\Network Service

Figure 5 - Image of the Coponent Services Console after opening the Local DTC Properties Dialog to the Security Tab
Next we need to ensure that COM+ Services and DTC are permitted through the firewall. To do that lets get to Windows Firewall. Select Start > Control Panel > System and Security > Windows Firewall. In the left hand navigation for Windows Firewall click on the the link for 'Allow a program or feature through Windows Firewall'. Enable the following
- COM+ Network Access
- COM+ Remote Administration
- Distributed Transaction Coordinator
- My Computer has the following enabled as well
- Core Networking
- DFS Mangement
- Network Discovery
- Remote Desktop

Figure 6 - Image showing programs allowed throught the Firewall.
But wait there is more. Let's say you are experiencing issues connecting to this VM instance in the network and you want to ping this instance from another computer. As it turns out, Ping Support is also turned off in the firewall by default. From the Windows Firewall UI you need to select inbound rules. Locate the rules for File and Printer Sharing (Echo Request..) enable them (at least temporarily) so you can test connectivity to this server with DTCPing or with standard Ping from another computer.

Figure 7 - Showing File and Printer Sharing (Echo Request...) rules set to enabled and allowed.
Now you should copy the installations software for DTC Ping and DTC Tester onto the server in case we need to troubleshoot failed communication between the BizTalk Server and the SQL Server. A gotcha with DTC Tester is that it uses 32Bit ODBC drivers, so be sure to setup an ODBC DSN that uses a 32Bit driver and point it to the SQL Server to a DTC Test datbase that you must create manually on that server. There is no need to run either of these tools at this time. Until we setup the BizTalk 2009 server there is no other server for these tools to communicate with.Re-Boot
BizTalk Server 2009
So far all we have done is configure the operating system in preparation to support BizTalk 2009. Now it is time to run the installation of software.
Install Excel 2007. Using your installation media for MS 0ffice 2007, begin installation. When you arrive at the section of the Installation Wizard that allows you select the various Applications of MS Office, Deselect all features except MS Excel 2007. Then complete the installation
Install Visual Studio 2008. Using your installation media for Visual Studio 2008, begin installation. When you arrive at the section of the Installation Wizard that allows you to select Applications from VS Studio, Deselecl all features and applications except C#. Then complete the installation. If you install SQL Express, BizTalk will fail installation later so be careful.
Install Visual Studio SP1.
Install SQL Server 2008, Using your installation media for SQL Server 2008 (not R2), begin installation. When you arrive at the section of the Installation Wizard that allows you to select Applications from SQL Server, deselect all features, except Management Tools Complete. Then complete the installation. Later during the BizTalk configuration steps if this feature is not installed you will be prompted to install SQL Analysis Services from SQL 2005 and/or SQL Integration Services from SQL 2008. Neither of those needs to be nor should be installed on this BizTalk instance.
Install SQL Server 2005 feature pack. The feature pack should include at least 3 installs, performed in the order shown below. Other than installing things in order there are no special recommendations for installation settings. However, you might want to know why use SQL 2005 features if we are using SQL 2008 as our database. The answer is, if you want to use BAM Alerting, it needs these SQL 2005 features because they are not part of SQL Server 2008. Additionally, We are installing SQL 2005 features after SQL 2008 features to avoid SQL 2008 trying to upgrade componets that the SQL 2005 features use.
- Install SQL Client 64
- Install SQL XML 64
- Install SQL Notfication Services
Install SharePoint Services 3.0 64Bit SP latest. Because I want to use the BAM Portal and it is a 32Bit ASP.NET version, I did not install the SharePoint services. However, if you have been trying to follow all of this installation and you have been doiong it on a 32Bit OS, You can install the 32Bit Version of Sharepoint Services 3.0. Since I am using 64Bit, you are on your own to deal with this issue. Please note that there are special steps you must take to install SharePoint Services. The Micorsoft BizTalk Server 2009 Installation Guide has an appendix that describes what to do. In any case, SharePoint would need to be installed at this point in setting up your BizTalk Server.
Configure ASP.NET 2.0 for 32Bit Mode on this 64Bit OS instance. (See the 'Some Solutions to common problems section if you have trouble executing these steps.
- Click Start, Run, type cmd and click OK. Then execute the following command
- cscript %SystemDrive%\inetpub\adminscripts\adsutil.vbs SET W2SVC/AppPools/Enable32BitAppOnWin64 1
- Staying with the command console. Execute the following command to install the version of ASP.NET 2.0 (32Bit) and to install the script maps:
- %Systemroot%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i -enable
- Finally, also with the command console, rest IIS by typing the following: IISRESET
Install BizTalk Server 2009. Using your installation media for BizTalk Server 2009, begin installation. When you arrive at the section of the Installation Wizard that allows you to select Applications and Features of BizTalk Server 2009, you should select all the features you want. I wanted all features except for two as you can see in the next two figures below. Both images are for the same page of the Wizard, two images were necessary to show you all of the selections I made. Essentially I selected all features except MQ Series Agent and SharePoint Services Adapter.

Figure 8 - BizTalk Server Component Selections during BizTalk Installation

Figure 9 - Additional BizTalk Server Component Selections during BizTalk Installation
Complete the installation. When installation is complete the BizTalk Server Configuration application will automatically start. If for some reason you unchecked the checkbox that causes the installation wizard to lauch the configuration application you can get to BizTalk Configuration through the windows menu. So what has happend at this point is that you have installed everything to make BizTalk work, and hey hey hey you did not run into any problems that you did not overcome. At this point though, no databases have been created on the SQL Server instance. Nor has any communication with SQL Server been attemtped. To this point any installation bugs you have had have been about the setup of this server. In the next step you will run the BizTalk Configuration application where we will find out if DTC and COM+ were setup correctly, if Analysis Services was setup correctly, if SQL Server and it's firewall was setup correctly, if installed SQL 2008 and SQL 2005 featues were installed on this VM Correctly, and if you have setup AD Accounts and Groups correctly. All of those could cause you additional research and resolution time.
Remember way back in Blog post 1 of this series that we created BizTalk accounts in the Ad system for users and groups. You will need them handy now. I have copied the relevant portion of the accounts from the post to the table shown in Figure xx below.
Active Directory Accounts, Groups and Memberships
| Server |
User Logon Name |
Group Name: Membership |
Description |
| BizTalk Server |
BAMAlerts |
|
This account will provide the security context for the BAM Alerts running on the BizTalk Server which uses SQL Notification Services (a SQL 2005 feature) also running on the BizTalk Server |
| |
BAMAppPool |
|
This account will provide the security context for the IIS Application Pool which the BAM Portal will be running under on the Web Server. In our network that web server is also the BizTalk 2009 serer. |
| |
BAMWebSvcMgmt |
|
This account will provide the security context for BAM Web Service APIs running on the Web Server. In our network that web server is also the BizTalk 2009 Server. |
| |
BTSHost |
|
This account will provide the security context for BizTalk Applications running in process on the BizTalk Server |
| |
BTSIsoHost |
|
This account will provide the security context for the BizTalk Applications running out of process on the BizTalk Server |
| |
BTSRulesEngine |
|
This account will provide the security context for the BizTalk Rules Engine running on the BizTalk Server |
| |
SSOService |
|
This account will provide the security context for the SSO Service (Enterprise Single Sign-on running on the BizTalk Server |
| |
|
BAM Portal Users: Domain\Domain Users, Domain\Domain Admins |
This group will provide the security context for allowing users and groups to access the BAM portal running on the Web Server. In our network the web server is also the BizTalk Server |
| |
|
BTS Application Users: Domain\BTSHost |
This group will provide the security context for allowing users and groups to access limited applications running in process on the BizTalk Server |
| |
|
BTS Isolated Host Users: Domain\BTSIsoHost |
This group will provide the security context for allowing users and groups to limited applications running out of process on the BizTalk Server |
| |
|
BTS Administrators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups to administer the BizTalk Server through the BizTalk Server Administration console |
| |
|
BTS Operators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups to access limited features of the BizTalk Server through the BizTalk Administartion Console |
| |
|
SSO Administrators: Domain\ Domain Admins, Domain\SsoService |
This group will provide the security context for allowing users and groups to administer the Single Sign-On Service |
| |
|
SSO Affiliate Administrators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups from affiliates to administer the Single Sign-On Service accounts that are under their control |
FIGURE 10 - Table of Security Accounts needed for the BizTalk Installation
Start the BizTalk Configuration application if you do not have it open. When the application form appears you should click the configuration button in the lower right corner of the form to perform custom configuration. When the custom configuration form is displayed, you will essentially need to setup everything on this form, and in the order of the Feature Listed First (top) to the Feature listed last (bottom). As you configure each of the features you might notices that Security Accounts similar to the ones we setup at the AD Server are already filled in. This is a gotcha. Those accounts will be setup on the local computer. You need to specify the NETBIOS names for the accounts we setup at the AD Server. ie....
- Correct NetBioS Group Name Example: DEV\SSO Administraors
- Incorrect Local Computer Group Name Example: SSO Administrators
Before you run into issues with the examples I gave above. Please make sure that you use the NETBIOS name of the Network Domain name you established when you setup your AD/PDC Server. That should help you with security. For the SQL Server name that you will need to supply many times over on this form use the Fully Qualified Domain Name or the NETBIOS name of your SQL Server VM instance. ie...
- Correct NetBios Computer Name: sql001
- Correct Fully Qualified Domain Name: sql001.dev.local
Before you run into issues with the above example, make sure you are using the names you assigned to your network if they are different than I used for this blog series.
When setting up BAM you will be given the opportunity to Specify a couple of Database Names: I typed in SQLAnalysis and SqlStarSchema.
After you have filled in all of your settings and before you choose to apply the configuration, I suggest you export the configuration to an XML file. This will save you time later if you give up now but want to come back and continue later.
Some solutions to common problems.
- Let's say that you can't supply some of the data needed for configuring the BAM databases. But you can for others. The problem will likely be that you did not open the correct port on the SQL Server Firewall for SQL Aanalysis Services. Double check it: 2383
- Let's say that you Apply Configuration and for some reason the SSO configuration completes but the Runtime does not complete and Group Configuration does not complete. If you look at the SQL Server instance you will probably see that the SSO database has been installed and the RulesEngine Database has been installed but no other databases unique to BizTalk have been installed. Your most likely candidate is that the DTC is not configured correctly between the SQL Server and the BizTalk Server. For this problem either or both servers can have DTC or COM+ misconfigured. Double chek the FireWall settings on each VM instance and Double Check the DTC Configuration on each VM Instance. If they look corect. You will finally need those 2 utilities DTCPing and DTCTester to be installed on both of the VM instances. Then follow the troubleshooting techniques associated with them. Don't forget about the gotcha wth DTC Tester. It is a 32Bit app and needs you to create a 32Bit ODBC entry in the system DSN's to work.
- Let's say that SSO Service won't install as a result you won't be able to create a Group for BizTalk. If this problem occurs, first check to see if you have added the DEV\SsoService to the Dev\SSO Administrators group. If this has not occured you will see this problem. If the SsoService account is part of the Domain Group SSO Administrators then see the previous bullet for troubleshooting communication issues.
- Let's say that the system gives an error that describes 'Local Accounts'. Then you need to make sure that you used the NetBios Name of the AD accounts instead of the Local System accounts by the same name.
- Let's say that none of the Databases that support BizTalk will install. Then you need to check the firewall on the SQL Server to ensure the well known ports of 1433 and 1434 are open.
- Let's say that you know there is no configuration issue with any of your software setup. You ran DTC Ping and DTC Tester and they work. But you can't get past the SSO configuration. Then you should double check to make sure you did not use SQL Server 2008 R2 accidentally
or otherwise during either the SQL Server 2008 setup or during the BizTalk 2009 setup. This should be embarassing since, throughout this blog series, I reiterated don't use SQL2008 R2. If you did use SQL Server 2008 R2, start over and this time don't use R2. ---- Of course BizTalk 2010 will support SQL 2008R2. So if you are following this blog series and you are using BizTalk 2010 Beta please let me know how that works out.
- Let's say you are trying to configure BAM and Sharepoint services but BAM fails. If you are intalling on a 64BitOS and you installed 64Bit Sharepoint, you can not install BAM on the instance because IIS 7.0/7.5 cannot be run in both 64Bit and 32Bit mode at the same time
- Let's say you are trying to configure BAM and Sharepoint services but Sharepoint fails. If you are intalling on a 64BitOS and you installed 64Bit Sharepoint and you followed my steps to put IIS into 32Bit Mode, The SharePoint adapter for BizTalk configuration will fail, because IIS 7.0/7.5 cannot be run in both 64Bit and 32Bit mode at the same time
- Let's say you are at the steps where you are configuring ASP.NET to work in 32 Bit Mode but you receive errors indicating that the scripts or paths to the scripts don't exist. Then you made the same mistake I did, which was... You did not install IIS 6 Managment features during Windows Role configuration for the Web Server Role. You can install them now by using the windows menu system: Select Start - Administrative Tools - Server Mangager. From Server Manger Expand the roles node in the treeview in the left hand navigation. Select Web Server IIS. Now in the right hand content pane locate the Role Services Section. At the top right hand side of that section select Add Role Services. Locate the IIS 6 funcationality and select to install it.
Summary
There you have it. BizTalk is installed and communicating with another server in a different VM. BizTalk required a significant amount of software to be installed. Additionally, problems arise if you don't install the pre-requisates or if you don't install them in a suitable order. The BizTalk Server required more configuration and the most potential for failed installation and configuration because of it's dependencies on
- A supported operating system.
- Installing at least 2 application roles, many role services, and many role features of the operating system
- Firewall, DTC, and COM+
- A supported version of SQL Server
- The correct order of installation of products
- 32Bit VS 64Bit - imposes limits on using the BizTalk Server for Sharepoint and BAM.
- There are a minimum of 13 installations you need to perform to have full functionality from BizTalk
.jpg)
Figure 12 - After following this 4 part blog series you should now have the network shown.
A final recommendation before you start using this BizTalk Development Network, In each VM I would take a snapshot now, that way it will be easy to return to a clean network.
Wednesday, June 02, 2010 1:05:00 AM
Setting up SQL Server 2008 for use with BizTalk 2009.
This entry is one of a multi-part series for setting up the network to work in Sun Virtual Box to support BizTalk 2009
To prepare the SQL Server for installation please have the following software on hand. As I pointed in part 1 of this series I am using my MSDN licenses to set this server up.
If you followed part 1 of this series you have already installed the Windows 2008 Enterprise R2 64 Bit version of the Operating System. But you have not yet configured the server to fill it's role as the Database Server for our Dev BizTalk 2009 network.
Windows First
You should have already changed the administrator's password. So start that Virtual Machine and sign-in.
Once you have logged-in the Initial Configuration Application is started. If it does not start automatically, select 'Start-Run' and type in 'oobe' - this will start the Initial Configuration application. If you did not install the Virtual Machine Addtions, you should do so before you continue. In the VirtualBox Frame that surrounds your Windows Virtual instance select the Devices Menu then select 'Install Guest Additions'. When the guest addtions are through installing you will need to re-boot.
To improve page load times and to decrease my outgoing bandwidth I will supply pictures only where I think they are necessary. MSDN and TechNet documentation for setting up Windows 2008 Server and SQL Server 2008 have excellent documentation in case you can't follow this.
The Initial Configuration application is divided into three parts:
- 1 - Provide Computer Information
- 2 - Update this server
- 3 - Customize this server
Although "Activate Windows" might seem like it should be the first step. Let's Configure the network first so that Activating Windows has access to the internet. We are going to setup this network to have a static IPs. To prepare for IP allocation you will need to configure your Internet Router to allocate a range of IP's to this network and not assign them to DHCP Clients. You can find information in part 2 of the series that covers this step.
Click the Configure Networking link - The Network Connections window will be displayed.
Right Click the 'Local Area Connection Network' icon and select properties. From the 'Local Area Connection Network Properties' dialog locate and select the 'Internet Protocol Version 4 (TCP/IPv4)' entry. Then click on the Properties button. This will display the 'Internet Protocol Version 4 (TCP/IPv4) Properties' dialog.
- Select use the following IP Address
- IP Address: 192.168.1.51 - An IP in the rage we reserved for this network at the Internet Router
- Subnet Mask: 255.255.255.0 - Typical Subnet Mask
- Default Gateway: 192.168.1.1 - (this is the internal IP Address of the Internet Router or proxy server.)
- Select use the following DNS Server addresses
- Preferred Server: 192.186.1.50 (this is the IP address of this networks Domain Name Server that was setup in part 1 of this blog series.)
- Alternate Server:
- Select the Advanced Button and then select the 'WINS' tab. Ensure that the 'Enable LMHOSTS lookup' checkbox is checked. In the NetBios section, ensure that 'Enable NetBIOS over TCP/IP is selected. Then choose OK to close the advanced configuration dialog
Select OK to close each of the dialogs. If we succeeded in setting up the Network IP for this server then activating Windows over the internet will succeed. Select Activate Windows from the Intitial Configuration Tasks application. Provide your product key. After windows activates close the Activate Windows dialog
To Check network connectivity, Ping the AD Server. Start > Run > type in Cmd. In the Console Window that is displayed type Ping 192.168.1.50 (or the IP that you assigned your Domain Server). If that works, check internet connectivity by lauching the browser and navigating to http://www.microsoft.com , because you are on a server you may be prompted about allowing navigation to the site. I allowed the navigation. If the ping is not successful or the web site navigation is not successful, double check your NIC configuration, and double check that the AD Server that was setup in part 1 of this blog series is running.
Select 'Set Time Zone' - The Windows Date and Time dialog will display. Set the correct settings for your location then select OK to apply the settings and close the dialog.
Select "Provide computer name and domain". When changing this computer from a workgroup to the domain you will need to be signed on or have access to a domain adminstrator account capable of joining a computer to the domain. Once you are ready, provide the computer a name and also change the computer from running in a workgroup to joining the domain. I used "sql001" (SQL 1st computer). You can use any name you want. I entered a description as 'BizTalk SQL Server'. On save you will be asked to Reboot. Do so.
After Re-Boot and Login, we will move to section 2 - Update this server. Select 'Enable automatic updating and feedback'. A dialog will appear giving you 2 choices. I chose Manual Configuration. My choice produced the 'Manual Configuration Settings' dialog. I changed the settings to 'automatically download but ask me to install updates'. I set recommended updates to the same setting. You should do what makes you feel comfortable. I chose my settings to allow me to take a snapshot of the VM before applying changes ---- Safety first you know. I also chose not to participate in error reporting and not to participate in the customer experience program.
Select Download and install updates. This step may take quite a bit of time and it will fail if our network adapter is not setup correctly. Remember this is a VirtualBox so the network adapter is configured through windows and through VirtualBox managment consoles. If the adapter is not setup with a bridged connection you will not get to the internet even if you just setup the windows network configuration correctly.
After Re-boot and Login. Locate the Customize This Server section in the Initial Configuration Tasks Application. Select the Add Roles Link. Select Next. In the list of available Roles choose 'Application Server'. This will be the only selection of roles for this server. Click Next. You will need to specify Role Services. I checked COM+ Network Access and Distributed Transactions ( Incoming and Outgoing Remote Transactions but not WS-Atomic Transactions) in addition to leaving the .Net Framework 3.5.1 item checked. I did not check any of the Windows Process Activation Service features. The Application Server role will allow this server to use Enterprise Services such as Distributed Transactions, which is required for BizTalk 2009 features. After the Roles and Features install you will need to go to the Component Services Management Console and set the Security Properties for the Local DTC (DTC on this VM). You need to ensure that following options are selected:
- Network DTC
- Check Both: Allow Remote Clients, Allow Remote Administration
- Transaction Manager Communication
- Check Both: Allow Inbound, Allow Outbound
- I selected No-Authentication Required, however the better option is Mutual Authentication Required
- DTC Logon Account
- I left the default: NTAuthority\Network Service

Next we need to ensure that COM+ Services and DTC are permitted through the firewall. To do that lets get to Windows Firewall. Select Start > Control Panel > System and Security > Windows Firewall. In the left hand navigation for Windows Firewall click on the the link for 'Allow a program or feature through Windows Firewall'. Enable the following
- COM+ Network Access
- COM+ Remote Administration
- Distributed Transaction Coordinator
- My Computer has the following enabled as well
- Core Networking
- DFS Mangement
- Network Discovery
- Remote Desktop

We are not done with the Firewall yet. This time we need to add a new rule. Activate the new rule wizard and select the option to create a new TCP/UDP Port Rule. Name the Rule something like 'Allow Connections to SQL Server', Enter a comma delimited set of Port addresses as follows: 1433,1434,2383. 1433 and 1434 are the well known ports for communicating with SQL Server and 2383 is the well known port for communicating with SQL Analysis Services. For more information about configuring SQL Server to run through the Windows Firewall see this article. Configuring the Windows Firewall to Allow SQL Server Access.

But wait there is more. Let's say you are experiencing issues connecting to the SQL Server and you want to ping it from another computer. As it turn out, Ping Support is also turned off in the firewall by default. From the Windows Firewall UI you need to select inbound rules. Locate the rules for File and Printer Sharing (Echo Request..) enable them (at least temporarily) so you can test connectivity to this server with DTCPing or with standard Ping from another computer.

Now you should copy the installations software for DTC Ping and DTC Tester onto the server in case we need to troubleshoot failed communication between the BizTalk Server and this SQL Server later. A gotcha with DTC Tester is that it uses 32Bit ODBC drivers, so be sure to setup an ODBC DSN that uses a 32Bit driver for this tool. There is no need to run either of these tools at this time. Until we setup the BizTalk 2009 server there is no other server for these tools to communicate with.
Re-Boot
SQL Server 2008
When we go to setup BizTalk 2009 it will check to ensure we are using a supported database. BizTalk 2009 supports SQL2008 but not SQL2008 R2 (at least not during the initial configuration). BizTalk 2009 also supports older versions of SQL Server such as SQL 2005. This blog post will concentrate on setting up SQL Server 2008 to be the database server for BizTalk 2009.
Start and Login to the SQL Server VM. Attach the SQL Server 2008 iso to a virtual drive through the Devices Menu. Install all of SQL Server 2008's features. During the installation you will be warned that SQL Server 2008 has known compatibility issues with Windows Server 2008 R2. I chose to install anyway. Of course the supported option is to stop this process, and start all over again with Windows Server 2008 (not R2). Here you can see that I installed all features. After choosing features you have the opportunity to use a named instance of SQL Server... DONT...there are many blog entries describing problems with using named instances so use the Default Instance ID of 'MSSQLSERVER'.

During installation you will be given the opportunity to assign security accounts to the services. Please ensure you use the same accounts you created for those service in part 2 of this blog series. Figure 1 below is a copy of the relevant portion of the Security Accounts for SQL Server. Additionally, please be sure to set all services to automatic start when setting the security accounts.
Active Directory Accounts, Groups and Memberships
| Server |
User Logon Name |
Group Name: Membership |
Description |
| SQL Server |
SqlAdmin |
|
Replace the sa account in SQL Server with this account |
| |
SqlAgent |
|
This account will provide the security context for the SQL Agent running on the SQL Server |
| |
SqlAnalysis |
|
This account will provide the security context for the SQL Analysis services running on the SQL Server |
| |
SqlDbEngine |
|
This account will provide the security context for the SQL Server Service running on the SQL Server |
| |
SqlIntegration |
|
This account will provide the security context for the SQL Integration Services running on the SQL Server |
| |
SqlReporting |
|
This account will provide the security context for the SQL Reporting services running on the SQL Server |
| |
|
Sql Admins: Domain\Domain Admins, Domain\SqlAdmin |
This Group will be used to provide SysAdmin security on the SQL Server rather than adding users to the SQL Security and then giving them the sysadmin role from SQL Server Security. Use this group for both SQL Admin and Reporting Admin during installation. |
FIGURE 1 - Table of Security Accounts needed for the BizTalk Network
Once you have completed SQL Server installation. Re-boot.
After startup and login we need to go to the SQL Configuration Tool and check on a few configuration pieces. Using Windows Menus open the SQL Configuration Tool for SQL 2008. You will need to ensure that SQL is configured to support TCP/IP and Named Pipes. As it turns out BizTalk Server 2009 uses Named Pipes at times to communicate with SQL Server. You will also need to double check that the SQL Agent Service is running and set to autostart. BizTalk counts on the SQL Agent running. Compare your settings to those show in the following images and make any necessary adjustments to your settings. Yes..Yes.. I know the accounts shown in the image below do not match the accounts listed in the table above. The important thing is that they do match the ones planned for the Virtual Network they were intended for.

Figure 2 - Sql Server Configuration Manger with SQL Server Services Selected

Figure 3 - Sql Server Configuration Manager with 32 Bit Client Protocols selected showing TCP/IP and Named Pipes Enabled

Figure 4 - Sql Server Configuration Manager with 64 Bit Client Protocols selected showing TCP/IP and Named Pipes Enabled

Figure 5 - Sql Server Configuration Manager with Server Client Protocols selected showing TCP/IP and Named Pipes Enabled
Summary
There you have it. Setting up the SQL Server is very similar to setting it up for any other purpose. The server has to have the application server role and you had to perform configuration steps for the NIC Card, Windows Firewall, Distributed Transaction Coordinator and SQL Server. Additionally, you pre-staged a couple of utilities that will help debug the Distributed Transaction Coordinator if it is found not to be working with the BizTalk 2009 server after we set it up as described in the next Blog entry.
Monday, May 31, 2010 1:05:00 AM
Setting up the Active Directory and Primary Domain Server.
This will be a multi-part series for setting up the network to work in Sun Virtual Box
If you followed part 1 of this series you have already installed the Windows 2008 Enterprise R2 64 Bit version of the Operating System. But you have not yet configured the server to fill it's role as the Primary Domain Controller and Active Directory server for our Dev BizTalk network.
You should have already changed the administrator's password. So start that Virtual Machine and sign-in.
Once you have logged-in the Initial Configuration Application is started. If it does not start automatically, select 'Start-Run' and type in 'oobe' - this will start the Initial Configuration application. If you did not install the Virtual Machine Addtions. You should do so before you continue. In the VirtualBox Frame that surrounds your Windows Virtual instance select the Devices Menu then select 'Install Guest Additions'. When the guest addtions are through installing you will need to re-boot.
To improve page load times and to decrease my outgoing bandwidth I will supply pictures only where I think they are necessary. MSDN and TechNet documentation for setting up a Primary Domain controller have excellent documentation in case you can't follow this.
The application is divided into three parts:
- 1 - Provide Computer Information
- 2 - Update this server
- 3 - Customize this server
Although "Activate Windows" might seem like it should be the first step. Let's Configure the network first so that Activating Windows has access to the internet. We are going to setup this network to have a static IP for the Primary Domain controller. To do this you will need to configure your Internet Router to allocate a range of IP's to this network and not assign them to DHCP Clients. Configure your router to assign 192.168.1.50 through 192.168.1.70 as not available for DHCP.
Click the Configure Networking link - The Network Connections window will be displayed.
Right Click the 'Local Area Connection Network' icon and select properties. From the 'Local Area Connection Network Properties' dialog locate and select the 'Internet Protocol Version 4 (TCP/IPv4)' entry. Then click on the Properties button. This will display the 'Internet Protocol Version 4 (TCP/IPv4) Properties' dialog.
- Select use the following IP Address
- IP Address: 192.168.1.50 - The first IP in the rage we reserved for this network at the Internet Router
- Subnet Mask: 255.255.255.0 - Typical Subnet Mask
- Default Gateway: 192.168.1.1 (this is the internal IP address of your Internet Router or Proxy Server)
- Select use the following DNS Server addresses
- Preferred Server: Use the DNS Server IP Address found in your internet router.
- Alternate Server: Use the DNS Server IP Address found in your internet router.
- Select the Advanced Button and then select the 'WINS' tab. Ensure that the 'Enable LMHOSTS lookup' checkbox is checked. In the NetBios section, ensure that 'Enable NetBIOS over TCP/IP is selected. Then choose OK to close the advanced configuration dialog
Select OK to close each of the dialogs. If we succeeded in setting up the Network IP for this server then activating Windows over the internet will succeed. Select Activate Windows from the Intitial Configuration Tasks application. Provide your product key. After windows activates close the Activate Windows dialog
Select 'Set Time Zone' - The Windows Date and Time dialog will display. Set the correct settings for your location then select OK to apply the settings and close the dialog.
Select Provide computer name and domain. At this point we don't have a domain so we will just be setting the computer name - I used "ad001" (active directory 1st computer). You can use any name you want. I entered a description as 'Primary Domain Controller and Active Directory Server'. On save you will be asked to Reboot. Do so.
After Re-Boot and Login. We will move to section 2 - Update this server. Select 'Enable automatic updating and feedback'. A dialog will appear giving you 2 choices. I chose Manual Configuration. My choice produced the 'Manual Configuration Settings' dialog. I changed the settings to automatically download but ask me to install updates. I set recommended updates to the same setting. You should do what makes you feel comfortable. I chose my settings to allow me to take a snapshot of the VM before applying changes ---- Safety first you know. I also chose not to participate in error reporting and not to participate in the customer experience program.
Select Download and install updates. This step may take quite a bit of time and it will fail if our network adapter is not setup correctly. Remember this is a VirtualBox so the network adapter is configure both through windows and through VirtualBox managment console. If the adapter is not setup with a bridged connection you will not get to the internet even if you just setup the windows network configuration correctly. My first update included 30 required downloads.
After Re-boot and Login. Locate the Customize This Server section in the Initial Configuration Tasks Applicaiton. Select the Add Roles Link. Select 'Active Directory Domain Services' from the list. Do not select anything else at this time. Select Next. You will be presented with a dialog that informs you that .Net Framework 3.5.1 features must be installed. Agree with the dialog and click Next. After the Active Directory Services have been installed. Re-boot.
After Re-boot and Login. Select Start-Run and type in dcpromo. The Active Directory Services Installation Wizard will be displayed. Check the 'Advanced Configuration' checkbox and Select Next. An Operating System Compatibility messge is displayed - Read it, and click Next. Choose a Deployment configuration is displayed. Select 'Create a new domain in a new forest' then click Next. You will be prompted to supply an FQDN (fully qualified domain name). The example shows a 3 part name. I chose to Enter a 2 part name (trdev.local). You should supply a name that is meaningful to your network and not just use mine. After a few seconds of NetBios verification you are given the opportunity to set the Network's net bios name or accept the default. I left mine at TRDEV. Click Next. The Set Forest Functional Level is displayed. I chose Windows Server 2008 R2. You should run through each of the selections and read the implications of the choice. Click Next. After a few seconds/minutes of examining the DNS configuration you will be prompted to install DNS. The default is that DNS is already checked, leave it that way and select Next. You will see a popup regarding the First Domain in the forest. Select Yes to continue since this is the first (and only) domain in the forest. Next you will be prompted to provide a recovery password for the Directory Services Restore Mode Administrator. Supply a secure password and keep it where you can find it if you need it. Select Next. You will see the summary page where you have the opportunity to export the configuration. I chose not to export and Selected Next. A dialog will be displayed indicating that the Active Directory Domain Wizard is configuring the server. I checked the Re-boot check box. When the wizard was completed the Server Re-booted and went through a startup application configuration settings delay. I logged in again and the Server was now an Active Directory Services/Domain Name Server with access to the Internet. By default the Firewall is on protecting the server.
At this point it is always a good reminder to let you know that this VM instance is not protected from Viruses. It does not matter that the underlying Host Server is protected because this VM as most VM's access the Network Card below the Host OSes hardware abstraction layer. So installing a Virus Protection software is warranted and recommended. Additionally, now is a good time to exit the VM, locate the VM's virtual disk and copy it to a safe location.
This was supposed to be about BizTalk so where's the BizTalk configuration?
It starts now. We wanted a Network configuration to run BizTalk in. Now we have a server to provide us management over AD Accounts that both BizTalk Server and SQL Server will need to operate with each other in the Network. Reading both BizTalk Server and SQL Server installation instructions results in finding recommendations for the following AD Accounts and Groups and assignments of Accounts to Groups.
Active Directory Accounts, Groups and Memberships
| Server |
User Logon Name |
Group Name: Membership |
Description |
| SQL Server |
SqlAdmin |
|
Replace the sa account in SQL Server with this account |
| |
SqlAgent |
|
This account will provide the security context for the SQL Agent running on the SQL Server |
| |
SqlAnalysis |
|
This account will provide the security context for the SQL Analysis services running on the SQL Server |
| |
SqlDbEngine |
|
This account will provide the security context for the SQL Server Service running on the SQL Server |
| |
SqlIntegration |
|
This account will provide the security context for the SQL Integration Services running on the SQL Server |
| |
SqlReporting |
|
This account will provide the security context for the SQL Reporting services running on the SQL Server |
| |
|
Sql Admins: Domain\Domain Admins, Domain\SqlAdmin |
This Group will be used to provide SysAdmin security on the SQL Server rather than adding users to the SQL Security and then giving them the sysadmin role from SQL Server Security |
| BizTalk Server |
BAMAlerts |
|
This account will provide the security context for the BAM Alerts running on the BizTalk Server which uses SQL Notification Services (a SQL 2005 feature) also running on the BizTalk Server |
| |
BAMAppPool |
|
This account will provide the security context for the IIS Application Pool which the BAM Portal will be running under on the Web Server. In our network that web server is also the BizTalk 2009 serer. |
| |
BAMWebSvcMgmt |
|
This account will provide the security context for BAM Web Service APIs running on the Web Server. In our network that web server is also the BizTalk 2009 Server. |
| |
BTSHost |
|
This account will provide the security context for BizTalk Applications running in process on the BizTalk Server |
| |
BTSIsoHost |
|
This account will provide the security context for the BizTalk Applications running out of process on the BizTalk Server |
| |
BTSRulesEngine |
|
This account will provide the security context for the BizTalk Rules Engine running on the BizTalk Server |
| |
SSOService |
|
This account will provide the security context for the SSO Service (Enterprise Single Sign-on running on the BizTalk Server |
| |
|
BAM Portal Users: Domain\Domain Users, Domain\Domain Admins |
This group will provide the security context for allowing users and groups to access the BAM portal running on the Web Server. In our network the web server is also the BizTalk Server |
| |
|
BTS Application Users: Domain\BTSHost |
This group will provide the security context for allowing users and groups to access limited applications running in process on the BizTalk Server |
| |
|
BTS Isolated Host Users: Domain\BTSIsoHost |
This group will provide the security context for allowing users and groups to limited applications running out of process on the BizTalk Server |
| |
|
BTS Administrators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups to administer the BizTalk Server through the BizTalk Server Administration console |
| |
|
BTS Operators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups to access limited features of the BizTalk Server through the BizTalk Administartion Console |
| |
|
SSO Administrators: Domain\ Domain Admins, Domain\SsoService |
This group will provide the security context for allowing users and groups to administer the Single Sign-On Service |
| |
|
SSO Affiliate Administrators: Domain\Domain Admins |
This group will provide the security context for allowing users and groups from affiliates to administer the Single Sign-On Service accounts that are under their control |
FIGURE 1 - Table of Security Accounts needed for the BizTalk Network
Select Start > Administrative Tools > Active Directory Users and Computers. The Active Directory Users and Computers Management console will appear. Click on the '+' sign for the domain name in the treeview on the left side of the window to expand the tree and reveal the 'Users' node.
Right click on the Users Node and select Add New User. Fill in the dialog for the user. Be sure to use the User Logon Name from the table in Figure 1. This Logon Name will be used again when installing SQL Server and BizTalk Server later. After filling in the user information select Next. Supply a password that meets the security policy and that you can remember (ie.. Dog#4Life - Dog Pound for Life). Uncheck user must change password at next logon. Check User cannot change password. Check password never expires. Select Next. Select Finish. The user will be created in the domain. Repeat this process for each user account Figure 1.
Right click on the Users Node and select Add New Group. Fill in the dialog for the Group. Be sure to use the Group Name from the table in Figure 1. This Group Name will be used again when installing SQL Server and BizTalk Server later. Leave GroupScope and Group Type at the default. Select OK to close the dialog. Right Click on the Group you just created and select properties. On the general tab fill in the Description with the description found in the table in Figure 1. Select the Members Tab. Add the Domain Member accounts indicated in the table in Figure 1. Select Managed By. Set the group to be managed by the Domain Admin. Repeat this process for each group account in table found in Figure 1.
You may find it interesting to create other user accounts in the Domain that can be used for testing your BizTalk Network setup. In doing so, if you are logged in under one of those accounts you will find out what does and does not work based on accounts that do not have Domain Admin or Local Admin access. This is one of the primary benefits of setting up the network so don't overlook the importance.
Your Domain Server is now ready. In the next blog entry I will describe setting up SQL Server for BizTalk installation.
Sunday, May 30, 2010 2:15:02 PM
Preliminary Discussion
I have been given the opportunity to work with BizTalk Server 2009/2010. To be more prepared for the development effort I wanted to setup BizTalk in a Virtual Network. I decided to work with Sun Virutal Box because I have not worked with it before. This decision to build out the network in Virtual Box was made because I could - not because I should or because Microsoft or Sun would recommend or support such a decision. You should consider supported solutions. Why describe a network install? Because most of the blogs I read and the MS documentation I read describes a single computer setup for development and most of us know that, while that works for a good deal of development, it does not work for understanding the needs of a solution that will be deployed to a network.
This will be a mult-part series for setting up the network to work in Sun Virtual Box
So lets get started. I am lucky enough to have a Microsoft
Visual Studio Ultimate with MSDN subscription giving me access to development versions of all of the software I need to do this work. If you are a professional software developer I recommed you consider purchasing one of the Visual Studio Packages with MSDN so that your research and development work can proceed without worrying about licensing costs for development.
First let me describe my host computer:
- Intel I920 2.67GHZ Processor (Quad Core + Hyper Threaded)
- 8GB RAM (Expandable to 24GB)
- 1 TB HD 7200RPM
- Windows 7 Ultimate 64Bit Host OS
- Standard Peripherals - DVD, MultiReader, USB....
- 24" Display
- 1GB G220 NVidia Video Card
Why was the above disclaimer necessary? Because I will be operating the host OS and 3 or 4 guest OSes simultaneously. I will need enough RAM and Hard Disk space to allow for the network. A word of caution here, I am building this network as a development network not as a solid production ready network. Most of what I needed to learn was derived from creating this network
FIGURE 1 - Logical representation of a simple BizTalk network using VirtualBox
The FIOS Router is a piece of hardware that connects my private network (including the host computer for the BizTalk network) to the internet. It was provided by Verizon as part of installing
Verizon FIOS Internet (Fibre Optic). You can use whatever router your internet provider allows or whatever routing scheme your IT Administration department will support. I need this route to the internet to ensure that the virutal computers I setup can receive their updates. The Virtual Box Bridged Adpater is a logical adapter setup in the Sun Virtual Box Management Console. The Windows 7 host computer can be any computer with a host operating system supported by VirtualBox, in this case I am using Windows 7 64Bit.
To get started you will need to plan on creating at least 3 Virtual Boxes to form the network pictured in Figure 1. To build the core network, virtual machines capable of serving the 3 roles, you will need to have the following software at your disposal.
|
Virtual Box Settings By Server Role
|
|
Setting
|
Primary Domain Controller
|
Database Server
|
BizTalk Server
|
|
Name
|
Primary Domain
|
Sql 2008
|
BizTalk 2009
|
|
OS Type
|
Windows 2008(64Bit)
|
Windows 2008(64Bit)
|
Windows 2008(64Bit)
|
|
Base Memory
|
512MB
|
1536MB
|
2048MB
|
|
Processor(s)
|
1
|
2
|
2
|
|
Boot Order
|
Floppy, CD\DVD-ROM, Hard Disk
|
Floppy, CD\DVD-ROM, Hard Disk
|
Floppy, CD\DVD-ROM, Hard Disk
|
|
VT-x/AMD-V
|
Enabled
|
Enabled
|
Enabled
|
|
Nested Paging
|
Enabled
|
Enabled
|
Enabled
|
|
Video Memory
|
18MB
|
18MB
|
18MB
|
|
3D Acceleration
|
Disabled
|
Disabled
|
Disabled
|
|
2D Acceleration
|
Disabled
|
Disabled
|
Disabled
|
|
Remote Display Server
|
Disabled
|
Disabled
|
Disabled
|
|
IDE Primary Master
|
VDI Name: ad001_w2k8r264
VDI Size: 20GB
|
VDI Name: sql001_s2k864
VDI Size: 40GB
|
bts001_b2k964
VDI Size: 40GB
|
|
IDE Secondary Master
|
VBoxGuestAdditions.iso
|
VBoxGuestAdditions.iso
|
VBoxGuestAdditions.iso
|
|
Floppy Device 0:
|
Empty
|
Empty
|
Empty
|
|
Audio Host Driver
|
Windows Direct Sound
|
Windows Direct Sound
|
Windows Direct Sound
|
|
Audio Host Controller
|
ICH AC97
|
ICH AC97
|
ICH AC97
|
|
Network Adpater 1:
|
Intel PRO/1000 MT Desktop (Bridged Adapter, <Host Computer Driver Name>)
|
Intel PRO/1000 MT Desktop (Bridged Adapter, <Host Computer Driver Name>)
|
Intel PRO/1000 MT Desktop (Bridged Adapter, <Host Computer Driver Name>)
|
FIGURE 2 - Table of Virtual Machine Settings for the BizTalk Network
Install VirtualBox following the documentation provided by the vender. No point in repeating the instructions provided by the vender. I did not follow them. I just ran install and followed the prompts.
Procedure to create a Virtual Machine
During the setup of each virtual machine use the settings described in FIGURE 2 - Table of Virtual Machine Settings for the BizTalk Network.
Start the VirtualBox Management console and select New from the toolbar.
The Create New Virtual Machine wizard will be displayed.
Select Next - The VM Name and OS Type page will be displayed. You will need to type in a name for the Virtual Box you are creating, select an operating system from that will be installed in the Virtual Machine, and Select a version of the operating system.
Select Next - The Memory page will be displayed. You will need to supply the amount of memory you want to allocate to this Virtual Machine. If needed this value can be changed later.
Select Next - The Virtual Hard Disk page will be displayed. Ensure that the Boot Hard Disk (Primary Master) is checked and select the Create new hard disk option.
Select Next - The Create New Virtual Disk wizard will be displayed.
Select Next - The Hard Disk Storage Type page will be displayed. I chose Dynamically expanding storage for the storage type. This means that while I will be selecting a Disk Storage size later, that the system will not automatically use that size. Instead it will expand as needed up to the specified size.
You can choose Fixed-Size storage if you want.
Select Next - The Virtual Disk Location and Size page will be displayed. You will supply a location on the host computer where the virtual disk will be created. Additionally you will supply a disk size.
Select Next - The Create New Virtual Disk Summary page will be displayed. (Image omitted to save bandwidth)
Select Finish - You will be returned to the Virtual Hard Disk page of the Create New Virtual Machine wizard. (Image omitted to save bandwidth)
Select Next - The Create New Virtual Machine Summary page will be displayed. (Image omitted to save bandwidth)
Select Finish. You will be returned to the VirtualBox Management console. Where your new Virtual Machine will be present in the left hand navigator. (Image omitted to save bandwidth)
At this point you have a primative Virtual Machine setup and you will be able to see it in the Virtual Machine management console. On the left side of the console select your new Virtual Machine. On the right side of the console select the details tab.
We need to at least configure our network adapter.
Select Network - The Settings Dialog box will be displayed with Network already selected and the Adapter 1 Tab already pre-selected. Ensure that the Enable Network Adapter Box is checked. Select Bridged Adapter from the "Attached to" drop down box. Select your host sytem adapter from the "Name" drop down box.
Select Shared Folders from the Left Hand Navigator. On the right hand side select the 'Add Shared Folder' button. Choose a folder from the host operating system that you would like to have access to from the Virtual Machine.
Select OK - You are returned to the Virtual Machine Management console. Select your new virtual Machine from the Left Hand Navigator.
Locate the Windows Installation Media. If you downloaded it, and did not burn a DVD do so now.
After you have the DVD in the host computer DVD drive, select Start from the VirtualBox Toolbar - The first time run wizard will be displayed.
A side note, When you start working with the Virtual Machine you will notice that once your mouse clicks in the VM Window it cannot leave. Until you install the VM Addtions, you will need to press 'Right-Ctrl' on your keyboard to free the mouse from the VM Window.
Select Next - The Select Installation Media page will be displayed. Put the Windows Installation DVD in the Host Computer DVD drive. Select the Host DVD drive for installing the Windows software. During the installation be sure to Select Windows 2008 R2 Enterprise 64Bit. For this blog post I am assuming your installation software will allow you to work with Enterprise 64Bit software installations.
After Installation is complete. The Virtual Machine will reboot. You will need to change the administrators password. Change it to a password that matches the default password policy requirements but also to something you can remember. You will need it over and over again. Choose something like Dog#4Life (Dog Pound For Life) or if you like cartoons. No that is not my password.
The Windows OS is hosted in a Virtual Machine window. From the Virtual Mahine Window Select the Devices Menu Item followed by Selecting Install Guest editions. This will allow you to move your mouse freely from the Virtual Machine to your host without the need to press 'Right-Ctrl' first.
Reboot.
When the Virtual Machine has rebooted you will need to press 'Ctrl-Del' to cause the VM to display your login boxes. If you follow the on screen prompt and press 'Ctrl-Alt-Del' that combination will actually active the host computer's response not the VM response. So go ahead now and login to the VM.
The Initial Configuration Tasks application will automatically start. Until we are through with setup do not check the 'check box' in the lower portion of this appliation that reads 'Do not show this window at logon'. If it is too late, for that, then you will need to select Start - Run and type in 'oobe' which will start the Initial Configuration Tasks application.
Repeat this setup procedure once for each of the three servers we are planning for the Virtual Network. Your final Virtual Box Management Console should look something like this paired down image.
In the next blog post I will discuss settingup your Primary Domain Controller for the BizTalk 2009 network.