How to enable pipeline pooling

I was asked by a few folks on how do you create poolable pipeline components? After talking with David Messner, I learned that all you need to do is create a category and mark it appropriately. We seem to document this “PooledPipeline Object” but missing a few key items. We are missing the C++ header file mspu_guids.h that has the guid for the CATID_MSCSPIPELINE_POOLABLE constant and we are missing the instruction on tagging the component poolable. After lots of investigation I figured out what the guid is by looking at Commerce Server 2002 mspu_guids.h file:

//  4cb33c86-58fa-4e10-97a8-f19aff3b81d9

DEFINE_GUID( CATID_MSCSPIPELINE_POOLABLE,

    0x4cb33c86,0x58fa,0x4e10,0x97,0xa8,0xf1,0x9a,0xff,0x3b,0x81,0xd9);

Next I searched Commerce Serve 2007 pipeline components registry values and we tag our pipeline components category with this guid.

This has been entered as bug and we will document it better in the future, but if you want poolable components you need to add a registry entry under the Implemented Categories with the guid stated above. Something else that may help in automating the registration process is a documentation Registering the ATL Component for Commerce Server 2002.