As of blackpearl v4.6.7, MSDTC is a requirement to deploy workflows.
http://help.k2.com/helppages/k2blackpearlGettingStarted4.6.5/webframe.html?msdtc.html
You can use the following script to automate the MSDTC configuration during VM provisioning.
Note: Execution policy might have to be changed to run this script. (Set-ExecutionPolicy RemoteSigned –Force)
# ———————————
# Enable MSDTC for Network Access
# ———————————
Write-Host “Enabling MSDTC for Network Access…” –foregroundcolor yellow
$System_OS=(Get-WmiObject –class Win32_OperatingSystem).Caption
If ($System_OS –match “2012 R2”)
{
Set-DtcNetworkSetting –DtcName Local –AuthenticationLevel Incoming –InboundTransactionsEnabled 1 –OutboundTransactionsEnabled 1 –RemoteClientAccessEnabled 1 –confirm:$false
}
Else
{
.\ConfigureMSDTC.ps1 | Out-Null
}
Restart-Service MSDTC
Write-Host “——MSDTC has been configured—–” –foregroundcolor green
The above script uses the inbuilt cmdlet if your OS is Windows Server 2012 R2, else it will use the traditional approach of modifying the registry.
# Save the following script as a separate file: ConfigureMSDTC.ps1
$DTCSecurity = “Incoming”
$RegPath = “HKLM:\SOFTWARE\Microsoft\MSDTC\”
#Set Security and MSDTC path
$RegSecurityPath = “$RegPath\Security”
Set-ItemProperty –path $RegSecurityPath –name “NetworkDtcAccess” –value 1
Set-ItemProperty –path $RegSecurityPath –name “NetworkDtcAccessClients” –value 1
Set-ItemProperty –path $RegSecurityPath –name “NetworkDtcAccessTransactions” –value 1
Set-ItemProperty –path $RegSecurityPath –name “NetworkDtcAccessInbound” –value 1
Set-ItemProperty –path $RegSecurityPath –name “NetworkDtcAccessOutbound” –value 1
Set-ItemProperty –path $RegSecurityPath –name “LuTransactions” –value 1
if ($DTCSecurity –eq “None”)
{
Set-ItemProperty –path $RegPath –name “TurnOffRpcSecurity” –value 1
Set-ItemProperty –path $RegPath –name “AllowOnlySecureRpcCalls” –value 0
Set-ItemProperty –path $RegPath –name “FallbackToUnsecureRPCIfNecessary” –value 0
}
elseif ($DTCSecurity –eq “Incoming”)
{
Set-ItemProperty –path $RegPath –name “TurnOffRpcSecurity” –value 0
Set-ItemProperty –path $RegPath –name “AllowOnlySecureRpcCalls” –value 0
Set-ItemProperty –path $RegPath –name “FallbackToUnsecureRPCIfNecessary” –value 1
}
else
{
Set-ItemProperty –path $RegPath –name “TurnOffRpcSecurity” –value 0
Set-ItemProperty –path $RegPath –name “AllowOnlySecureRpcCalls” –value 1
Set-ItemProperty –path $RegPath –name “FallbackToUnsecureRPCIfNecessary” –value 0
}