Link to home
Start Free TrialLog in
Avatar of trs28
trs28

asked on

SQL Server 2008 Express R2 SP1 Setup Prerequisite Keeps Failing in IS10 Premier

I am creating a Installscript MSI project using Installshield 2010 Premier to install a SQL Server 2008 R2 SP1 Express prerequisite.  No matter how I adjust the unattended parameters, the end result is always the same - failure.   Strangely though, everything installs and works!   It just keeps reporting back that it's failed.   Once that happened, I took the snapshot below but first opened services and the start menu to show that everything is on the system as expected though.
 User generated image
The ironic part is, like I already said, everything installs and works properly.  Although, as you can see in the image, the SQL Server Agent did not install using Local System credentials. Other than that, I cannot find anything in the log files that indicates a problem to even hint to what I may be doing wrong.  
  Summary-XPVM-20111221-155713.txt

I've also included the Detail file as well (below).  Does anyone have any idea what might be causing this hangup?!?   Also, I'm using SQL Server 2008 R2 SP1 w/ Tools (sqlexprwt_x86_enu.exe). Am I dong something wrong here or what?!?   By the way, I've also included my parameter string.

/QS /IACCEPTSQLSERVERLICENSETERMS="True" /ACTION="Install" /FEATURES=SQLEngine,SSMS /INSTANCENAME="FSSCLIENT"  /SECURITYMODE=SQL /SAPWD="!FUNF00D" /SQLSVCACCOUNT="NT AUTHORITY\SYSTEM" /SQLSVCSTARTUPTYPE="Automatic" /AGTSVCACCOUNT="NT AUTHORITY\SYSTEM" /AGTSVCSTARTUPTYPE="Automatic" /ENABLERANU="True" /X86="True" /ADDCURRENTUSERASSQLADMIN

 Detail.txt
Avatar of jmcmunn
jmcmunn
Flag of United States of America image

Is the wrong condition simply being checked as the "success"?  The reason I ask is that if it were a 64-bit machine then there is the potential that the wrong registry key is set as the "success" condition (since there is a separate registry for 32/64 bit apps).  Just a shot in the dark, but it would explain why the installs seems to work and yet the installer does not think it did.

If that is the case, you may have to tweak the conditions or else find a different prereq for 32 vs 64 bit machines.
Avatar of trs28
trs28

ASKER

it's actually just a completely clean 32 bit XP pro virtual machine.   i understand where you're going with that, but one hurdle at a time.   if i can't get a 32 bit XP machine working, all the others are moot.  to be honest with you, i have no idea how installshield reads the return codes during the setup prerequisite installs.  i can customize the prereq to accept certain return codes as "reboot needed" codes, but that's it.

regarding another prereq ... this is the 3rd variation I've attempted to install
Avatar of trs28

ASKER

i have to be missing something small and/or stupid...
do you have the prq file you could upload?  maybe one of us can load it and see if there is something that stands out.
Avatar of trs28

ASKER

I had to throw a .txt extension on the prq file even after zipping it, so just remove .txt, and you'll have my prq.

 Microsoft-SQL-Server-2008-Expres.zip
Just glancing at this, it looks almost identical to the one we used to use for Sql 2008 R2.  Does this prereq work fine on other machines?  Is it only your test machine that may have something odd going on?
Avatar of trs28

ASKER

like i said, it's a clean XP virtual machine which is very representative of our production environments.  I'll try another one, but it's been rock solid for me in the past.
Avatar of Vadim Rapp
In the log you posted, "Microsoft SQL Server 2008 Express R2 SP1 (x86) with Tools" does not appear at all. Try to find another log. Enable diagnostic logging by Windows Installer (MSKB 223300), see if the log gets created then. The easiest way to find the log is to run Process Monitor while the installation of "Microsoft SQL Server 2008 Express R2 SP1 (x86) with Tools" is in progress, monitor file write operations, and see where it writes the log.

Since your command line tells to install Agent, and in the end it's not so, this issue is solid candidate for the failure. But to say for sure, and to find the reason, we need the log file of that particular installation.
Avatar of trs28

ASKER

Here they are ... I made sure the temp folder was empty of all log files before proceeding.  Also, these are the logs for the SQL Server portion of the installation.  Since I don't have any problems with the Windows Installer or PowerShell prereqs, I didn't enable MSI logging until after those installations & a fresh reboot.   I couldn't see anything in the logs that stood out, but then again, that's why I'm coming to you guys/gals for help on this.  

Please let me know what you think.  I really appreciate the help.

logs.zip
Avatar of trs28

ASKER

By the way, when I remove the agent parameters from the argument list, I still get to the same end result.
It's still not there; actually, even looking at the size of these log files - I imagine, the log of sql server setup would be some megabytes.
Avatar of trs28

ASKER

hmmm.... i grabbed everything according to what the KB article said.  i'll try agian and look for another file.
Enable detailed logging of installer, like MSKB 223300 says, and maybe then you will find it. Must be some log file that will describe how it installed Microsoft SQL Server 2008 Express R2 SP1 (x86) with Tools
Here's another thought. Let's forget about the log for now. Perhaps the problem is not with the installation, but with the prerequisite. Select the prerequisite, "edit", and examine the tabs "Behavior" and "Conditions". Then check if specified condition is met after the installation is finished. If it's not, then adjust the condition accordingly. I guess, the condition is based on the value "CurrentVersion", and maybe it's different in your case.
Avatar of trs28

ASKER

I'm going to run through the installation once more time using the KB instructions.  What I attached earlier is what resulted from doing that the first time though, but I'll do it again.   I'm also going to try to follow up on the Behavior and Conditions tabs, but I believe I already looked in that direction before.
ASKER CERTIFIED SOLUTION
Avatar of Vadim Rapp
Vadim Rapp
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of trs28

ASKER

The problem was in the prerequisite conditions like you mentioned vadimrapp1.  It took forever to realize, but since I'm using a custom instance name, part of the registry key sequence changed.  By default, the one folder level is "SQLEXPRESS."  In reality, that should represent the instance name.  Before realizing this, the installer would finish up the installation but fail every time because my custom instance name was not part of the default condition.

thank you to EVERYONE that helped me out with this!    happy new year everybody!
Why was partial credit not given to the very first answer pointing to checking the registry condition checked for success?  Just curious.
Avatar of trs28

ASKER

that post about the success condition seemed to be directed to 32bit / 64bit nuances.  in actuality, my knowledge was flawed about how IS determines if the prereq was a success or not.   i assumed that IS picked up a return code from the prereq.  

vadimrapp1 mentioned two things:  he/she specifically referenced the evaluation of the CurrentVersion value & he/she also mentioned that the exact same condition is referenced AFTER the prereq runs.  

those two things led me to look in the registry after I installed it on a test machine to see if I could navigate through the entire key to the CurrentVersion entry manually.  when i did that, i noticed that in place of "SQLEXPRESS" part of the key, an entry named after my custom instance name was there.  

that's when the light bulb over my head lit up like the 4th of July and i realized exactly why it failed.  i modified the prereq then accordingly, and i was off to the races.

that's why i didn't split the points.
No worries really, but the points were not split in case anyone else is looking for another part of the solution on this thread.  :-)