Welcome to my tech blog. I hope that you find some of my experiences and postings useful, please leave a comment if so.
My Home Network
I use the endpoints in both my living room and bedroom to stream media from the Twonky media server installed on the Western Digital 4Tb NAS. The Twonky server and both the Xbox and PS3 endpoints use DLNA for this.
My IP camera uploads images to the WD NAS upon motion detection and keeps a watchful eye over my garden shed. Alerts are also sent remotely to my WP7 handheld device for when i'm not at home.
The DDWRT firmware on my Linksys router allows IPSEC VPN setup and dynamic DNS updates for easy and secure remote access.
OCS Edge Server Wizard Fails
Failure
[0xC3EC78D8] Failed to read the Office Communications Server version information. This can happen if the computer clock is not set to correct date and time
I checked both the time and date of the system, and as i suspected, they were both fine, all were in sync with other network members.
I eventually tracked the issue down to one of my previously installed KB fixes, (KB974571).
It appears that this issue is well known about with the OCS community, here a re a few links on it...
http://communicationsserverteam.com/archive/2009/10/14/632.aspx
http://support.microsoft.com/kb/974571
Uninstalling the patch, then rerunning the edge server wizard, resolved my issues, and the install proceeded successfully.
Changing Twonky Media Content Base Path
When I attempted to specify a new content location in Twonky I couldn’t select the new folders I had created (even when attempting to start the path with ../../Datavolume/Media). When examining the log files that Twonky creates I noticed that there was a contentbase defined as..
“INI value:contentbase=/DataVolume/Public/”
Whereas all my media was located in “/DataVolume/Media/”. I did find a few ways of changing this value which consisted of enabling ssh onto the nas, and altering the twonky ini file with vi. While I am extremely competent with Linux and Vi afer working as an Oracle DBA for a number of years I steered clear of this for the following reasons...
A) My Western Digital warranty going bye bye! (I paid £300+ pounds for the nas and don’t want to lose it!)
B) Should the procedure go wrong I wasn’t looking forward to reinstalling Twonky from scratch!
I found the following (not very well documented) procedure to change the URL from a browser window. Just enter the command in your address window and follow any credential prompts if you have authentication enabled.
http://IP:Port/rpc/set_option?contentbase=New Base Path
For Example…
http://192.168.1.10:9000/rpc/set_option?contentbase=/DataVolume/Media
OCS/Outlook Integration Presence Issues
We have been having a few issues with getting the OCS Presence Indictator working correctly with Outlook 2007. When you hover over the presence jelly bean in the Preview Pane, you get ‘Presence Unknown’ even through OCS and even Sharepoint detect the correct status:
After some extensive research, most people recommend the following registry key settings:
"REG_DWORD HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\PersonaMenu\RTCApplication=3"
"REG_DWORD HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu\RTCApplication=3"
"HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\IM] "SetOnlineStatusLevel"=dword:00000003"
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu]
"QueryServiceForStatus"=dword:00000002
However, this didnt seem to resolve the issue. By experimentation, we tried:
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\PersonaMenu]
"QueryServiceForStatus"=dword:00000002
and changed the dword value to 3. The presence is now working as expected. According to the Microsoft site, this can only be set to 0, 1 or 2.
Feel free to investigate and let me know how you get on!
Lync Server 2010 Publishing Topology - MSDE SQL Instance
Error: An error occurred: "System.UnauthorizedAccessException" "Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))"
And the event log showed the following...
Log Name: System
Source: LsaSrv
Date: 15/11/2010 11:00:36
Event ID: 6037
Task Category: None
Level: Warning
Keywords: Classic
User: N/A
Computer: LyncPool.LyncTest.Local
Description:
The program sqlservr.exe, with the assigned process ID 2368, could not authenticate locally by using the target name MSSQLSvc/testpool.lynctest.local:49245. The target name used is not valid. A target name should refer to one of the local computer names, for example, the DNS host name. Try a different target name.
I determined that this was because of loopback checking in my particular setup. In that the hostname of my Lync pool server was lyncpool.lynctest.local and my pool name was lynctest.lynctest.local.
The solution was to add a registry key to disable loopback checking.
Run regedit and browse to the following...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
Create a dword with the following values
DisableLoopbackCheck Value:1
Oh, and Kudos to Kevin Feasel who's blog i found this solution on.
Outlook Signatures Centralized
Keeping every ones Outlook email signature in line with company policy is a nightmare of a task. You often find users edit it slightly with images, different symbols for their phone number and most of all, the constant change in upcoming events or products.
I needed to find a solution that centralised signature management, without the cost of a third party application or more software for IT to support. After searching the internet, VB seemed like the best option. The full script can be downloaded here. Simply download the file and rename it to .vbs.
The script can be deployed as a login script with group policy and gives Administrators:
- Centralised Control over Events and Formatting
- Automated Job Title, Phone Number and Email Address Control
- Piece of mind that corporate image is being portrayed.
Lync Server 2010 Publishing Topology Error
Came across this one today, when publishing your selected topology from the Lync Server Topology Builder, the publishing wizard fails at the first step of "Creating Central Management Store". The following will also be logged in the deployment log.
Error: An error occurred: "Microsoft.Rtc.Management.Deployment.DeploymentException" "Cannot determine where to install database files because Windows Management Instrumentation on the database server is unavailable from your computer or user account. To continue, you can resolve this issue, or you can specify where you want to install the files."
.......... Have you logged in as a member of the "CSAdministrator" group.....
Server 2008 Slow Logon Network Access – TCP Offload & TCP Autotuning
TCP offload or "chimney offload" provides a direct connection (a "chimney") between applications and a TCP offload-capable NIC. This feature enables such a NIC to perform TCP processing for offloaded connections which reduces processor overhead and makes network communications more efficient. Another feature in Server 2008 TCP/IP is Receive Window Auto-Tuning Level for TCP connections. TCP AutoTuning enables TCP window scaling by default and automatically tunes the TCP receive window size for each individual connection based on the bandwidth delay product (BDP) and the rate at which the application reads data from the connection. Theoretically, with TCP auto-tuning, network connection throughput in Server 2008 should be improved for best performance and efficiency. However, this is not always the case. Unfortunately, these “features” can cause many untold issues with specific physical/virtual hardware. In our environment we experienced very slow logon times (2003 active directory functional level with 2008 member servers), LDAP failures and generally very slow network access from the 2008 member servers. An MS support ticket suggested we disabled the autotuning and offloading, which successfully resolved our issues.
To check the current state of chimney offload and TCP autotuning, run the following command.
netsh interface tcp show global
To disable chimney offloading and TCP autotuning, run the following command.
netsh interface tcp set global chimney=disabled autotuninglevel=disabled
Moving SQL 2005 System Databases - Step By Step Instructions
MASTER DATABASE
1) Update the –d –l and –e paths on the startup parameters to the intended new location
-dE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\master.mdf;-eE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\ERRORLOG;-lE:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\mastlog.ldf
2) Shutdown sql server
3) Move the master.dbf and master.ldf files
Ensure that the log file directory in the new location is created ready
4) DO NOT STARTUP THE DB AT THIS POINT (THE MASTER AND RESOURCE DATABASE HAVE TO BE MOVED AND LOCATED IN THE SAME DIRECTORY!)
RESOURCE DATABASE
1) Run net start mssqlserver /f /T3608 from command prompt to start the server in single user and master recovery only mode
2) Close the object explorer in SQL Server Management Studio (as this uses your one connection)
3) ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=data, FILENAME= 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.mdf');
GO
ALTER DATABASE mssqlsystemresource
MODIFY FILE (NAME=log, FILENAME= 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\mssqlsystemresource.ldf');
GO
4) ALTER DATABASE mssqlsystemresource SET READ_ONLY;
5) Shutdown the DB
6) Move the files to the new location
7) Restart the services normally
8)
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID('master');
GO
TEMP DATABASE
1)
USE master;
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = tempdev, FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\tempdb.mdf');
GO
ALTER DATABASE tempdb
MODIFY FILE (NAME = templog, FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\templog.ldf');
GO
2) Restart the services
3) Verify files exist in new location
4)
SELECT name, physical_name AS CurrentLocation, state_desc
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
5) Delete files from old location
MODEL AND MSDB DATABASES
1) ALTER DATABASE model MODIFY FILE ( NAME = modeldev , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\model.mdf' )
2) ALTER DATABASE model MODIFY FILE ( NAME = modellog , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\modellog.ldf' )
3) ALTER DATABASE msdb MODIFY FILE ( NAME = msdbdata , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\msdbdata.mdf' )
4) ALTER DATABASE msdb MODIFY FILE ( NAME = msdblog , FILENAME = 'E:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\msdblog.ldf' )
5) Shutdown the sql services
6) Move the files to the new location
7) Startup the instance again
8) Check the new paths using the following statements…
use model
go
sp_helpfile
go
use msbd
go
sp_helpfile
go
Good luck!
Passive node cluster service issues following Windows Updates
I recently came across the following issue, and found very little documentation online about it, so thought i'd add it here to help others. Following the installation of some windows updates security patches onto a passive SQL cluster node, the cluster service refused to start. Event id 7031, 1073, 1173, 1123 were all logged in the system event log.
Event Type: Warning
Event Source: ClusSvc
Event Category: Node Mgr
Event ID: 1123
Date: 01/11/2010
Time: 13:21:56
User: N/A
Computer: PASSIVENODE
Description:
The node lost communication with cluster node 'ACTIVENODE' on network 'Heartbeat (Left)'.
--------------------------------
Event Type: Error
Event Source: ClusSvc
Event Category: Membership Mgr
Event ID: 1173
Date: 01/11/2010
Time: 13:22:39
User: N/A
Computer: PASSIVENODE
Description:
Cluster service is shutting down because the membership engine detected a membership event while trying to join the server cluster. Shutting down is the normal response to this type of event. Cluster service will restart per the Service Manager's recovery actions.
--------------------------------
Event Type: Error
Event Source: ClusSvc
Event Category: Startup/Shutdown
Event ID: 1073
Date: 01/11/2010
Time: 13:22:39
User: N/A
Computer: PASSIVENODE
Description:
Cluster service was halted to prevent an inconsistency within the server cluster. The error code was 5890.
After numerous network traces and diagnostics i discovered that one of the windows updates previously installed (KB97546) had updated a file named MSV1_0.dll on the passive cluster, this had caused a version mismatch and was the cause of the problems. The active node had a file version 5.2.3790.4587 where as the passive node had 5.2.3790.3959.
Before discovering the mismatch we had already evicted the passive node from the cluster, so i can't say whether just uninstalling KB975467 from the passive node would resolve the issues. Most likely, it will.
Below was my full set of troubleshooting/resolution steps.
- Suspected a Network Issue so collected Network Monitor Trace for Heartbeat NIC - came out clean.
- Evicted NODE B from cluster and ran, cluster.exe node
/forcecleanup
- Tried adding NODE B in cluster but it failed to start Cluster Service during the join process.
- Confirmed following registry entries on both the nodes were the same,
Verified that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\lmcompatibilitylevel and restrictanonymous are the same on all nodes.
Verified that HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\ntlmminclientsec and ntlmminserversec are the same on all nodes.
- Verified the Cluster Service Account Password used was correct and not expired.
- Checked HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Cluster Server and Clusterinstallationstate was set to 1 on passive node and it was set to 2 on active node.
- Confirmed the subnet mask for all the interfaces in cluster on both the nodes were configured correctly.
- Investigated installed KB's and noticed that there was a mismatch in the file version of MSV1_0.dll between the cluster nodes.
- Tried replacing the .dll file from NODE A but that did not help.
- Uninstalled KB 975467 from NODE B and the file version was reverted to 5.2.3790.4530.
- Successfully re added the passive node into the cluster and restarted the cluster service.