Wednesday, December 9, 2009

Install SQL Server Bussiness Intellegent Development Studio

If you have SQL Server Management Studio Express, SQL Server Bussiness Intellegent Development Studio (BIDS) is not installed by default. But you can get BIDS as part of Microsoft SQL Server 2005 Express Edition Toolkit. Microsoft SQL Server 2005 Express Edition Toolkit can be freely downloaded from Microsoft.

Problem:

When installing Microsoft SQL Server 2005 Express Edition Toolkit, the installation failed with the following error message in the log file.

Machine : xxxxxx

Product : MSXML 6 Service Pack 2 (KB954459)

Product Version : 6.20.1099.0

Install : Failed Log File : c:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\Files\SQLSetup0005_TOT75XRDTW1027R_MSXML6_1.log

Error Number : 1603

The detailed error message in the log indicates

Action start 10:34:08: SkipInstallCA.

This package is not supported on this operating system.

Action ended 10:34:08: SkipInstallCA. Return value 3.

Solution.

First uninstall the existing version of msxml. If fail to uninstall, use Windows Installer CleanUp Utility to clean up msxml6.

After that, re-run SQLEXPR_TOOLKIT.EXE to install BDIS. Everything should be fine.

Wednesday, October 7, 2009

TFS: Unable to connect to this Team Foundation Server

When using Visual Studio 2008 to connect to TFS server from a client machine, I got the following error.


Microsoft Visual Studio

TF31002: Unable to connect to this Team Foundation Server: mytfsserver.

Team Foundation Server Url: http://mytfsserver:8080.
Possible reasons for failure include:
- The Team Foundation Server name, port number or protocol is incorrect.

- The Team Foundation Server is offline.

- Password is expired or incorrect.


For further information, contact the Team Foundation Server administrator.


Further investigation shows that the same user can connect to the server from other machine, and other user can connect to the server from the same client machine. All the users and the server reside in the same domain. It must be the setting for that user on that client machine.

Because Team Explorer uses IE controls behind the scene, I opened the IE options and found that the LAN setting has configured to use proxy. After unchecked the setting, VS2008 has no problem connecting to the TFS server.

Monday, June 29, 2009

MSI: Uninstall left some files not removed

I created a MSI package and tested the installation and uninstallation. Everything looked good except for one file. The abc.exe file could not be removed by the uninstallation process. The INSTALLDIR started clean. And file was not used at the time of uninstallation.


I created the extensive log using /L*v option with msiexec command. After studying the log file and comparing the ComponentId in the msi, I found out that the file was marked "PreviouslyPinned".


MSI (s) (50:C0) [15:22:31:932]: Executing op: ComponentUnregister(ComponentId={4CA897DC-C1DD-1A1D-CA93-FF18DA884529},,BinaryType=0,PreviouslyPinned=1)1: {2E9A386D-9B96-4E7C-9AE9-B614A86EEFA5} 2: {4CA897DC-C1DD-1A1D-CA93-FF18DA884529}


Sure enough, I found an entry of the file in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs.

After deleting the entry, the uninstallation of the MSI worked properly. The MSI package was correct, the problem resided on the testing environment.

Friday, June 5, 2009

Configure Cygwin sshd for Build Automation

Our build is initiated from a UNIX build server, then invokes the Windows build portion.

1. create a local build user on the Windows build server. Use the same id as in the UNIX server. Password can be different.

2. install cygwin on the Windows build server.

3. set up sshd service.
There is a very nice article about how to set up sshd using cygwin, including which cygwin packages to install, how to install and configure ssh service, how to generate user pulib/private keys, and how to add the user to the password file.
In summary, use the following command.
ssh-host-config
ssh-user-config
You should be able to find a "CYGWIN sshd" service in Windows machine. Make sure the service is started.

4. in the ssh client (UNIX build server), login as build id, generate rsa (or dsa) public/private keys. entry cartridge return (empty) for passphrase.
# ssh-keygen -t dsa
public key is save to ~/.ssh/id_dsa.pub
private key is saved to ~/.ssh/id_dsa

5. sftp the public key(id_dsa.pub) to ~/.ssh directory on the ssh SERVER (Windows build server).

6. create an authorization file in the ~/.ssh directory on SERVER, add the public key in.

server> cat /id_dsa.pub >> /.ssh/authorized_keys
7. To verify that you can connect to the target system, log in through from the client. An entry will be created in the ~/.ssh/known_hosts file in the server.
$ ssh id@target
Now you can integrate the Windows build with UNIX build process.

...
ssh -n -o NumberOfPasswordPrompts=0 ccadmin@winbuild "rm -rf /cygdrive/e/CBFE_Build/${RELEASE}"
ssh ccadmin@winbuild "cd /cygdrive/e/CBFE_Build/${RELEASE}; /usr/bin/unzip -u /cygdrive/e/CBFE_Build/${FILENAME}"
ssh ccadmin@winbuild "cd /cygdrive/e;/cygdrive/c/Program\ Files/InstallShield/2009/System/IsCmdBld.exe -p CBFE_Build/IS_Projects/${RELEASE}/CBFE_Common/CBFE_Common.ism -z BUILD_VERSION=${BUILD_LABEL}"
....

Thursday, June 4, 2009

Run InstallShield ISCmdBld.exe under cygwin, ssh

After installed and configured cygwin (sshd) in the Windows build server, I tested the ssh connection without any issue. The next step is to launch the InstallShield command line builder ISCmdBld.exe through ssh from my UNIX build box.


ssh myUserid@myWindowsBuildServer "cd /cygdrive/e;/cygdrive/c/Program\ Files/InstallShield/2009/System/IsCmdBld.exe -p CBFE_Build/IS_Projects/myProject.ism -z BUILD_VERSION=${BUILD_LABEL}"


Nothing happened. The command prompt returned immediately. After more testing, I found out that if I logged in to the Windows build server using myUserid, or other id, I had no problem running ISCmdBld.exe in a cygwin session. However, logging in through ssh from other boxes (UNIX or Windows) did not work. It was not X server. And it was not the ACL on the executables. Even power user group is not sufficient.

Finaly, by adding the user to the Administrator group on the Windows box, the problem solved.

Wednesday, April 15, 2009

TAS is Gone?

TotalNet Advanced Server (TAS) has been IBM's preferred ClearCase interop solution for many years. Yet, we recieved a piece of notification from LSI saying that TAS would be end of support in 60 days. And that was more than one month ago.

Many commercial and free software implement file systems sharing from UNIX to Windows. All use one of the two protocols: NFS and SMB. For ClearCase interop, we can either set up a SMB server on the UNIX side, or install NFS clients on every Windows box. For NFS, there are many commercial software, such as Netapp, EMC, Humming Bird Maestro, etc. For SBM, there is TAS. Of course we have Samba, but it is free. Who wants a free software?

We use Solaris VOB server in our ClearCase environment. From Solaris 10, Samba is bundled with the OS. Maybe we will use Solaris's native CIFS (Common Internet File System) solution some day.

Tuesday, March 10, 2009

Execution < guid > cannot be found (rsExecutionNotFound)

This happened when running our .Net SCM Reporting web application that accesses SQL reports using Report Viewer. After leaving the web application idle for some time, I got the error message "Execution <> cannot be found". guid can be either empty or a string like 'j4j3vfblcanzv3qzcqhvml55'. This happened on either the local web server/SQL report server, or other clients.

Tried to set AsyncRendering="False" in the ReportViewer control as sugguested in some web sources. It did not work.

The following solution from John Gallardo's blog makes the problem less often. It modifies the SessionTimeout and SessionAccessTimeout system properties. It sets timeout to be an hour and a half. The setting should be used with caution as temporary session snapshots will not be aged out as often.

' sessionTimeout.rss
Public Sub Main()

Dim props() as [Property]
props = new [Property] () { new [Property](), new [Property]() }
props(0).Name = "SessionTimeout"
props(0).Value = timeout
props(1).Name = "SessionAccessTimeout"
props(1).Value = timeout
rs.SetSystemProperties(props)
End Sub

E:\_qinl>rs -i sessionTimeout.rss -s http://localhost/reportserver -v timeout="6000"
The command completed successfully

Wednesday, February 11, 2009

False Dependency

Got the same problem. Resolved by moving the offending change set to a new activity, and deleting the now-empty activity.


Q: When I try to deliver an activity from a stream, sometimes UCM complains of a dependency on another activity in the stream. But when I look more deeply, I cannot find a change-set dependency between the activities! Why?


When you deliver an activity from one stream to another, a hidden delivery baseline is created on your behalf in the source stream. UCM requires that all subsequent deliveries from this stream contain this baseline (and all its activities). The problem described above usually occurs when you deliver something from one development stream to another, and then later try to deliver another activity somewhere (without including the first delivery's activities). There are workarounds for this. Appendix A of Software Configuration Management Strategies and IBM Rational ClearCase contains a script that can undo an activity. Or, you can resort to moving the offending change-set to a new activity and deleting the now-empty activity that was causing the dependency.


From IBM Developerworks http://www.ibm.com/developerworks/rational/library/jul05/reader/bellagio.html