by community-syndication | May 11, 2009 | BizTalk Community Blogs via Syndication
Siebel adapter uses the COM interface to invoke calls on Siebel. For business component query, Siebel supports two ways of retrieving the field values for records. One can either use GetFieldValue to retrieve one field at a time or the other option is to use GetMultipleFieldValues to retrieve values for a bunch of fields in one go. The latter is better from a performance standpoint and is what the adapter uses. The problem with this approach though is that even if one of the fields, whose values are being retrieved, is mis-configured, the entire query call fails.
In development environments, it can happen that some of the customizations have issues, resulting in query failure as described above. The first step towards diagnosing the problem is identification of those problematic fields. The error message doesn’t always help identify the fields. When in such situation, one can use the attached Siebel COM sample code to narrow down the fields. You will need to add a reference to sstchca.dll (present in the Siebel install folder, in the bin sub-directory).
Once you have narrowed down the fields, you can either fix the issue with the field or if it’s not of interest, mark them as inactive on Siebel backend. You can then query using the Siebel adapter without any issues. Alternately, you can also use the QueryFields (optional) argument passed to the query operation to retrieve only the fields of interest.
by community-syndication | May 10, 2009 | BizTalk Community Blogs via Syndication
Thanks to my colleague Ron Dunn for bringing this MSDN article to my attention:
http://msdn.microsoft.com/en-us/library/dd263442.aspx
**Snippit**
The Microsoft.com Engineering Operations (MSCOM Ops) team is continuously searching for ways to improve the performance of its Web sites, which include Microsoft.com, the Web site for the MSDN%u00ae developer program, and TechNet. These Web sites are complex, distributed applications with Microsoft%u00ae SQL Server%u00ae database platforms that attract an enormous amount of traffic from users around the world. Site performance and user experience are two of the principal metrics that the team uses to evaluate its own success.
In late summer of 2008, MSCOM Ops initiated extensive replication performance testing, comparing SQL Server 2005 running on Windows Server%u00ae 2003 with SQL Server 2008 running on Windows Server 2008. By using both operating environments to replicate data between a server located in Tukwila, Washington, and another located in Blueridge, Virginia-a distance of approximately 3,000 miles-the team discovered that SQL Server 2008 running on Windows Server 2008 yielded up to 100 times faster performance without requiring any expensive wide area network (WAN) acceleration hardware.
Encouraged by these impressive results, the team decided to test replication of “live” content from its MSDN database in Redmond, Washington, to a remote data center in Dublin, Ireland. The performance enhancements in SQL Server 2008 running on Windows Server 2008 enabled the team to successfully replicate this content and demonstrate that WAN-based geo-replication is feasible in a real-world scenario. Further, the MSCOM Ops team used this capability to cut page-to-load times on its MSDN Web site by approximately 33 percent, resulting in a dramatic user experience improvement in Europe.
Now, in addition to providing an improved Web experience to people around the world, MSCOM Ops benefits from enhanced business continuity. And, with solid evidence of the feasibility of WAN-based geo-replication, MSCOM Ops plans to expand its implementation of this solution.
This white paper details the business challenges that prompted the MSCOM Ops team to explore WAN-based geo-replication, describes the testing the team performed, documents the test results, and conveys insights and conclusions based on these results.
by community-syndication | May 10, 2009 | BizTalk Community Blogs via Syndication
- university lectures computer science
by community-syndication | May 10, 2009 | BizTalk Community Blogs via Syndication
Given that a lot of our customers here in VIC have experience around Oracle, this might be some interesting training?
This 15 modules, level 300 course provides students with the knowledge and skills to capitalize on their skills and experience as an Oracle DBA to manage a Microsoft SQL Server 2008 system. This workshop provides a quick start for the Oracle DBA to map, compare, and contrast the realm of Oracle database management to SQL Server database management.
http://msdn.microsoft.com/en-us/dd548020.aspx
by community-syndication | May 10, 2009 | BizTalk Community Blogs via Syndication
Christian Weyer has been writing a very interesting series of posts on some of the new features of WCF 4. There is still a long way to go for the release, so as with all products / technology stacks, it is wise to anticipate change. However, there is some really good stuff here and if […]
by community-syndication | May 9, 2009 | BizTalk Community Blogs via Syndication
[Source: http://geekswithblogs.net/EltonStoneman]
This was the title I settled on forthe interactive session at Microsoft’s Architect Insight Conference yesterday. We had a good turnout and some interesting discussions – thanks again to everyone who came along. The purpose of the session was to think about ESBs in terms of the value they provide to IT and to the business. The slide decks will be published on the AIC site, and this post adds some of the discussion points. Broadly we covered three topics: sources of value, components of an ESB architecture, and approaches to implementing ESBs. (The budget figures below are only illustrations…)
Sources of Value
Some of the key areas where value might be expected – in terms of ROI for the SOA/ESB approach, and more broadly in terms of IT being viewed as providing value to the business. The priorities will differ between organisations:
1. Project Efficiency
- Reduced design, build, and test effort
An SOA goal to encapsulate logic within systems, prevent duplication and see the benefits of reuse. Provided the right governance and communication are in place, you should see value from projects being delivered more quickly, but possibly not at a level which will pay for the ESB (if the annual project spend is %u00a35m, you need substantial reductions in effort for a %u00a31m ESB project to pay for itself)
2. Operational Efficiency
- Knowledge of system landscape and service cost
- Rationalisation to reduce operating costs
Expected gains from streamlining operations may be higher than project gains (if the annual operational spend is %u00a330m, you only need 0.5% gain to pay for a %u00a31m ESB in a year). Large organisations with a disparate system estate will benefit from the centralized integration of an ESB, which can provide metrics around service usage – frequency of calls, time taken to respond etc. This enables informed decision making on rationalisation – virtualizing systems which are infrequently used, decommissioning unused systems, clarifying to the business how much a system actually costs.
3. Flexibility
- Increased options for new technologies
- Faster, higher-quality response to business change
Using simplified, standards-based communication makes interoperability an integral feature of the architecture. Commissioning new systems based on whether they can consume and publish ESB services may remove the need for customization, and make more systems available for consideration. The ESB also enables a strategic move to building bespoke systems using a composite application model for rapid development.
4. Cultural Change
- Promotion of strategic thinking
- Improvement of business-IT relations
Less quantifiable than other areas, but equally important. The move to strategic rather than tactical point decisions should provide consistent good design through new projects and ensure you’re not building up a new legacy of complex and fractured systems. Improved flexibility and quality should increase trust in IT, and prevent key business functionality being supported by rogue Excel and Access applications which are constructed outside of IT.
ESB Architecture
Common components of an ESB architecture. These can be evaluated in the light of the potential value they provide – which source of value can you trace a component back to, and will it provide enough value to consider it as a requirement:
-
Itinerary-based services
-
Service catalogue
- Contracts, descriptions, SLAs, management
-
NFRs: reliability, scalability, performance
- Potential compromise between latency and reliability
-
Development toolset – publish & consume
-
Service cache
- Caching responses in the bus as a performance measure
-
Security
- Authentication, authorization, identity management
-
Metrics/BAM – service usage & performance
- Helps define system landscape and service cost
- Centralised management – operations, errors, alerts
- Standardisation/Interoperability – WSDL, XML/SOAP, WS-*
- Governance & communication
Identifying the required components drives the technical selection of the ESB. We talked through a few different implementations, all of which were suitable in different situations:
Approaches
Full ESB delivered as independent project, with no active services or consumers
Skeleton ESB delivered alongside tactical project, with few active services and consumers
Project scoped to deliver full ESB with logical subset of active services and consumers
One of the difficulties in adopting an ESB strategy is defining exactly what you will need the ESB to do. Messaging load, security and operational requirements may be best-guesses until the ESB is in place and active. Implementing a standalone ESB in a project is dangerous as the best guesses may not be accurate. Delivering an ESB alongside a tactical project which publishes and consumes services has the advantage of ensuring the ESB has all key functionality, but may result in an under-specified bus which needs enhancing as it becomes more widely used. If you have the option of pragmatically implementing the ESB – take the best-guess requirements and a core subset of existing integrations, and deliver the ESB and migrated integrations as one project – you’re more likely to establish a bus which provides exactly what you need.
Takeaway from the session – an ESB will only provide value if it’s actually used. It needs to be easy to find, publish and consume services, and routing messages through the ESB shouldn’t significantly impact performance.
by community-syndication | May 8, 2009 | BizTalk Community Blogs via Syndication
At MIX we unveiled the Web Platform Installer (PI) 2.0 Beta. The WebPI combined with the work we have done on the Web App Gallery is a significant step forward in helping customers build and deploy Web applications and sites. For developers, this means they can easily build and promote their free applications to millions of customers worldwide. I spent some time with Michael Cote of Redmonk talking about our Web Platform in this video which also includes a smart observation from Michael on components of this platform evolving into runtimes, where customers can choose .NET-based or non-Microsoft languages to construct versatile, interoperable solutions. I thought that was a really interesting way to look at it.
For those who haven’t had a chance to look at it, check this out. To date, we have had over 200,000 downloads of WebPI with over 1 million Express Product Installs, which is a real testament to the value that customers are finding in having a one stop shop to get Microsoft’s full Web Platform stack. As always, tell us what you think…
by community-syndication | May 8, 2009 | BizTalk Community Blogs via Syndication
Well after a few hardware failures at work and many hours rebuilding servers that
are *supposed* to have RAID 5 on them, I’m back online.
(They had RAID enabled at the BIOS level, and there’s a BIOS boot based tool that
let’s you create/delete stripes etc. BUT you need to use the ’Windows’ version of
their tool to ’REPAIR’ the volume. Now if you can’t boot to an O/S.here in lies my
problem I want to plug the new drive in and ’boom’ rebuild done but no!)
I wanted to share a tip which came out of all of this – Creating a Windows
7 Boot WinPE USB Key.
You know the 20 odd things you have lying around and are wondering what you could
do with 1GB, 512MB etc keys.
You can make a boot disk out of themcool (provided your machine supports booting
from USB, unlike my mac_mini at home running Windows 7 🙂
You could make an x86 boot and on another create a x64 AND you can still store your
data.
It’s not too tough really – couple of things you need upfront
-
USB Key, drive or whatever
-
Windows
Application Installation Kit for Windows 7 RC (WAIK) – free download with the
WinPE ’image’ in it and all the tools (a WIM file)
-
Some of your favourite recovery tools to add to your usb key
Ok good to go.
Let’s start
-
Install the WAIK on your local machine – it installs folders for x86, amd64 and i64cool
-
From the Start Menu->All Programs->Microsoft Windows AIK->Deployment Tools
Command Prompt
-
Execute the command copype x86 c:\PEBuild (replace x86 for amd64 if
you want 64bit. This will create the directory c:\PEBuild and copy the required files
to get started.
-
You’ll notice now that you should be in the C:\PEBuild folder – this
is our ’working space’ and there will be a couple of sub-directories here.
-
Let’s mount the Image so we can manipulate files, and then later
save them back into the Image for deployment, as follows:
-
run the command imagex /mountrw
winpe.wim 1 mount (this will mount the vanilla winpe.wim and create a ’mount’ directory
for us to use)
- this didn’t work for me on 2 machines that I tried as follows (I was pretty happy)
if this works for you - then great, it’s meant to. :-) (there maybe open files etc)
Fortunately I had a PLAN B that works regardless (alot of the documentation
use ImageX)
Issue the command from the C:\PEBuild dir:
dism
/mount-wim /wimfile:winpe.wim /index:1 /mountdir:c:\PEBuild\Mount

-
Go to the Mount Directory to see several folders – if you used my
PlanB approach you can store the files in Program files if you like, or wherever.
If you need access to the Startup folder it’s hidden in the same
dir as Program Files.
Copy your Win32/64 tools and utilities here to the mount dir (once fully booted up
with WinPE, you will be in a RamDisk with the drive letter of X: – good idea to always
use environment vars to get special folders if you need to)
You can add other support like scripting, powershell etc – check out the packages
-
Once done – commit the changes to the WinPE.wim with the command
-
ImageX Cmd: imagex /unmount /commit /c:\pebuild\mount
-
dism Cmd: dism /unmount-wim /moundir:c:\pebuild\mount /commit
-
Almost done 🙂
-
Copy the now *modified* WinPe.Wim image file to the correct directory (and we rename)
so it runs smoothly in the boot sequence. Run copy /y winpe.wim iso/sources/boot.wim
-
(optional step) To create an ISO of your work, issue the following command:
ocsdimg -n -b”c:\Program Files\Windows AIK\Tools\x86\boot\etfsboot.com” c:\PEBuild\ISO
c:\PEBuild\WinPE.iso
-
Next let’s add our good work to our USB key and we’re done (WE WILL ERASE YOUR KEY
– back it up if needed. you can copy your stuff back on when we’ve finished)
-
Plug your USB key in and we’re going to ntfs format it, create an active primary partition
and assign a drive letter to it.
-
From your command prompt use diskpart as follows:
-
c:\PEBuild\diskpart
-
list disk (you should see your USB drive come up in the list – this
is the drive # to work with e.g. 1)
-
sel disk 1 (double check from the previous command on what disk number
your USB is on – mine is 1)
-
clean
-
create part primary
-
sel part 1
-
format fs=NTFS QUICK
-
assign
-
exit
-
viola! your usb is now prepared.
>
-
We need to do 2 final steps – copy everything within the ISO directory
straight to your USB key. e.g. c:\PEBuild\ISO (from Explorer you’ll
be able to get to your USB Key easily through the SendTo right mouse menu)
Take note of your USB Key’s DRIVE letter
-
Write the ’bootsector’ as follows:
-
c:\program files\Windows AIK\Tools\PETools\x86\bootsect /nt60 <drive
letter of your USB Key>
>
>
Hopefully I’ve saved you some time and pain.. happy booting.
by community-syndication | May 7, 2009 | BizTalk Community Blogs via Syndication
Whew! I’ve finally managed to get the first beta release of MockingBird out the door, almost 3 months after the alpha. The past 3 months have gone by in a blur with my first major project in MCS and the associated tight deadlines and long hours. Technically its been a good learning experience, but it […]
by community-syndication | May 7, 2009 | BizTalk Community Blogs via Syndication
As I mentioned in my post last week covering the changes in WF 4 since the CTP release, I promised that I would cover the WCF changes this week. As I sit down to write this post, this will have a different feel from the prior post – where the last post dealt with telling the story of why changes were made, I apologize in advance if this one reads more like a release notes document. That being said, let’s dive in to the changes
In the upcoming Beta 1 release of .NET 4, Windows Communication Foundation (WCF) is receiving a series of enhancements aimed at expanding its usefulness and capabilities for connecting applications together using the .NET Framework. In this post, I would like to attempt to give you a quick tour of these improvements, to help guide you through items of interest as you think about evaluating the upcoming beta of Visual Studio 2010.
Workflow Services
I’m going to start with Workflow because it is a topic that is close to my heart, and WCF Workflow Services is a primary focus for WCF 4 improvements: to provide hosting and messaging capabilities to workflow-enabled services. In Beta 1, the team has worked with the Windows Workflow Foundation (WF) team to provide new messaging activities, made adding service references easier, and added a new workflow service host to make hosting a WCF workflow service even easier in .NET 4.
- New messaging activities: With Beta 1, several messaging activities are being added to WF 4 that makes use of WCF underneath to receive and send messages. Messaging activities features include:
- A Serialization programming model for messaging activities has been added to support both typed and untyped content for WCF code services
- Contract settings have been moved to individual messaging activities to simplify the service modeling of complex messaging activities. In these cases, the WSDL is inferred from the contract settings on the individual messaging activities.
- Transactions support for messaging activities that allow you to now flow transactions into workflows.
- Correlation in WF now supports long-running conversations using protocol-based and content-based correlation. This allows you to route messages to workflow instances based on either content or protocol parameters, allowing for correlation of messages from multiple clients.
- Durable Duplex: Beta 1 provides first-class support for long-running, two-way conversations between workflow services using the enhancements in correlation.
- Add Service Reference in WF: Add Service Reference has been augmented to support generating typed client-side activities based on the WSDL, which makes it easier to create workflows that consume other services.
- Declarative Service Authoring: To enable XAML authoring of workflows that send and receive messages, we support representing WCF constructs in XAML. In particular one can author a WCF workflow Service in XAML.
- Workflow Service Host (a subclass of WCF ServiceHostBase) provides WF programs with support for
- Adds the WCF plumbing for messaging activities
- Integrated configuration
- Activation of workflows authored in XAML as well code. For workflow programs and workflow services authored in XAML, we introduced a .xamlx extension together with a corresponding registered IIS handler
- Instance management via a system provided control endpoint, so you can start, pause and resume
- Durable delay to allow you to put your workflows to sleep and resume later
For those who read my post last week covering the WF 4 changes, these changes plug into the changes to the out of the box activities, and this continues a story that demonstrates the complementary story of using services and processes together. The integration of WCF and WF started with .NET 3.5, as the teams started implementing extensions within each technology to take advantage of the two technologies together, and this story will get even better as the Windows application server technology extensions (codenamed ’Dublin’) are released, which makes it even easier to host workflow services within Windows Process Activation Service (WAS) and IIS 7. As has been covered in PDC in October and will be discussed at TechEd next week, ’Dublin’ provides a pre-built host environment that includes a database for workflow persistence and monitoring, along with management tooling built upon IIS Manager and PowerShell to allow you to manage and control WCF and WF instances.
Config Simplification
WCF Configuration simplification also receives a good number of enhancements in .NET 4 to address a common concern around getting started with WCF. This was most acutely felt by developers coming over from the ASP.NET world, where they are used to working with ASMX services.
To help reduce the complexities that .NET developers currently experience while getting simple services set up, the team has made the following investments in Beta 1:
- <service> tags not required: An explicit <service> tag is no longer required to configure a service. As a result, many deployments won’t need a “per service” configuration; instead, the service will infer a default configuration, allowing you to deploy a .svc file onto your IIS instance without the need of creating or configuring a web.config file in order for the service to be callable. This behavior should be quite analogous to the creation and deployment of ASMX files in ASP.NET.
- Default bindings and behaviors: In Beta 1, you can add behaviors to a config file without using a behavior name. Within the context of that config file, those behaviors become the default behavior, and they will be used for endpoints that don’t specify a behavior.
- Standard endpoints: With Beta 1, the team is providing reusable system-provided endpoint configurations to facilitate scenarios where similarly configured endpoints are used across many services.
- Support for .svc-less activation: When applications have many services to them, it results in an application that has a single folder with a large number of .svc files, where each .svc file is a one-line file to represent each service. The result is often a challenge in file management. As an alternative to having these .svc one-line files, WCF 4 enables you to list all of your services in a single web.config.
If we think about at deploying one or more WCF services into an activated environment (i.e., Internet Information Server (IIS) or Windows Process Activation Service (WAS)), this allows for the ability to deploy services into an environment without having to do explicit configuration. By default, WCF in .NET 4 will make assumptions for a web environment; but WCF 4 allows for these defaults to be specified at standard configuration levels available to the .NET programmer using the standard configuration options (i.e., app.config, web.config, machine.config, etc). This should make it easier for WCF services to be managed and moved between environments as the service progresses from development to production.
Messaging Improvements
WCF Beta 1 also introduces a series of messaging improvements that improve the discoverability, performance, and scalability of systems that build upon WCF.
- Service Discovery: Beta 1 adds service discovery using WS-Discovery
- Ad-hoc discovery: Services are able to publish their own services on a local subnet using a UDP multi-cast channel that is specific to the discovery feature
- Proxy-managed discovery: WCF also allows for the use of a WS-Discovery proxy to use discovery over a larger network or to reduce UDP multi-cast traffic
- Interoperable with Windows Vista’s WS-Discovery support
- Router Service: With Beta 1, WCF now includes a configurable WCF-based router service that supports content-based routing and protocol bridging.
- The new content based routing capability allows for WCF to perform message filtering based on content contained in either the SOAP headers or within the message body (using a specified XPATH). Protocol bridging in WCF 4 enables the creation of bridge system bindings; for example, you may have a WCF service that uses WS-* SOAP endpoint to communicate with business partners outside the firewall and with non-.NET systems, but to use NetNamedPipes or TCP inside the firewall to communication with your other .NET services.
- Error handling routing is implemented to allow increased flexibility. With Beta 1, WCF 4 allows for the definition of alternative send destinations. If the routing service encounters a CommunicationException or Timeout while routing your message, it will automatically resend the message to the next destination endpoint your configured.
- Support Queues with competing consumers: In .NET 3.5, it is difficult to implement long-running processes that worked with queues without having to make extensive use of the “poison queue” – particularly when a developer wanted to have multiple processes/machines working a single queue.
As an example, imagine a system that uses queues with WCF Workflow Services. In this example, WCF needs to be able to peek into the queue and lock the message so that it can try to dispatch it to a corresponding WF instance for work. If it is not yet possible to process the message (due to the WF instance already being locked), WCF needs to put the message back into the queue – which is problematic in .NET 3.5. In .NET 4 Beta 1, WCF 4 adds support for a “peek / lock” mechanism to the WCF MSMQ channel that now allows WCF to solve this issue.
- BLOB encoder: Beta 1 provides an encoder that is optimized for sending opaque binary content as a message. In this implementation, it’s simply a write-through wrapping encoder that takes what you give it and pushes it across the wire. While it may not be as full-featured as many might want, this was something that we needed for our internal needs, and we’re exposing it for others to use if they find it useful.
In addition to the above, the team made Serialization improvements in Beta 1 that adds extensibility around dynamic “known types” resolution to improve serialization in WCF on the wire. In .NET 3.5, the DataContractSerializer class requires developers to explicitly specify a white list of “known types” that can occur in the object graph. With .NET 4 Beta 1, the team adds a new DataContractResolver class that allows the .NET developer to override this “white list” constraint by overriding what type name gets serialized and what type gets deserialized. While a lower-level and more complicated feature, it’s functionality that has been long-promised for those wanting increased control over how data is serialized and deserialized. Examples of scenarios that can be accomplished using the new feature: removing the “known types” constraint for tightly coupled scenarios; making entire assembly “known” to serializer; etc
REST Improvements
We also continue to augment WCF REST support with features that have already been made available as part of the WCF REST Starter Kit preview releases. For the Beta 1 release, the team has added a couple of the Starter Kit features into WCF 4: (a) the capability for WCF REST services to make use of the ASP.NET caching infrastructure; and (b) automatically generated help pages that allow WCF REST services describe themselves through an automatically generated help web page – detailing which URLs to call, schemas, and examples of the request and response messages (both XML and JSON).
Tracing and Diagnostics
Last but not least, tracing and diagnostics in WCF 4 reduces the noise and the performance overhead of tracing WCF events by making use of Event Tracing for Windows (ETW) and to improving the performance of using performance counters. With Beta 1, the team has refactored diagnostic events and WCF is now sending a few high-value events via ETW. This change also surfaced in my posting on new features in WF 4 Beta 1; and, as with WF, there will be SDK samples to help folks understand better this and take advantage of this high-performance tracing option. These improvements should yield significant improvements to folks debugging a live system in production.
Features in the Beta 1 that Won’t Make RTM
Lastly, as with any beta release, it represents an evolving codebase as it moves toward a releasable product, and the features and functionality can [and typically do] shift. Within the Beta 1, there are two features that are unlikely to appear in .NET 4 that I’d like to quickly touch upon:
- Local Channel: We won’t be able to deliver the high-performant in-AppDomain channel in time for .NET 4. The beginning of a local (on in-proc) channel shows up in the Beta 1, but it’s in its early stages and unfinished; given resources and timing, the local channel capability will be removed in .NET 4 and won’t be present in the RTM bits.
- Durable Service Host Extensions: WorkflowServiceHost provides an extensibility mechanism called DurableServiceHostExtension that allows host application developers to receive notifications for state changes of the service instance and perform control operations specific to the service instance. This general extensibility mechanism will likely go away in .NET 4 RTM in exchange for a more scoped, but robust, functionality.
And it’s off to TechEd!
I’m off to TechEd for the next week, and I’ll try to give some word from the ground, but I’m likely to disappear again for a couple weeks. When we get back from TechEd, I’m going to try and work my way back another step – discussing what WCF 4 and WF 4 mean for the .NET 3.5 developer, and how those developers should approach the technologies.
I hope that this (and the prior) post is useful and informative. At least a few customers that I’ve spoken with over the past year have expressed a desire to get information out in this fashion. If you’re at the event next week, I’m a huge fan of feedback.