PDA

View Full Version : rt_msde2000a.sbi problem



NewsArchive
01-29-2007, 04:49 AM
I see a problem when trying to use the rt_msde2000a include.

The problem seems to be the way SB6 starts and then waits for the MSDE setup.exe.

I am trying to install additional INSTANCE of MSDE. (Yes, I know I should be moving on
to SQL Express <G>)

I modified the sbi to allow the extra instance (named tester).

Lets call the installer built with SB6 program "A"
This starts and waits for the MS setup.exe program "B"

The problem seems to be that prog "B" does not like having some other program waiting
for it to complete. After a minute or two, the MSDE installer simply stops updating
its progress bar (saying about 4 seconds remaining...). It sits here forever...

I looked with TaskManager and both A and B are showing "un-responsive" . So, I kill
the setup.exe from within TaskManager, and and the installer "finished" window shows
up OK.

Even though I had manually killed the MSDE setup.exe program, it had in fact completed
the install of the new instance. I was able to start the new instance ( using net
start mssql$tester).

A work-around that works, is to uncheck the "[ ] wait for program to close" where the
sbi file has the "Run Program...".

Then I also had to comment out the line..
Delete Tree %MSDETMP%

I will have to later delete the 63Megs of temp install files.

The install was being tested on Windows XP Home.

Has anyone else had a similar problem?

John Griffiths
Perth, Australia

NewsArchive
01-29-2007, 05:22 AM
Hi John,

I'll check this. But I think this is caused by a known MSDE installer
problem:
http://support.microsoft.com/default.aspx?scid=kb;en-us;841061

In later SB5.x builds and in SB6 (Gold) we had a "workaround". But this
caused other problems (strange threading issues).

If you are using the latest SB6 build, it's possible that your MSDE problem
is caused by this fix:

---
FIX : [SB#612191] Possible installer "Wait Dialog" threading issue.
---

I will see if it is possible to incorporate the above Knowledge Base article
841061. The problem is that exactly this Knowledge Base article caused the
threading issues in later SB5.x builds and SB6 Gold.

Friedrich

--
Friedrich Linder
Lindersoft
www.lindersoft.com
+1.954.252.3910

"point. click. ship" - that's SetupBuilder 6
Create Windows Vista ready installations in minutes

NewsArchive
01-29-2007, 09:31 AM
Thanks Friedrich. I am sure that the threading issue is the problem...

Yes, using SB6 latest version..

What I did to work around, was to not wait, then immediately open a timed Message Box
with timer set at 120 seconds. The MSDE install invariably completes in within 60
seconds. Once it does, the user then sees the message box, and can continue.
Then I cleanup the MSDETMP files and start the SQL Engine.

What would be handy, would be to be able to open a timed message box with timer of
say, 1 to 120 seconds (as at present), but to HIDE the [OK] button for say, a period
of 1 to 119 seconds. That way they MUST wait for a period that the developer
specifies. Unless you have some other way of an enforced wait in SB6 ?

Thanks

John Griffiths
Perth, Western Australia

NewsArchive
01-29-2007, 09:31 AM
Hi John,

This is how I do it in SB6:

...

If %MSDEVERSION% = 0 then
Close Setup Progress Dialog
Display Wait Dialog - Installing MSDE. Please Wait...
#include script "rt_msde2000a.sbi" (Custom Configuration)
Display Setup Progress Dialog
end

...

The MSDE installation does not hang doing it this way.

John

NewsArchive
01-30-2007, 02:15 AM
Thanks John, I shall give that a try.

One difference is that if there is an existing SQL2000 or MSDE2000 install, I still
want to go ahead and add my separate Instance. This may be the difference. Anyway, I
will test your suggestion and get back....

John Griffiths

NewsArchive
02-01-2007, 01:35 AM
Hi John,

Where I had a problem with running an exe during my install I added
the following script:

Run Program %_SB_INSTALLDIR%\wmpcdcs8.exe /q:a /r:n (Always
Install)
Set Variable %LOOPID% to "1"
Loop
Set Variable %LOOPID% to (Increment Variable by 1) [Append
Value]
Sleep for "3" seconds
Set Variable %ACTIVE% to ScriptItem->Detect Active
Application(wmpcdcs8.exe)
If %ACTIVE% Equals "603" Then
Break Loop
End
If %LOOPID% Equals "4" Then
Break Loop
End
End

In this instance the exe always completed within 12 seconds so the 3
seconds by 4 loops was ok. If the executable had completed then this
was picked up by the %ACTIVE% variable equalling 603.

I don't know if this will help in your instance but it would be worth
a look.

Best Regards,
Geoff Spillane
Data Down Under
Australian Clarion Distributor
Worldwide SetupBuilder Distributor