I've been supporting a project for some time now using SharePoint and K2 BlackPearl. I came onto the project after 1 major and 4 minor releases. Since that time I've touched all of the code, and most of the architecture. However, there are still some lingering ghosts to give me problems (as well as new ones all my own).
I've been using K2 through Visual Studio, but today I was working with a team member and he was showing me the browser-based workflow editor. It was pretty cool, but it didn't have all of the features I needed. I decided to deploy a workflow anyway just so I could have the full experience. The workflow authoring was straightforward and I went to deploy the workflow, and got the following error message.
SmartObjectServer Exception: Error HRESULT E_FAIL has been returned from a call to a COM component.
Not .. so .. good. I tried a couple more times, the error didn't change. I couldn't blame this on network issues. I looked at the Application log and saw that MSDTC was throwing errors about another network registration with the same ID. I uninstalled and reinstalled MSDTC with the following commands, and everything is working wonderfully now.
- Open a command window
- msdtc -uninstall
- reboot server
- msdtc -install
be223f21-ea40-42ad-aa16-b9692f9d1bed|0|.0
My client was using "per user" licensing versus "per server licensing", it makes sense for them. At a status meeting last week, the question came up of "How does licensing work in K2 Blackpearl?"
For per-user licenses, a license is consumed anytime a user is a destination in a workflow. Once someone consumes a license, they can participate in unlimited workflows. OK, simple enough, so the next question was, "How many licenses are we currently using?". I navigate to the Workspace, go to
- Management
- Workflow Server
- Licensing
- Licensed Users
..... and see only two service accounts!!!! I guffaw a little bit and reassure the client that they are far under their current licensing limits.
Back at my desk, I start digging a little deeper. It turns out that the GUI is only useful if users are logging into the workspace or using the K2 designer plug-ins. We have a custom ASP.NET application that hides all of K2 from the users, so they never see that. To get the real number, I need to login to the DB and look at the _Actioners table. Success. All of my current users are listed and I get a much more believable number for my next meeting.
This article talks about deleting the contents of that table to remove old employees. Until this issue is resolved, that seems like a reasonable workaround quarterly.
1d4f3c26-8728-4c1b-8a9c-5354719fbcc4|0|.0
So we are taking advantage of the new year to ensure all of our servers are patched up. As we patched our SQL Servers (SQL Server 2005 SP3), we started getting the following error from our application servers (both SharePoint WFE and K2 Blackpearl app servers).
Unable to connect to SERVERNAME on port 5252. No connection could be made because the target machine actively refused it.
I immediately start looking at the SQL Server, and everything is working as it should be. Since I'm running into a wall, I drop down to the network level. Port 5252 isn't open on my server. OK, I checked to see that the service is running, and it is. Why isn't it listening?
I turn on logging by
A new log file is available in C:\Program Files\K2 blackpearl\Host Server\Bin\. I open it up and find the culprit.
1046 Expired K2 [blackpearl] - Partner Software License Key: KEYNUM
Ahhh, and I was thinking it was the patching we were doing. Sometimes you just have to look at the logs.
c87d88cf-08fa-48eb-be03-b463fde3c93a|0|.0