мαη ιѕ α ρяιѕσηєя σƒ нιѕ σωη ι∂єηтιту

Byte Order Mark (BOM)

Posted by btsbee on Tuesday
Posted in: Microsoft BizTalk Server. Tagged: Microsoft BizTalk Server. Leave a comment

Byte Order Mark in xml messages generated from BizTalk does not render them invalid, but sometimes the recipient of the message fails in processing these marking. Out of the box, BizTalk provides the assembler component which can be configured to remove this byte order mark via the “Preserve Byte Order Mark” property. If however you already have a custom pipeline component on the send side, instead of adding an additional xml assembler I would rather update this pipeline component itself to do the job for me via a few extra lines of code.

So for e.g. am writing a customer encoder to remove namespaces from the outgoing message. A couple of statements whilst serializing the message allows me to get rid of the byte order mark without having to drag an drop an extra component. Following is an Execute snippet:

public IBaseMessage Execute(IPipelineContext inMsgContext, IBaseMessage inMsg)
{
Stream sourceMsgStream = inMsg.BodyPart.GetOriginalDataStream();

if (null != sourceMsgStream)
{
//Remove namespaces
XDocument msgDocument = XDocument.Load(sourceMsgStream);
msgDocument.Descendants().Attributes().Where(x => x.IsNamespaceDeclaration).Remove();
foreach (XElement docElement in msgDocument.Descendants())
docElement.Name = docElement.Name.LocalName;

//Serialize to a stream and remove the byte order mark
Stream outMsgStream = new MemoryStream();
var settings = new XmlWriterSettings
{
Encoding = new UTF8Encoding(false),
Indent = true,
OmitXmlDeclaration = true
};
XmlWriter writer = XmlWriter.Create(outMsgStream, settings);
msgDocument.Save(writer);
writer.Flush();
if (outMsgStream.CanSeek)
outMsgStream.Position = 0;

inMsg.BodyPart.Data = outMsgStream;
return inMsg;
}
return null;
}

VeeN

SSIS with RabbitMQ

Posted by btsbee on Wednesday
Posted in: RabbitMQ, SSIS. Tagged: RabbitMQ, SSIS. Leave a comment

RabbitMQ recommends using Ken Ross’s SSISRabbitMQ custom component as a way to integrate SSIS with RabbitMQ. You can still use a .net script component as source to connect to a RabbitMQ queue and source your data; although it is always nice to have a component take care of all that for you.
However when I tried installing SSISRabbitMQ component on my SQL 2012 box, the custom RabbitMQ connection failed to show up in my connection manager type list. After a bit of digging around I finally managed to get it working. Follow the below steps if you are posed with a similar problem:

1) Gac SSISRabbitMQ.RabbitMQConnectionManager.dll
2) Copy SSISRabbitMQ.RabbitMQConnectionManager.dll to %Root%\Program Files\Microsoft SQL Server\110\DTS\Connections
3) If applicable, Copy SSISRabbitMQ.RabbitMQConnectionManager.dll to %Root%\Program Files (x86)\Microsoft SQL Server\110\DTS\Connections

4) Copy RabbitMQ.Client.dll to %Root%\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies”
5) Copy RabbitMQ.Client.dll to %Root%\Program Files\Microsoft SQL Server\110\DTS\Binn”
6) If applicable, Copy RabbitMQ.Client.dll to %Root%\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn

7) Navigate to %Root%\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE and take a backup of devenv.exe config file
8) Edit devenv.exe config file. Find the tag UseSmallInternalThreadStacks in the file. Paste the following under that tag:

<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.SqlServer.ManagedDTS” publicKeyToken=”89845dcd8080cc91″ culture=”neutral” />
<bindingRedirect oldVersion=”10.0.0.0″ newVersion=”11.0.0.0″/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.SqlServer.DTSRuntimeWrap” publicKeyToken=”89845dcd8080cc91″ culture=”neutral” />
<bindingRedirect oldVersion=”10.0.0.0″ newVersion=”11.0.0.0″/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.SqlServer.DTSPipelineWrap” publicKeyToken=”89845dcd8080cc91″ culture=”neutral” />
<bindingRedirect oldVersion=”10.0.0.0″ newVersion=”11.0.0.0″/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.SqlServer.PipelineHost” publicKeyToken=”89845dcd8080cc91″ culture=”neutral” />
<bindingRedirect oldVersion=”10.0.0.0″ newVersion=”11.0.0.0″/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns=”urn:schemas-microsoft-com:asm.v1″>
<dependentAssembly>
<assemblyIdentity name=”Microsoft.SqlServer.Dts.Design” publicKeyToken=”89845dcd8080cc91″ culture=”neutral” />
<bindingRedirect oldVersion=”10.0.0.0″ newVersion=”11.0.0.0″/>
</dependentAssembly>
</assemblyBinding>

9) Re-start SQL SSDT shell and you should find your RabbitMQ custom connection listed in the connection manager types.

VeeN

Agile Project Management with Scrum: Part III

Posted by btsbee on Wednesday
Posted in: Scrum. Tagged: Scrum. Leave a comment

AgileProjectManagementWithScrum

This is the last part in the multi-part scrum series. We highlight some of things to keep in mind before signing off.

• “Done” is an important term in Scrum. Everyone involved in the process must agree what it means when an item is marked as done. Does it mean that the item is developed and unit tested or does it mean the item has been developed, tested and documented. Ideally an item must be marked done once it has gone through all stages in making it a shippable functionality
• The Scrum team is a self-organizing team commiting to achieve a functionality increment via effective communcation and self management. However for this to work an optimal team size should be 7 give or take 2. If it gets any bigger than this, miscommunication increases and frustration grows.
• Scrum uses sashimi technique i.e. every slice (increment) of functionality should be complete. Requirements gathering and analysis, design work, coding, testing, and documentation that constitute a complete product are required to be completed and demonstrated in every sprint
• When more than one Scrum team works simultaneously on a project its called a scaled project and the mechanisms used to co-ordinate work of these teams are called scaling mechanisms. Apart from each team conducting Daily Scrums there is a Daily Scrum of Scrums in which representatives of the various teams meet to synchronize their work. These meetings follow the same format as a scrum meeting.
• Information in Scrum can be shared face-to-face via the Daily Scrum meeting (daily review), Sprint Review meeting (Monthly review). Information in Scrum can also be shared in a written form via the Product Backlog and four other static reports. First static report lists the Product Backlog at the start of the previous Sprint. Second lists the Product Backlog at the start of the new sprint. Third called the Changes report details differences between the Product Backlogs and their root cause. Fourth called the Burndown report plots the amount of work remaining on the vertical axis and the time scale on the horizontal axis. By joining the plots of completed sprints a line emerges called the trend line. By averaging the slope one can extrapolate the project completion date.

VeeN

Agile Project Management with Scrum: Part II

Posted by btsbee on Tuesday
Posted in: Scrum. Tagged: Scrum. Leave a comment

AgileProjectManagementWithScrum

Scrum defines a set of rules that everyone involved in the process understands and accepts. The Scrum process can be outlined as follows:

• ScrumMaster is responsible for making sure that everyone follows the rules of Scrum. Only a member of the team can express an ammendment to the rules and that too in the Sprint retrospective meeting (discussed later). Only the ScrumMaster can change the rule if he/she is a) convinced that the rule change is essential b) convinced that the team has enough Scrum knowledge to bring about the change.
• A project starts with the Product Owner expressing their vision in the form of an initial list of requirements called a Product Backlog. Product Backlog is essentially a list of functional and non-functional requirements.
• Work is done in iteration of sprints, each of which lasts 30 consecutive calendar days. Every sprint is planned is a Sprint Planning meeting. Note the Product owner prepares the product backlog before this meeting. In the absence of the Product Owner, the ScrumMaster stands in with an adequate list.
• The ScrumMaster, Prodcut Owner and the Team attend the Sprint Planning meeting. Other representatives can be invited for additional inputs but they leave the meeting as soon as their job is done. The entire meeting is time boxed to 8 hours divided into 2 parts of 4 hours each.
• In the first 4 hours the Product Owner puts forth the desired high priority items from the Product Backlog. The team can only make suggestions but only the Product Owner decides what consitutes a sprint. By the end of this first part, the team commits to the sprint.
• The next 4 hours are spent in planning the sprint. During this second part the Product Owner must be available to answer any questions. By the end of this second part the team comes up with a Sprint Backlog. Its a list of tasks, estimates against each of them and assigned to somebody in the team. Note that the 30 day period begins the moment the first half of the Sprint Planning meeting ends.
• Once the sprint begins the Product backlog is frozen until the end of the sprint. Meanwhile the Sprint backlog keeps getting updated as the sprint progresses. Note only the team can modify the Sprint Backlog.
• The team and the ScrumMaster hold Daily Scrum meetings which are also time boxed to 15 minutes. This meeting is held at the same place same time everyday preferably the first thing in the morning. All team members commit to attending this meeting. If they cannot be physically present they either dial-in or have another memeber present their updates. The ScrumMaster begins the meeting at the appointed time and the updates are given in a left to right i.e. counter-clockwise fashion. If any one is late for the meeting they pay a penalty to the ScrumMaster. Non-team members are not allowed to interfere in the meeting. Everyone answers three questions:
– What they have done since the last meeting
– What they plan to do till the next meeting
– Whether there are any impediment holding them up
• At the end of the sprint a Sprint Review meeting is organized by the ScrumMaster between the team and the product owner, any other stakeholder. The team should not spend more than 1 hour preparing for this meeting. The Sprint Review meeting is time-boxed to 4 hours wherein the functionality is presented by the team. The stakeholders provide feedback which is incorporated in the next sprint. At the end of this meeting the ScrumMaster announces the date and place of the next meeting.
• Before the next sprint planning meeting, the ScrumMaster holds a Sprint Retrospective meeting attended by the team and optionally by the Product owner. This meeting is time-boxed to 3 hours. The ScrumMaster encourages the team to review their development process by posing questions like like “What went wrong” “What can be improved”.
• In any of the meetings, the ScrumMaster is not to manage the team or to provide answers. Rather the ScrumMaster acts as a facilitator to enable the team to better their process.

VeeN

Agile Project Management with Scrum: Part I

Posted by btsbee on Thursday
Posted in: Scrum. Tagged: Scrum. Leave a comment

AgileProjectManagementWithScrum

Agile Project Management with Scrum by Ken Schwaber is an introductory book on Scrum. It lays down some solid scrum groundwork before moving onto some real life examples of it’s application. I would be doing a multi-part post to give an overview. Please note that these posts do not intend to re-produce the book contents.

• What are we dealing with?
Defined process control: When the underlying mechanisms by which a process operates are reasonably well known it is known as a defined process control. In such scenarios we lay-down a fixed process to produce acceptable quality outputs.
Empirical process control: When a process is too complicated for the above definitive approach, its appropriate to adopt an empirical process i.e. one based on observations, adaptations and experience driven decision-making.
• What makes a process complex?
– Ever so changing Requirements
– Technology and its challenges
– People, with different technical and soft skills
• What is this Empirical process?
Following three features characterize any empirical process:
– Visibility: Aspects of the process affecting the outcome must be visible to those controlling the process. Also       there must be a common agreement what those visible aspects mean.
– Inspection: Various aspects of the process are frequently inspected. One must appreciate the fact that each inspection may warrant a change in the process.
– Adaptation: Findings of the inspection must be adapted to alter and better the process.
• So what is Scrum?
Scrum is an iterative, incremental empirical process for handling complex projects. At the start of an iteration, the team reviews what it must do and the available technology and skills. It then selects a subset of items which it can turn into an increment of potentially shippable functionality. The team then sprints and at the end of the increment presents the functionality to the stakeholders. The stakeholders inspect and provide feedback for timely adaptations to the project process.
• Who are involved?
Scrum has only three roles:
– ScrumMaster: Responsible for coaching and advising the team in the implementation of scrum. ScrumMaster ensures that all scrum rules are followed within the organization’s cultural framework.
– Product Owner: Represents all stakeholders. They are the project business sponsors and work with the team to prioritize items maximising the business benefits.
– The Team: Responsible for developing the functionality. Its a self-managing, self-organizing cross-functional team responsible for realizing the product owners list of requirements.

VeeN

AppFabric and BizTalk

Posted by btsbee on Thursday
Posted in: Microsoft BizTalk Server. Tagged: Microsoft BizTalk Server. 2 Comments

“BizTalk is Dead and Out”, on overhearing such a statement I was intrigued to know who the slayer was when a new name surfaced “AppFabric”. The ensuing discussion was deadlocked but generated a curiosity in me as to what was the fuss all about. Reading through articles from the BizTalk Gurus I summarize the following:What is AppFabric?

Features BizTalk Server AppFabric
Server type * BizTalk is an application integration Server
* XLANG based workflow engine
* AppFabric is an extension to windows application server
* WF based workflow engine
Purpose Enterprise level integration mediating various transport and message formats across heterogeneous systems Extend IIS/ WAS providing advanced hosting capabilities for WCF (+WWF ) services
Architecture Messaging based system with support for services i.e. schema based system Services oriented system i.e. uses code contracts
Persistence * Supports Message Persistence and Instance Persistence with suspend/ resume functionality using SQL server * Supports Instance Persistence with suspend/ resume functionality using SQL   server or AppFabric in-memory caching services
* Use of SQL Server introduces higher latency but advantages of disk persistence * Use of in-memory AppFabric caching ensures low latency and improved throughput at the cost of risking disk persistence
Rules Engine * Business Rules Engine (BRE) providing support for dynamic complex business rules * Very little support via WF Rules for simple business rules
* Rules Composer provides a visual representation of the rules for Business Workers * No visibility to Business Workers as rules are modelled In C#
Adapters Multiple third party adapters available out of the box supporting heterogeneous system integration AppFabric Connect allows leveraging BTS adapters but does not have a out of box adapter collection
Publish/ Subscribe * Workflow engine along with the Message Box provides a publish-subscribe model which auto manages multiple concurrent workflow threads for processing messages * With the absence of a message box, AppFabric does not provide a publish-subscribe multi threaded model
* BizTalk host provides auto throttling ensuring load balancing * However there are WF constructs available for parallel execution which has   to be managed by the developer
Monitoring and Recoverability * BizTalk Admin Hub Page provides an overall view of the system health Dashboard provides a view to the overall health of services configured to utilize persistence and event collection
* Health Activity Tracking (HAT) can be used for viewing and resuming suspended resumable instances
Tracking, Archiving and Purging * Business Activity Monitoring (BAM) provides a rich set of tools for tracking message data and flow through the engine * Provides a set of tools which allows selection of a tracking profile to configure message logging and tracing features
* Dedicated tracking host for moving tracking data to BAM * Windows Powershell cmdlets are provided for purging and archiving tracking data from time to time
* SQL Server Agent jobs can be configured for purging and archiving tracking data from time to time
License Cost Yes, has to be bought independently from Microsoft No, Currently free and is already licensed with windows server 2008, Windows 7 and Windows Vista (SP2)

The simplest way of visualizing AppFabric is that it is an extension of Windows Application Server capabilities supporting the developer in implementing most of the non-functional requirements. Application development is not about just writing code but has certain associated quality of service parameters like scalability, availability, performance etc. In some cases the applications are also required to be transactional with a certain degree of administrative capabilities. Traditionally developers have spent substantial efforts in implementing even one of the above parameters whilst or post application development. What we really need is something out of the box addressing or supporting such QoS requirements on the existing infrastructure.

Look no further as AppFabric provides all of the above and more. And the best part is that it is available on the windows server platform installed on most of the development machines.
Windows Server AppFabric is an extension of IIS (Internet Information Services), WAS (Windows Process Activation Service) and .NET Framework 4.0 providing enhanced hosting, caching and service management facilities.

Does AppFabric replace BizTalk?
Finally I cut back to the discussion which actually triggered off my curiosity. Does Windows Server AppFabric replace BizTalk Server, Microsoft’s widely used application integration tool? Instead of trying to answer the question directly, we shall compare both the products on certain parameters and then try to draw a conclusion. Any form of working experience on BizTalk server would be beneficial in understanding the below table:However Windows Server AppFabric still has to reach the comprehensive collection of tools and features that BizTalk provides as an integration server. As highlighted in the above table, BizTalk still has a very unique publish/ subscribe model, strong rules engine, a mix of third party adapters to name a few which are missing in AppFabric and which makes BizTalk server a strong integration tool. All these features at an extra license cost obviously means that solution architects will consider AppFabric as an option before recommending any technology to the client which would fulfill their requirements.

To summarize AppFabric instead of replacing BizTalk server complements it well, each leveraging the features of the other. Future developments in each of the areas will try to bring both the products closer making it seamless and easier to use and configure. As put by the Microsoft pundits “Biztalk vNext will transition to be AppFabric based”.

VeeN

ESB Toolkit 2.1 installation on BizTalk Server 2010

Posted by btsbee on Thursday
Posted in: Microsoft BizTalk Server. Tagged: ESB, Microsoft BizTalk Server. Leave a comment

Pre-requisite for ESB 2.1
· Windows 2008 Server SP2 or Windows Server 2008 R2
· .NET framework 3.5 and 4
· IIS 7.0 with IIS 6.0 extensions
· SQL Server 2008 R2 or SQL Server 2008 SP1
· BizTalk Server 2010 with Bam component installed
· Visual Studio 2010
· Microsoft Chart Controls for .NET Framework  3.5 and 4 (Used by the ESB Portal)
· Microsoft Enterprise Library 4.1
Note: If your machine has Microsoft Enterprise Library 5.0 installed it would be advisable to un-install 5.0 and install Microsoft Enterprise Library 4.1 as ESB targets 4.1. If any existing applications, installed on the machine, are using Enterprise Library 5.0 ESB installation would break those applications.Details here.

1) Install Microsoft ESB Toolkit 2.1 by downloading the msi suitable for your platform. This will install the tools and samples.

2) Navigate to Start\All Programs\Microsoft BizTalk Server 2010 ESB Toolkit and click “Install Itinerary designer extension” to register the itinerary designer extension in Visual Studio 2010.

3) To verify whether the installation was successful, open Visual Studio 2010 IDE and check whether you see an option to create a new project of type BizTalk ESB Itinerary Designer

4-I) BizTalk ESB Toolkit 2.1 Core
Open BizTalk administration console and import “%Install folder%\Microsoft BizTalk ESB Toolkit 2.1\Microsoft.Practices.ESB.CORE64.msi” (Remember to check Overwrite resources checkbox). Check the checkbox “Run the Application Installation Wizard to install the application on the local computer” on the Finish screen to install the assemblies into GAC. If you get the below message there was a problem in installing the assemblies to GAC:

Error
You can manually GAC the assemblies i.e.
· Navigate to the folder where the installer extracted these assemblies. Default location is %Install folder%\Generated by BizTalk\Microsoft.Practices.ESB\%Unique Folder%
· This folder contains 54 CAB files. Usually when you get this message almost all assemblies would have been GACed. Find the difference between these CAB files and the GAC. Manually install missing assemblies.
4-II) Exception Management Framework
Next import %Install folder%\Microsoft.Practices.ESB.ExceptionHandling64.msi following the same steps as (4-I).
· If you get a similar message as (4-I) navigate to %Install folder%\Generated by BizTalk\Microsoft.Practices.ESB\%Unique Folder%.
· This folder contains 11 CAB files. Usually when you get this message almost all assemblies would have been GACed. Find the difference between these CAB files and the GAC. Manually install missing assemblies.
4-III) JMS/ WMQ Components (Optional)
Import %Install folder%\Microsoft.Practices.ESB.JMS.msi following the same steps as (4-I).
· If you get a similar message as (4-I) navigate to %Install folder%\Generated by BizTalk\Microsoft.Practices.JMS\%Unique Folder%.
· This folder contains 3 CAB files. Usually when you get this message almost all assemblies would have been GACed. Find the difference between these CAB files and the GAC. Manually install missing assemblies.
4-IV) Ensure that the follwoing pipeline component assemblies are saved into %Install folder%\Microsoft BizTalk Server 2010\Pipeline Components:
· Microsoft.Practices.ESB.PipelineComponents.dll
· Microsoft.Practices.ESB.Namespace.PipelineComponents.dll
· Microsoft.Practices.ESB.Itinerary.PipelineComponents.dll
· Microsoft.Practices.ESB.ExceptionHandling.PipelineComponents.dll
· Microsoft.Practices.ESB.JMS.PipelineComponents.dll (If JMS installed)
If any of these are missing they can be located in the CAB files generated in Step (4-I) to (4-III) at %Install folder%\Generated by BizTalk

5) Launch ESBConfigurationTool.exe from %Install folder%\Microsoft BizTalk ESB Toolkit 2.1\Bin\
ESBConfigurationTool works in a sequential fashion i.e. you configure Exception Management section first followed by ESB Core Components section and finally the Configuration. Also each of the section configuration has to be applied before you move onto the next step. Use the following steps:
· Expand ESB Configuration -> Exception Management -> Database
· Check Enable Exception Management Database, specify the Database server name and click Apply Configuration
· Select ESB Configuration -> Exception Management -> Exception Web Services
· Check Enable Exception Services
· Provide User name, password and click Apply Configuration
· Expand ESB Configuration -> ESB Core Components -> Itinerary Database
· Check Itinerary Database, specify the Database server name and click Apply Configuration
· Select ESB Configuration -> ESB Core Components -> Core Web Services
· Check Enable Core Services
· Provide User name, password and click Apply Configuration
· Under ESB Configuration -> Configuration you have an option between File or SSO store.
· Selecting File store will store all configuration in %Install folder%\Microsoft BizTalk ESB Toolkit       2.1\esb.config. Its best suited for single server environment
· Selecting SSO store will store all configuration in the SSO database. Its best suited for multi-server environment
· Ensure the correct option has been selected

6) Install ESB Management Portal
Navigate to %Install folder%\Microsoft BizTalk ESB Toolkit 2.1 and extract ESBSource.zip file. To install the management portal we have to get projects under ESBSource\Source\Samples\Management Portal to compile successfully.
· First step is to create a signing key which is missing from under ESBSource\Keys. Open Visual Studio command prompt and type in the following command
sn -k “%Install folder%\Microsoft BizTalk ESB Toolkit 2.1\ESBSource\Keys\Microsoft.Practices.ESB.snk”
· Next change the script execution policy as we are going to run some scripts to install the portal solution. Launch Windows PowerShell from Start -> All Programs -> Accessories -> Windows PowerShell and execute the following command:
set-executionpolicy unrestricted
You need to set the policy on the x86 version as well. So Launch Windows PowerShell (x86) from Start -> All Programs -> Accessories -> Windows PowerShell and execute the following command:
set-executionpolicy unrestricted
· The portal relies on WCF service script maps but IIS 7.0 does not have script maps for .svc files by default. Register the WCF service maps by executing the following command on a prompt:
%Root%\Windows\Microsoft.NET\Framework\v4.0\ServiceModelReg.exe -r –y
· Before installing the portal via the scripts you can optionally ensure that each of these solutions are in compilable state:
%Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\ESBSource\Source\Samples\Management Portal\ESB.Portal\ESB.Portal.sln
%Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\ESBSource\Source\Samples\Management Portal\ESB.AlertService\ESB.AlertService.sln
%Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\ESBSource\Source\Samples\Management Portal\ESB.UDDI.PublisherService\ESB.UDDI.PublisherService.sln
If there are any compilation errors fix them before you proceed.
· Open a command prompt and execute %Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\ESBSource\Source\Samples\Management Portal\Install\Scripts\Management_Install.cmd. This will install the portal and setup the other necessary components.
· Open IIS and check if ESB.Portal has been installed. Verify a few things:
– Virtual directory pointing to %Install Folder%\Microsoft BizTalk ESB Toolkit       2.1\ESBSource\Source\Samples\Management Portal\ESB.Portal
– Under Authentication, Windows Authentication is Enabled
– Browse the portal

· Cleanup
Restore the script execution policy to restricted i.e.
Launch Windows PowerShell from Start -> All Programs -> Accessories -> Windows PowerShell and execute
set-executionpolicy restricted
Launch Windows PowerShell (x86) from Start -> All Programs -> Accessories -> Windows PowerShell and execute
set-executionpolicy restricted

7) Install BAM definitions
Open a command prompt and navigate to “%Install Folder%\Microsoft BizTalk Server 2010\Tracking”. Run the following commands to deploy the bam tables:
· bm.exe deploy-all -DefinitionFile:”%Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\Bam\Microsoft.BizTalk.ESB.BAM.Itinerary.xml”
· bm.exe deploy-all -DefinitionFile:”%Install Folder%\Microsoft BizTalk ESB Toolkit 2.1\Bam\Microsoft.BizTalk.ESB.BAM.Exceptions.xml”

If you get any error in installation check whether the BAM Star Schema and the SQL Analysis services are installed. If not you would have to set them up first. If everything is installed check if the analysis service is up and running.

Other Errors
· On opening the ESB Management portal if you get an error message pointing to the event viewer and the event viewer message says “assembly Microsoft.Practices.ESB.Portal.Global not found”, this means that the ESB portal solution build has been un-successful i.e. Step (6) has to be re-visited
· On opening the ESB Management portal you get an error message pointing to the event viewer and the event viewer message says “could not load type System.ServiceModel.Activation.HttpModule”, this means that because of the order of the software installation on your machine i.e. IIS installed after .Net framework the .net version has not been registered with IIS.
To fix this problem;
Open a command prompt, navigate to “%Root%\Windows\Microsoft.NET\Framework\v4.0.30319 (or the version installed on your machine)” and run the following command
aspnet_regiis.exe –iru
· If there are still any problems with the installation try the following links

ESB Toolkit Management Portal Installation Notes (From the field)


http://msdn.microsoft.com/en-us/library/ee236738(BTS.10).aspx
Re-visit the installation notes shipped alongwith the ESB Toolkit installer.

VeeN

Outlook Macro: Move read messages from inbox to folders

Posted by btsbee on Thursday
Posted in: Miscellaneous. Tagged: Outlook. Leave a comment

Being handed over a blackberry from my employer recently to monitor support e-mails, what I found out was that any e-mails that were picked by my rules and routed to some folders did not show up in my BB inbox. There are some settings that you can use on the handheld or the BB desktop manager to start syncing those folders as well. However since the BB was admin owned by my employer I could do neither of them.
So the plan was to disable these rules, let all mails get routed to my inbox and then have rules to route them to folders once I have read the rules or at-least it shows on BB. Unfortunately MS Outlook does not support rules which would run once you have read e-mails. They only get evaluated against mails coming from the exchange server. So I need an outlook macro script which would kick in every say 30 mins and move all messages from my inbox meeting the rules criteria to specific folders. After spending a few unsuccessful hours on the web trying to land an out-of-the box script I decided to write my own. It turned out to be easy, fun and educating. As a do-gooder I would like to share the macro script with you to save you a few hours…

Put the following script in “ThisOutlookSession” of your macro:

Private Sub Application_Startup()
Call Timers.ActivateTimer(30) ‘This sets timer to 30 mins, It can be set to any value
End Sub

Private Sub Application_Quit()
If TimerID 0 Then Call Timers.DeactivateTimer ‘Please do not exclude this step, this will kill the timer we created
End Sub

Put the following script in the module of your macro:

Option Explicit
Declare PtrSafe Function SetTimer Lib “user32” (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerfunc As LongLong) As Long
Declare PtrSafe Function KillTimer Lib “user32” (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private TimerID As Long ‘Timer object

Public Sub ArchiveIt()
Dim ns As Outlook.NameSpace
Set ns = Application.GetNamespace(“MAPI”)
‘Open inbox folder
Dim folder As Outlook.folder
Set folder = ns.GetDefaultFolder(olFolderInbox)
Dim destinationFolder As Outlook.folder

‘Move all mails from xyz@abc.com to Inbox/Production Support/xyz
Set destinationFolder = folder.Folders(“Production Support”).Folders(“xyz”)
MoveMailsByFilter destinationFolder, folder, “[SenderEmailAddress] = ‘xyz@abc.com'”
End Sub

Private Sub MoveMailsByFilter(ByVal destinationFolderHandle As Outlook.folder, ByVal inboxFolderHandle As Outlook.folder, ByVal filterText As String)
Dim filteredList As Outlook.Items
Set filteredList = inboxFolderHandle.Items.Restrict(filterText)
For i = filteredList.Count To 1 Step -1
filteredList.Item(i).Move destinationFolderHandle
Next i
End Sub

Public Sub ActivateTimer(ByVal nMinutes As Long)
nMinutes = nMinutes * 1000 * 60 ‘Convert time to milliseconds.
If TimerID 0 Then Call DeactivateTimer ‘Remove any existing timers.
TimerID = SetTimer(0, 0, nMinutes, AddressOf TriggerTimer)
If TimerID = 0 Then
MsgBox “Distributor failed. Contact administrator”
End If
End Sub

Public Sub DeactivateTimer()
Dim lSuccess As Long
lSuccess = KillTimer(0, TimerID)
End Sub

Private Sub TriggerTimer(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idevent As Long, ByVal Systime As Long)
Distributor.ArchiveIt
End Sub

You can play around with the different properties exposed on filteredList.Item like filteredList.Item(i).Unread = false (to pick only read messages) to fine tune your archiving criteria.

VeeN

Ofgem’s Whip

Posted by btsbee on Thursday
Posted in: Energy and Utilities. Tagged: Energy and Utilities. Leave a comment

Monday morning brought the big news of Ofgem tightening the leash on the “Big Six” of the UK energy market. Their message was simple “Utilities charge more via complex bills”. Regulators are pro-consumer where they do not want the utility to transfer the costs immediately to the consumer and want them to transfer the benefits/ profits immediately. Of late what they have observed is exactly the opposite. A startling rise of 38% in the per consumer profit margin in a matter of two months does indicate a lot about transferring the costs. So what is Ofgem going to do about it? Simple, simplify the bills to educate the consumer which does not mean immediate savings but savings via smart consumer choices. They are also looking at ending the dominance of the Big Six by mandating them to sell off 20% of their energy generation to allow newer entrants in the market. So yeah a very short leash indeed!

Check out http://www.bbc.co.uk/news/business-12802591 for more information on Ofgem’s initiative.

VeeN

Customer Service – Essence

Posted by btsbee on Thursday
Posted in: Energy and Utilities. Tagged: Customer Service. Leave a comment

Today I got a first-hand experience of why, still, there is a vast scope for customer services improvement in the product industry. Having been working on a customer service application for a while, you really get to appreciate the business requirements when you actually talk to one of the CSRs using a similar application. I had to place 6 calls to a product company just to book an installation to my site.

Based on the conversations that I had with the CSRs they seemed to be not having a single view of the complete business process and hence very feeding me the information in bits and pieces. What really hit me then was a business requirement for our application which was “one view/ global view” to the clients entire business end-to-end. This prevents an important customer service performance parameter of “customer call-backs”.

The other thing that struck me was the long time they took in order to book a field visit from a third party vendor to my site which required them to log onto the vendors system with my details. This got me appreciate the business requirement of enterprise interfacing with single sign on. It makes life so much easier, quicker and improves another important customer service performance parameter of “reducing call durations”.

Finally when I got off the phone I looked at my watch in horror to see the amount of time I spent just in-order to get an innocent field visit to my site and swore never to deal with these fellas ever. In my misery I could appreciate one other business driver in CS applications i.e. of being “customer friendly”, treating them as family and not leave a bad after taste.

VeeN

Posts navigation

← Older Entries
  • caтegorιeѕ

    • .Net
    • Energy and Utilities
    • Microsoft BizTalk Server
    • Miscellaneous
    • RabbitMQ
    • Scrum
    • SSIS
    • Windows Service Bus
  • ѕтaтѕ

    • 15,496 visits
Create a free website or blog at WordPress.com.
Create a free website or blog at WordPress.com.
Privacy & Cookies: This site uses cookies. By continuing to use this website, you agree to their use.
To find out more, including how to control cookies, see here: Cookie Policy
  • Subscribe Subscribed
    • btsbee.wordpress.com
    • Already have a WordPress.com account? Log in now.
    • btsbee.wordpress.com
    • Subscribe Subscribed
    • Sign up
    • Log in
    • Report this content
    • View site in Reader
    • Manage subscriptions
    • Collapse this bar
Loading Comments...
Design a site like this with WordPress.com
Get started