Welcome to MSDN Blogs Sign in | Join | Help

Browse by Tags

All Tags » Channels   (RSS)

Just Exactly What You Asked For

When implementing a transport or layered channel class the marker used to indicate that your class is a channel is to implement the IChannel interface. Therefore, all channels will implement one of the known channel shapes: IInputChannel, IOutputChannel,

Levels of Tracing, Part 6

The last article in the levels of tracing series covers the logging of messages at the transport level. Transport level logging generally occurs in the message encoder as that is where the message bytes are actually processed but in some rare cases there

Non-Destructive Queue Receive State Machine

The state machine for a non-destructive receive has some noticeable similarities to the state machine for a general-purpose communication object, but it's intentional for these two state machines to be different. A non-destructive receive tries with minimal

Non-Destructive Queue Receive

You should take the time to understand the earlier articles in the series for context if you haven't already. Future of Queuing An Alternative Queuing Model The three basic operations that we talked about for queuing with non-destructive receives are

Advanced Windows Debugging

Channel 9 has put up a new video that mostly plugs the Advanced Windows Debugging book by Mario Hewardt and Daniel Pravat. I recommend the book for someone that needs to debug difficult issues dealing with native resources. For most people working with

Waiting for Ready Channels

When I create a channel to a service, how do I know when the service is ready to process the data for that channel? A channel doesn't really know what the service is doing. The service might be actively processing the data being sent over the channel.

Adding Headers to a Call

How do I add SOAP headers to an outgoing request? There are a few different ways to add headers to a message depending on how you need to control the header content and where you need to insert the header. I like to think of these methods as being split

Building with Encoders

The basis of a channel stack is that there is a series of objects that share a common interface for communication. This leaves message encoders with something of a problem as the primitive operations for encoding and decoding messages are different than

TIBCO Announces WCF Integration

At their user conference in San Francisco yesterday, TIBCO announced two integration initiatives to bring the TIBCO and Microsoft platforms closer together. TIBCO is developing a TIBCO EMS transport channel for WCF. Although Microsoft doesn't have a formal

Context Channel Shapes

What channels can be used in a context binding? The primary limitation for building a context binding is that the channel stack has to have the right shape. The context exchange protocol used by a context binding requires that the first invoked operation

The Pipe DACL

When a named pipe channel listener creates a new named pipe it has to supply a discretionary ACL that describes who can connect to the pipe. Here is how that DACL is constructed: An access control entry is added to deny GENERIC_ALL access to the well-known

A Proxy Proxy Factory

I have a system that sometimes uses a fast local object and sometimes needs to communicate over a network. I have built a proxy object that wraps the proxy factory for creating typed proxies together with a proxy factory for creating local objects. Are
Posted by Nicholas Allen | 3 Comments
Filed under: , , ,

Concurrent Channel Performance

Being thread-safe is different than being concurrent. The channel interfaces are thread-safe so that multiple callers can use them at the same time without getting garbled messages. However, if multiple callers try to send messages on a single channel

Custom Transport Retry Logic

What are the best practices for building retry logic around network transport failures? Let's define some terms first so that we have a common language for communication. I'll say that "retry logic" is any automatically applied compensation activity that
Posted by Nicholas Allen | 7 Comments
Filed under: , ,

Substituting for TryAccept

We're back to the channel pump for another round. In the previous channel pump article we had introduced an asynchronous coroutine between the main channel pump loop and a callback on acquiring a channel throttle. This use of coroutines let us suspend
Posted by Nicholas Allen | 1 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker