MSDE Uninstall Doesnt

  • Hi -

    I have a VB.NET application that uses an MSDE database.  I'm creating an install program that will install my app and a named instance of MSDE.  I'm trying to make the process as easy and foolproof as possible for very nontechnical end-users.  My development machine is WinXP Pro.

    I'm having trouble with uninstalling MSDE.  As most everyone knows, if _anything_ goes awry with an app, during installation or later, a very common resolution step to consider is an uninstall/reinstall.  My problem seems to be with MSDE, so I skipped my app and just worked with MSDE.  I installed it with the setup.exe provided by MS:

    setup.exe /settings "eNP.ini" TARGETDIR="c:\Program Files\TestForMSDE100\MSDE\" DATADIR="c:\Program Files\TestForMSDE100\" SAPWD="Password356" /L*v "c:\Program Files\TestForMSDE100\MSDE356.log"

    The referenced eNP.ini file contains:

    [Options]

    INSTANCENAME="eNP356"

    SECURITYMODE=SQL

    DISABLENETWORKPROTOCOLS=0

    The install ran through to completion, and the log reported success.  I then uninstalled the named instance using Add/Remove Programs from the Control Panel.  That process ran without error.  But the re-install failed.  In the log file, the first occurrence of 'Return value 3' is about 80% down in the file:

    Starting custom action UpgDetectBlankSaLogin()

    Entering Function MyMsiEvaluateCondition

    MsiEvaluateCondition for VersionNT returned TRUE

    End Function MyMsiEvaluateCondition

    Unable to open service.

    Unable to connect as the SQL service is not running.

    Ending custom action UpgDetectBlankSaLogin().

    Action ended 16:26:37:

    UpgDetectBlankSaLogin.2D02443E_7002_4C0B_ABC9_EAB2C064397B. Return value 3.

    Action ended 16:26:37: INSTALL. Return value 3.

    MSI (s) (BC:70): Note: 1: 2262 2: Control 3: -2147287038

    Property(S): UpgradeCode = {421A321C-2214-4713-B3EB-253F2FBCCE49}

    Property(S): SqlDataDir = c:\Program Files\TestForMSDE100\

    Property(S): SqlProgramDir = c:\Program Files\TestForMSDE100\MSDE\

    Property(S): SqlInstanceName = ENP356

    Property(S): SqlSecurityMode = SQL

    Property(S): SqlSa...

    Property(S): SqlDisableNetworkProtocols = 0

    Property(S): VersionNT = 501

    Property(S): ALLUSERS = 1

    Property(S): ARPNOMODIFY = 1

    Property(S): DefaultUIFont = Tahoma8

    Property(S): INSTALLLEVEL = 3

    Property(S): LIMITUI = 1

    I can get around the problem by going through the steps in the Microsoft KB article on manually removing ....  But my end-users can't/won't.  First, I'm pretty sure that msizap.exe (required by that procedure) can't be redistributed. Second, all I have to do is mention the word 'Registry' -- with or without the necessary standard dire warning -- and my users will say something like 'Sorry.  I'm not interested in your app, just tell me how to get it off of my computer.'  The answer to that request, of course, again involves the same 'Registry' and you begin to see how unproductive the conversation will get.

    I may be able to code an uninstall routine that will execute many of the 'manually remove' steps by deleting directories and registry entries, but I still can't redistribute msizap.exe.  And I'm thinking there's gotta be a better way.

    How can I implement what should be a simple uninstall/reinstall process that works ... simply??

    Thanks for your help.

    - Jeff

  • Reading though your log there it seems that you are trying to access MSDE to check something, before MSDE is started.

    Starting custom action UpgDetectBlankSaLogin()

    Entering Function MyMsiEvaluateCondition

    MsiEvaluateCondition for VersionNT returned TRUE

    End Function MyMsiEvaluateCondition

    Unable to open service.

    Unable to connect as the SQL service is not running.

    Ending custom action UpgDetectBlankSaLogin().

    Action ended 16:26:37:

    UpgDetectBlankSaLogin.2D02443E_7002_4C0B_ABC9_EAB2C064397B. Return value 3.

    Action ended 16:26:37: INSTALL. Return value 3.

    Maybe something is stopping MSDE from starting correctly. Check your Windows Event Log for any details. Maybe give your machine a reboot to make sure the registry is in sync.


    Julian Kuiters
    juliankuiters.id.au

  • Thanks for your response, Julian -

    I'm not really trying to 'access MSDE,' I'm trying to install it. All I'm doing to install it is run Microsoft's setup.exe. I've taken a look at the Event log. Other than Information entries, I found 2 Errors and a Warning (see below). I'm not sure how to interpret/resolve these, since I'm simply(!) running the Microsoft-provided setup.exe.

    I've also tried the following 2 suggestions that I had received (including your reboot suggestion), but the problem remains the same:

    1. Instead of using an .ini file, include all parameter settings on the setup.exe command line.

    2. Reboot

    I've removed the .ini file, and my setup.exe command line is now:

    setup.exe TARGETDIR="%InstallDir%\MSDE\" DATADIR="%InstallDir%\" SAPWD="Pswd356SC" INSTANCENAME="eNP356" SECURITYMODE=SQL DISABLENETWORKPROTOCOLS=0 /L*v "%InstallDir%\MSDE356.log"

    I've tried rebooting at several points in the process. The following sequence fails:

    1. manually remove MSDE per Microsoft

    2. reboot

    3. install MSDE (succeeds)

    4. reboot

    5. Remove MSDE using Add/Remove Programs

    6. reboot

    7. install MSDE (fails)

    I've also tried stopping the service and removing the data directory:

    1. manually remove MSDE per Microsoft

    2. reboot

    3. install MSDE (succeeds)

    4. reboot

    5. change MSSQL$ENP356 service from started, automatic to stopped, disabled

    6. change SQLAgent$ENP356 service from stopped, manual to stopped, disabled

    7. Remove MSDE using Add/Remove Programs

    8. remove the MSDE data directory

    9. reboot

    10. install MSDE (fails)

    Please help.

    - Jeff

    Event log errors/warnings:

    Event Type: Error

    Event Source: Perflib

    Event Category: None

    Event ID: 2002

    Date: 9/10/2004

    Time: 10:31:45 AM

    User: N/A

    Computer: DESKTOP4600

    Description:

    The open procedure for service "WmiApRpl" in DLL "C:\WINDOWS\System32\wbem\wmiaprpl.dll" has taken longer than the established wait time to complete. There may be a problem with this extensible counter or the service it is collecting data from or the system may have been very busy when this call was attempted.For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Event Type: Error

    Event Source: PerfNet

    Event Category: None

    Event ID: 2004

    Date: 9/10/2004

    Time: 10:31:35 AM

    User: N/A

    Computer: DESKTOP4600

    Description:

    Unable to open the Server service. Server performance data will not be returned. Error code returned is in data DWORD 0.For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

    Data:

    0000: 34 00 00 c0 4..À

    Event Type: Warning

    Event Source: MSSQL$ENP356

    Event Category: (8)

    Event ID: 19011

    Date: 9/10/2004

    Time: 10:24:56 AM

    User: N/A

    Computer: DESKTOP4600

    Description:

    The description for Event ID ( 19011 ) in Source ( MSSQL$ENP356 ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: (SpnRegister) : Error 1355.

  • I don't have a solution, but perhaps an alternative...

    Have assumed you have Visual Studio .Net. You can use this product to create/include MSDE in an installer package, see;

    http://support.microsoft.com/default.aspx?scid=kb;en-us;325004

    and some detailed notes on MSDE merge modules; 

    http://www.sqljunkies.com/Article/484612DD-0416-42C8-9695-9572CA762ED6.scuk

    I am about to go this path myself (install app and MSDE on clients) and intend to create installer package. Appears more complicated but hopefully will be more robust for end-users.

    Good luck.

  • Thanks for your response Oli -

    I think my problem is more with the uninstall process than with the install process.  Admittedly, there may be something I should be doing on the install end that would ensure success for the uninstall.  If there is, I'd love to know what that is.  My install runs successfully the first time I run it.  And with the current release of MSDE, MS seems to be requiring us to install MSDE by using their Setup.exe program: (from the ReadmeMSDE200A.htm file that comes with MSDE)

    "MSDE 2000 Release A does not include the merge modules that are sometimes used to embed earlier versions of MSDE 2000 in application setup utilities. To distribute the MSDE 2000 Release A files with applications, you must write an application setup wrapper utility that:

    - Calls Desktop Engine Setup.exe to install an instance of MSDE 2000 Release A.

    - Installs the application."

    The sqljunkies link that you offered talks about 24 MSDE merge modules, and MSDE doesn't seem to be delivered that way any longer.

    If I wanted to go the merge module route as you suggest, I'd have to use orca to dissect the 17 msi files (SqlRun01.msi - SqlRun17.msi) that come with MSDE.  As far as I have been able to tell, there's no documentation re what these files contain or options for changing them.  And I've found no documentation about how to change the UNinstall process.

    I have been able to successfully build MSDE Setup.exe and my app into a single install program, so that's not the problem.  I wanted to be sure that it wasn't something in my install program that was causing the problem, so I tried to just install MSDE.  The same problem (with uninstall/reinstall) occurs either way.

    Any other ideas/solutions to the problem??

    - Jeff

  • Hi -

    I seem to be making progress, but the problem is not yet solved.  I now am able to do an uninstall/reinstall of MSDE so the (reinstall) log file reports success.  Now, however, I am unable to start the reinstalled instance as a service.

    The change I made to get a successful reinstall was to have my install program install (and reinstall) MSDE with a blank password.  With a blank password, the reinstall reports success; with a non-blank password, it fails.  I was planning to have my app change the password when it is first run.

    But, again, I can't get the service to start.  Here's what I did:

    1. Installed MSDE (blank password)

    2. Rebooted --> the service started automatically

    3. Uninstalled MSDE using Add/Remove Programs in the Control Panel

    4. Deleted the Data directory for the instance

    5. Rebooted -->

            Problem: I got a Net Service Configuration Error

                        "The specified service does not exist

                          as an installed service."

                           For users wanting to simply remove my app and MSDE,

                           how do I prevent this message??

    6. Reinstalled MSDE (blank password)

    7. Rebooted (I didn't get the above Net Service Configuration Error)

    At this point, the log file reports success and the instance (ENP356) shows as an installed service (MSSQL$ENP356), but it's stopped.  When I try to start it using the Microsoft Management Console, I get:

    "The MSSQL$ENP356 service on Local Computer started and then stopped.  Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service."

    I also tried starting the service with net start.  I opened a cmd window and ran:

    net start MSSQL$ENP356

    The following lines were then displayed:

    The MSSQL$ENP356 service is starting.

    The MSSQL$ENP356 service could not be started.

    The service did not report an error.

    More help is available by typing NET HELPMSG 3534.

    OK, so when I typed NET HELPMSG 3534, the following (not very helpful) line was displayed:

    The service did not report an error.

    How can I get the reinstalled instance started??

    - Jeff

  • Even tho the MSDE service isn't returning an error to the service control, it may be dropping an error into the windows event log, or into the {msde install path}\logs directory. The details in either of these two locations will give you a lot more info.

    Also, you can try starting msde with minimal configuration using the command prompt options: -c -f . You should specify your master database with -d and a error log path with -e (so you get errors in a log file you can read). example:

    sqlserver.exe -c -f -dc:\msde\master.mdf -ec:\msde\logs\ERRORLOG


    Julian Kuiters
    juliankuiters.id.au

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply