OK, so it’s technically a Solr Search (used by Community Server) and VMWare Server 2.0 conflict, but both start Apache Tomcat as a Windows Service. After a reboot, you’ll see one of the services hasn’t started, and Task Manager will only show one tomcat6.exe running.
The conflict occurs on Tomcat startup. The default Apache Tomcat config starts the service with a listener registered on port 8005. So, whichever service starts second on Windows startup fails to start with an “Address already in use” error in the Tomcat log.
In our case, the second service was Solr Search. It meant that after a reboot, searching would not work in our Community Server communities.
The fix was to change the port, as suggested in this post (thank you, Angie Tan and Google!). But in my case I wanted to alter the VMWare setting, not the Telligent/Solr setting.
So, go to your VMWare Server’s Tomacat config folder and find the server.xml file, in my case:
C:\Program Files (x86)\VMWare\VMWare Server\tomcat\conf\server.xml
And modify the line Server port tag to read something like this:
<Server port="8006" shutdown="SHUTDOWN">
Restart your services. If both services can run, go the whole hog and test a restart/recovery scenario with a full reboot, checking the Services panel and the Task Manager that everything started up OK.
At the encouragement of a couple of chums of mine, I jailbroke my iPhone 4 when the Jailbreakme.com hack first appeared for iOS 4.0.1. Here are some very brief thoughts on the matter after a couple of weeks of being jailbroken:
Update: I encountered a brief gotcha when unjailbreaking. See below.
Telligent’s email templating is very powerful, but leaves a lot to be desired on the documentation front. It also appears to have an annoying bug, which of course we ran into headfirst. You see, we wanted to include the user’s avatar image in notification emails that our community sends out.
Sadly, the token you’re supposed to use for this, $User.AvatarUrl, is worthless; it returns a URL that begins with a “~”. This might be useful if there were an email template function to handle “~”s in URLs (it refers to the root of the site) but there’s nothing to say there is, and nothing to document how you might process the result with a custom function. In .Net there are helper functions Telligent provide that fix this, but not in the email template language.
I left this post on the Telligent forums, in which I point out that using that token you end up with a URL that looks like:
And that using the function $global.FullPath() on the token, you end up with:
So why would Telligent remove them from the documentation?
To modify a theme.config file for Markup Translation, you need to know these .net Control Names if you want to target a specific control.
Take this example, which replaces the “Forum” text with “Q & A” in the Group – Application Navigation widget.
<Translation fragmentType="CommunityServer.Controls.ContentFragments.GroupApplicationNavigation, CommunityServer.Controls"> <Match><![CDATA[Forum]]></Match> <Replace><![CDATA[Q & A]]></Replace> </Translation>
Go on then, mock away. I’ve had blogs before. I can take your abuse.
Actually, I’m old and gray now, the ADF has taken my good looks and I probably can’t take the abuse at all (it’s got so nasty on the internets, too).
No, this blog is here so that before I do kick the bucket I can share some of the knowledge that I’ve accrued during my long and various battles with technology, known also to some people as my “career”.
Freshest in my mind is Community Server which, though I’m a GIS developer, has been picking me apart over the past couple of months. I’m finally winning that battle and hope to share some good hints and tips that will get other CS newcomers off the ground quicker than I managed to.
There will doubtless be a lot of GIS, a great deal of iPhone and Mac and C# and Ruby on Rails also.
So, latch on to my RSS feed, kick back, and wait for my posts to fill up your Google Reader, dear reader. Er…
Thank you, and good morning.