Wednesday, December 11, 2013

Turning on the spending limit in Windows Azure

When you are using Windows Azure as part of a member offer such as the MSDN benefit or the Microsoft Partner Network Cloud Essentials program, you are protected from getting charged beyond the credits from your Windows Azure subscription by a spending limit.

If you are prepared to pay for using more resources, you could use a switch on your account page with which you can turn off the spending limit. Unfortunately until a couple of months ago it was not possible to turn that switch back on!

Luckily it's now possible to turn that spending limit switch on! See the short manual below.

From the Windows Azure Management Portal, go to the menu in the upper right corner and select 'View My Bill'.


You arrive at your Account Page.

As you can see in the yellow banner, this subscription has no spending limit. So if you use more resources than available in your subscription, you'll have to pay for that.
By clicking the link in the yellow banner, you can change the spending limit option.

By selecting the upper option and hit the check mark below, you switch on the spending limit as of the start date of the next billing period.

After some processing, you'll return to your Account Page. The yellow banner now reflects the choice you made in the previous dialog.


See also this article:

Thursday, May 02, 2013

BizTalk Message Decompressor reaches v2.0 with many improvements!

To make my job easier I'm still improving BTSDecompress. Here's an overview of the latest updates:

  • Addition of Tab Pages to be able to open more than 1 query
  • Addition of a Button bar to have easy access to some of the most used functions
  • Addition of a dialog screen for maintenance of namespaces
  • Addition of a beter query editor
  • Addition of a Grid View for presenting the output
  • Addition of a command-line version
These updates are described in more detail below the following screen print.

Addition of Tab Pages

This enables you to be able to open more than one query at the same time. Most of the times I use BTSDecompress, I need 2 different queries. So I needed to open 2 instances of BTSDecompress. With the addition of Tab Pages, it's enough to start BTSDecompress just once and open all the queries I need.

Globally it works as follows:
  • BTSDecompress always starts up with one Tab Page and an empty query window
  • when you create a new query or open an existing one, it always shows up in a new Tab Page
  • the Tab of the Tab Page contains the file name of the query you opened. If you made changes to the query an asterisk is added to the Tab Page (see screen print)
  • you can close the currently selected Tab Page by pressing Ctrl-F4 or by clicking the right mouse button of the Tab Page and choose 'Close Tab'. In case the query has changed and might need to be saved, you are notified.
  • when you have opened multiple queries and you switch between Tab Pages (with Ctrl-Tab or mouse click), the settings which appear above the Tab Pages (Database Server, Database etc.) are also switched, making sure they reflect the settings of the currently active Tab Page/query

Addition of a Button Bar

For easy access to some of the most used functions a Button Bar is added. Currently it contains the following buttons:
  • New Query - open a new Tab Page with an new query
  • Open Query - open an existing query in a new Tab Page
  • Save Query - save the query in the active Tab Page
  • Save All - save all opened queries
It is likely that more buttons will become added in future releases.

Addition of a dialog screen for maintenance of namespaces

After you have executed a query, the results will show up in the output frame. In most cases the output consists of XML messages. One of the nice capabilities of BTSDecompress, is that it is possible to add XPath queries, enabling you to view exactly that part of the message that you are interested in.
In many cases you might need namespaces to get to the part of your interest. In earlier releases of BTSDecompress, it was possible to add only 1 namespace. Since your message might contain more namespaces, it is now possible to add multiple namespaces. Maintenance (adding, editing, deleting) of these namespaces can be done with the new 'Namespaces and prefixes' dialog screen.

Of course the namespaces you entered are stored along with the query. This screen can be accessed by clicking the Namespaces hyperlink in the upper left corner of BTSDecompress.

Addition of a beter query editor

The query editor in the previous releases of BTSDecompress was nothing more than a multi line Text Box and did not have many features. I have to admit that I often created my queries in SQL Server Management Studio and copied them to BTSDecompress. So it was about time that BTSDecompress would get a richer query editor. I decided to use Pavel Torgashov's FastColoredTextBox, which is a nice and very rich Text Box!
Although currently I'm not using all of the capabilities of this Text Box, using this Text Box already makes using BTSDecompress much more attractive. This editor supports amongst others color recognition for T-SQL statements and line numbers.

Addition of a Grid View for presenting the output

As of this release BTSDecompress not only shows the results in a Text View, but also in a nice Grid View for better readability. In contrast with SQL Server Management Studio, both Views are filled directly after executing your query.

Addition of a command-line version

This enables you to create batch jobs and have the output stored in a Text file. You can use the same queries as the ones you use for the GUI version of BTSDecompress. The command-line version of BTSDecompress is called BTSDecompress_cmd.exe and has  the following parameters:
  • -s: Database server
  • -d: Database
  • -SQLFile: Query which will be executed
  • -OutputFile: Location and name of the output file
  • -OverwriteOutputFile: Overwrite the output file if it already exists
  • -Namespace: Add (prefix and) namespace
  • -HideOuterXMLTag: Show just the content of a XML tag, without the tag itself
  • -HideContextPropertyNames: Hide the Context Property Names in the result
  • -ShowColumnNames: Show the field names in the result
  • -UseFieldSeperator: Show a Field Seperator (';') between the fields (and values) in the output
  • -BlankLineBetweenRecords: Add an extra blank line between the records in the output, for better readability
  • -?: Show Parameter Help
A couple of parameters can also be set in the query file, from the GUI version of BTSDecompress. By adding them as a parameter to  BTSDecompress_cmd.exe, the value which is set in the query file will be overruled.

More information

Where to find

BTSDecompress is Open Source software and can be found here:

Hopefully this tool is helpful to others as well.

Tuesday, April 16, 2013

Ordina organiseert de BTUG-bijeenkomst van 30 mei 2013

Het is ondertussen een goed gebruik geworden dat Ordina jaarlijks een groot BizTalk-evenement organiseert en host. Na de bijeenkomst van de Dutch BizTalk User Group (BTUG) in november 2011 en het Ordina BizTalk Innovation Event in februari 2012, host Ordina dit jaar wederom een bijeenkomst van de BTUG. Dit evenement zal op donderdag 30 mei plaatsvinden, in de ondertussen voor veel BizTalkers welbekende 11e etage van de A-toren van de hoofdvestiging van Ordina, te Nieuwegein.

Het programma ziet er als volgt uit:
- BizTalk Update (Dick Dijkstra, Microsoft)
- Theorie en praktijk van messaging/service bus in Azure (Steef-Jan Wiggers en René Brauwers)
- BizTalk Disaster Recovery (Lex Hegt + Jeroen Hendriks)

Ontvangst is vanaf 15.30u. Tussen de sessies door zijn softdrinks te krijgen en vindt het dinerbuffet plaats. Er wordt afgesloten met een borrel. Uiterlijk om 21.00u moeten de deelnemers het pand hebben verlaten.

Toegang is gratis.
Maximaal aantal deelnemers: 70
Locatie: Ringwade 1, Nieuwegein (kaart)

Wednesday, April 10, 2013

Could not find server 'servername' in sys.servers after running the BizTalk Backup job on Windows Azure

After I provisioned a Windows Azure Virtual Machine, which was based on the BizTalk Server 2013 Beta image from the Gallery, I configured the BizTalk Backup job.

Normally it is enough to just apply the file locations of the Full backup and the Log backup and to Enable the job, but when I did this, I noticed in the History of the job, that the job failed.

The error I got was 'Could not find server BTS2013B in sys.servers', where BTS2013B is the name that I assigned to the Virtual Machine.

I checked the sys.servers table and retrieved the servername. Both showed something else than the expected name BTS2013B, namely WIN-QMPGBU8OQOK. Apparently this is the original name of the Windows installation on the VM.
To fix this problem I ran the following statements in SQL Server Management Studio,
EXEC sp_dropserver 'WIN-QMPGBU8OQOK';
EXEC sp_addserver 'BTS2013B', 'local';
Afterwards I saw that the server name is still WIN-QMPGBU8OQOK, but in sys.servers, the field data_source is now BTS2013B, which is enough for the BizTalk Backup job to run properly.
The only thing left is to restart the SQL Server service and then the BizTalk Backup job runs fine!

Thursday, March 21, 2013

Adding EndPoints on Windows Azure VM's

After you have created a Virtual Machine in Windows Azure, an EndPoint is created for accessing the Virtual Machine with Remote Desktop (RDP) from your local computer. An EndPoint is basically a mapping between a Public IP Port and a Private IP Port. Each time you use the Windows Azure Management Portal to connect to your Virtual Machine in Windows Azure, by hitting the Connect button, the RDP connection connects to the Public IP Port. The network traffic that arrives at that Public port, becomes routed to the Private port, making sure the network traffic accesses the application or service it was intended for.

So for RDP everything is setup nicely by Windows Azure, but say you have a SQL Server database on that VM, which you want to access from a (Azure) website or your local SQL Server Management Studio. In that case you need an extra EndPoint to be able to access that database from the outer world.

Although not advisable, you can map Public IP Port 1433 (SQL Server's standard port) to Private Port 1433. But by doing so, you make it easier for hackers to access your database (although they don't have security credentials), so it's better to take a random number between 1024 and 65535 and configure that as the Public IP Port.

Follow these steps to create an EndPoint for accessing a SQL Server database.

Login to the Management Portal with your Microsoft account which is mapped to your Windows Azure subscription and click on 'Virtual Machines' in the menu on the left. Next select a Virtual Machine  by clicking on it (that is: if you've created one beforehand) and then click on 'EndPoints'. In the screen that follows you'll see that an EndPoint is already created for Remote Desktop connections.

Now click the 'Add EndPoint' button, afterwhich you get the first screen of a 2 pages wizard.

Leave the bullet on the first radio button and proceed to the next screen of the wizard, by clicking on the small arrow button in the lower right corner.

In this screen you have to make a couple decisions. First, select an identifiable name for the EndPoint. Since we are creating an EndPoint for SQL Server, you could choose a name in that direction. Keep in mind that spaces are not allowed!
The second choice you have to make is the number of the Public Port. Choose a random number between 1024 and 65535, preferable NOT 1433.
The last choice is actually a value you should already know, namely the (Private) Port which is used for SQL Server. By default SQL Server communicates on port 1433. So unless you did configure another port, enter 1433 for the Private Port.
So far the configuration of the EndPoint. Now click the button with the check mark, to have Windows Azure create the EndPoint. This can take 1 or 2 minutes.
What's next
Having an EndPoint configured to be able to access a database in a Windows Azure VM is only one step. The next steps will be creating a SQL Server authentication login and grant it the needed authorizations. Read more about it in this article on BizTalk Events.