Permanently disable rightside toolbar in Adobe Acrobat Reader

The latter versions of Adobe Acrobat Reader had an annoying pane in the right that everyone always closed down immediately to increase readability. Though next time you opened up a PDF, the pane would be back! All changes to the state of the application were saved, except for this one… Extremely annoying and a waste of precious time when you need to close down that pane everything single time!

So for those who are also annoyed by this, apply the following steps for permanent removal ;

  • Close Acrobat Reader
  • Browse to the program folder of Acrobat Reader and then go to “Acrobat Reader DC\Reader\AcroApp” and then your language code
  • Delete the following files : AppCenter_R.aapp & Home.aapp & Viewer.aapp
  • Start up Acrobat Reader
  • Rejoice!

Microsoft Azure Support Lifecycle

As an architect, one always looks towards the supportability of the entire stack during the projected lifecycle of the solution that will be built. So when we are using Azure components, we should also be aware that these cloud services have a given support lifecycle too… Anyhow, let’s dig in!

Azure has four different support categories when looking towards the support lifecycle ;

  • Azure Virtual Machines – The Microsoft software supported on Azure Virtual Machines (Infrastructure as a Service) will follow the existing Mainstream and Extended Support phase of the on-premises lifecycle support policy.
  • Azure Cloud Services – Microsoft Azure Cloud Services (Web and Worker Roles/Platform as a Service), allows developers to easily deploy and manage application services while delegating the management of underlying Role Instances and Operating System to the Azure Platform. The lifecycle policy details for the Guest OS provided by Azure for Cloud Services.
  • Azure Services – All other Azure Services follow the Online Services Support Lifecycle Policy for Business and Developer
  • Support for Custom Applications using Open Source on Azure – For all scenarios that are eligible for support through an Azure purchased support plan, Microsoft will provide commercially reasonable efforts to support custom applications and services built using open source software running on Azure

Source :

Is there anything specific you should note?

  • Microsoft Azure will provide 12 months of notice to retire the oldest Guest OS family from the list of supported OS families.
  • At the end of the 12 month notification period, Microsoft Azure will stop providing the latest/patched version for a retired OS family. The cloud services using the retired OS family will be unsupported and will be stopped.
  • Each Guest OS Version is normally disabled 60 days after its release. After this grace period expires, Cloud Services using the retired OS version will be force upgraded to a supported Guest OS version.

Is Windows Failover Cluster supported on Azure? YES!

Is WSFC (Windows Server Failover Cluster) supported on Azure?


You can find the official support statement at the following location :


Though be aware that there are some considerations…

Requirements for Windows Server Failover Cluster:

  • Must Run Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2
  • For Windows Server 2012 and Windows Server 2008 R2, KB2854082 is required on all nodes
  • Must use a single-cluster IP address resource
  • Must use Azure hosted storage using one of the following options:
      Application-level replication for non-shared storage
      Volume-level replication for non-shared storage
      ExpressRoute for remote iSCSI Target shared block storage
      Azure Files for shared file storage
  • High availability and disaster recovery for SQL Server in Azure virtual machines
  • Can be a third-party clustered role
    Note Third-party clustered roles are supported by the vendor



Now how do we do this in reality? (Thanks to Thomas for the links)

So what will your challenges be? First of all the storage replication, as it is not possible to share disks between VMs in a read/write manner. After that you should be carefull with your network design due to the different types/levels of IP.

Anyhow, I hope this article helped you on track for your first WSFC deployment on Azure!

Azure & Oracle : Match in heaven or a disaster waiting to happen?

There is a partnership!
Let’s start this post with the statement that Oracle & Microsoft have formed a partnership to run Oracle software (Java, Database, Weblogic, …) on Azure. (Source : Here & Here)

Let’s be honest… Oracle licensing is one of the most dreadful in the business. So your first question will probably be ; “How do they license cloud platforms when virtualization is currently seen as a disease from an Oracle point-of-view?”

The following statement provides more insight ;

This policy applies to cloud computing environments from the following vendors: Amazon Web Services – Amazon Elastic Compute Cloud (EC2) and Amazon Simple Storage Service (S3), Microsoft Windows Azure Platform (collectively, the ‘Authorized Cloud Environments’) .

For the purposes of licensing Oracle programs in an Authorized Cloud Environment, customers are required to count each virtual core as equivalent to a physical core. This policy applies to all Oracle programs available on a processor metric.

When licensing Oracle programs with Standard Edition One or Standard Edition in the product name, the pricing is based on the size of the instance. Authorized Cloud Environment instances with 4 or fewer virtual cores are counted as 1 socket, which is considered equivalent to a processor license. For Authorized Cloud Environment instances with more than 4 virtual cores,
every 4 virtual cores used (rounded up to the closest multiple of 4) equate to a licensing requirement of 1 socket.

Bring-your-own-license or Pay-as-you-go?
So how can you license Oracle? You have the “bring your own license”-model or the “pay-as-you-go”-model. An important sidenote to consider, is that with the “pay-as-you-go”-models… The 3th party vendors (Oracle in this case) will be directly charged and will not be “fed” from your Azure credits. Why is this important… If you are running a trial account (or similar), than this may be an additional expense as the Oracle (or any other 3th party vendor for the matter) license will be charged directly to you.

Can I use my 30-day free trial credits to purchase Oracle software?
No, you can’t. If you want to use Oracle software during your trial, you need to turn off the default €0 spending limit feature and pay standard ‘Pay as you go’ rates. Otherwise you’ll hit your spending limit and your subscription will be immediately disabled.

Source : Virtual Machine Pricing Addendums

Oracle Virtual Machines in the Marketplace
A lot of virtual machine setups have already been prepared for you… Check the following article for more information : List of Oracle Virtual Machine Images

What are the considerations you should keep track off?

  • Clustering (RAC) is not supported : Azure does not currently support Oracle Database clustering. Only standalone Oracle Database instances are possible. This is because Azure currently does not support virtual disk-sharing in a read/write manner among multiple VM instances. UDP multicast is also not supported.
  • High Availability and Disaster Recovery Considerations : high availability and disaster recovery for Oracle Database Enterprise Edition (without RAC) on Azure can be achieved using Data Guard, Active Data Guard, or Oracle Golden Gate, with two databases in two separate Virtual Machines (VMs). Both Virtual Machines should be in the same cloud service and the same virtual network to ensure they can access each other over the private persistent IP address. Additionally, it is recommended to place the VMs in the same availability set to allow Azure to place them into separate fault domains and upgrade domains.
  • JDK 6 and 7 latest updates : While it is recommended to use the latest public supported version of Java (currently Java 8), Azure also makes JDK 6 and 7 images available. This is intended for legacy applications that are not yet ready to be upgraded to JDK 8. While updates to previous JDKs may no longer be available to the general public, given Microsoft’s partnership with Oracle, the JDK 6 and 7 images provided by Azure are intended to contain a more recent non-public update that is normally offered by Oracle to only a select group of Oracle’s supported customers. New versions of the JDK images will be made available over time with updated releases of JDK 6 and 7.
  • Weblogic T3 & Endpoints : WebLogic Server expects public and private ports to be the same for T3 access (for example, when using Enterprise JavaBeans). Consider a multi-tier scenario where a service layer (EJB) application is running on a WebLogic Server cluster consisting of two or more managed servers, in a cloud service named SLWLS. The client tier is in a different cloud service, running a simple Java program trying to call EJB in the service layer.
  • UDP multicast is not supported : Azure supports UDP unicasting, but neither multicasting nor broadcasting is supported. WebLogic Server is able to rely on Azure’s UDP unicast capabilities. For best results relying on UDP unicast, it is recommended that the WebLogic cluster size be kept static, or with no more than 10 managed servers included in the cluster.

Source : Miscellaneous Considerations for Oracle Virtual Machine Images

What about ASM? (or anything storage performance / management related)
As you probably already know, storage performance in Azure is dictated by the amount of disks your attach to your system…

Attached disks rely on the Azure Blob Storage service. Each disk is capable of a theoretical maximum of approximately 500 input/output operations per second (IOPS). The performance of attached disks may not be optimal initially, and IOPS performance may improve considerably after a “burn-in” period of approximately 60-90 minutes of continuous operation. If a disk subsequently remains idle, IOPS performance may diminish until another burn-in period of continuous operation. In short, the more active a disk, the more likely it is to approach optimal IOPS performance.

Although the simplest approach is to attach a single disk to the VM and put database files on that disk, this approach is also the most limiting in terms of performance. Instead, you can often improve the effective IOPS performance if you use multiple attached disks, spread database data across them, and then use Oracle Automatic Storage Management (ASM). See Oracle Automatic Storage Overview for more information. Although it is possible to use OS-level striping of multiple disks, that approach is discouraged because it is not known to improve IOPS performance.

So now you have the option to either use ASM, SS (Storage Spaces) or a combination of both… The previously mentioned article says the following ;

Consider two different approaches for attaching multiple disks based on whether you want to prioritize the performance of read operations or write operations for your database:

  • Oracle ASM on its own is likely to result in better write operation performance, but worse IOPS for read operations as compared to the approach using Windows Server 2012 storage pools. The following illustration logically depicts this arrangement.
  • Oracle ASM with Windows Server 2012 storage pools is likely to result in better read operation IOPS performance if your database primarily performs read operations, or if you value the performance of read operations over write operations. An image based on the Windows Server 2012 operating system is required. See Deploy Storage Spaces on a Stand-Alone Server for more information about storage pools. In this arrangement, two equal subsets of attached disks are first “striped” together as physical disks in two storage pool volumes, and then the volumes are added to an ASM disk group. The following illustration logically depicts this arrangement.

Where I can identify certain factors that could justify the above statements… I currently cannot explain the above statements in detail. Though, let’s currently accept these as best practices when designing our Oracle deployemnts. “Evaluate the tradeoff between write performance and read performance on a case-by-case basis. Your actual results when using these approaches may vary.”

Source : Miscellaneous Considerations for Oracle Virtual Machine Images

Azure ExpressRoute limits for large organizations & resellers… What are my boundaries?

The Theory
Let’s start off with some statements from the ExpressRoute FAQ

  • Can I have more than one ExpressRoute circuit in my subscription? Yes. You can have more than one ExpressRoute circuit in your subscription. The default limit on the number of dedicated circuits is set to 10. You can contact Microsoft Support to increase the limit if needed.
  • Can I have ExpressRoute circuits from different service providers? Yes. You can have ExpressRoute circuits with many service providers. Each ExpressRoute circuit will be associated with one service provider only.
  • Can I link to more than one virtual network to an ExpressRoute circuit? Yes. You can link up to 10 virtual networks to an ExpressRoute circuit.
  • I have multiple Azure subscriptions that contain virtual networks. Can I connect virtual networks that are in separate subscriptions to a single ExpressRoute circuit? Yes. You can authorize up to 10 other Azure subscriptions to use a single ExpressRoute circuit. This limit can be increased by enabling the ExpressRoute premium feature.
  • Can I have one virtual network connected to more than one ExpressRoute circuit? Yes. You can link a single virtual network with up to 4 ExpressRoute circuits. All ExpressRoute circuits must be in the same continent. They can be ordered through different service providers and in different locations.

And then we’ll check the Azure Limits page…

  • ExpressRoute dedicated circuits per subscription : 10 (default) & 25 (max)

The Summary

  • So per subscription, you can add up to 25 ExpressRoute circuits. These can be a mix of EXP or NSP connection and can be purchased from different telecom providers.
  • By default you can split up your ExpressRoute circuit between 10 VNETs (which can be located in different Subscriptions). It is possible to exceed that limit, where the maximum depends on your Azure port speed. A maximum of 100 VNETs can be configured when using a 10Gbit connection in EXP mode.

The Code

Grant a part of the circruit to “” (as “”)

New-AzureDedicatedCircuitLinkAuthorization -ServiceKey ‘6ed7e310-1a02-4261-915f-6ccfedc416f1’ -Description ‘SalesTeam’ -Limit 2 -MicrosoftIds ‘’

Link the newly granted circuit to your VNET (as

New-AzureDedicatedCircuitLink –servicekey (Get-AzureAuthorizedDedicatedCircuit).CircuitName –VnetName ‘SalesVNET1’

Source : Sharing an ExpressRoute circuit across multiple subscriptions