SBC fails to install using a remote database server ROLL BACK

So far i have been testing the SBC using the express database that SBC installs, because i didnt want to much hassle to test the product itself.

At this point i have reached the point that i need to test the SBC in a replication of my production environment. (yes i have virtualisation luckily)

I am installing SBC in my test environment which is an exact copy of my production environment tho only the needed servers i replicated, the data on the servers is exactly the same:

Domain controller
File server (currently has ADNM installed, SBC is going to replace that)
Database server

In the test environment i uninstalled ADNM without problem and removed the AVAST database on the database server, but i left the instance running for the new database from SBC.

I started the installer.
Did the EXPERT setup.

Went on installing until i reached the database selection screen in the setup.
(accepting default settings because i want to test the database installation with this test)

I choose to use an excisting database server and clicked SEARCH.
In the dropdown i saw the servername from the database server itself, but without any instances.
so i selected the database server name and added \avast for the instance (excisting instance)

i clicked next and the program went installing when suddenly it did a rollback.

I checked the logfiles (see below) and found that the installation wants to login the database server as the computer account. This is ofcourse absolutely not wanted.
I have an SA account for this database from the ADNM installation and the account used to install SBC has the right to install databases in the instance.

Is this a BUG?
OR (and ofcourse its never the users fault ;)) do i do something wrong?

I installed SBC using the windows account that also has rights to go into the database instance and have fun in it (i.e. confirm the SSPI concept).


[Header - Application started at 04-aug-2011 09:58:46,783 local/09:58:46,783 UTC]
08-04 11:58:46,892 [1] INFO  SbcServiceInstaller - Installing main avast! Administration Console service.
08-04 11:58:47,002 [1] INFO  Net - Preferred NIC initialized: 192.168.100.121
08-04 11:58:47,017 [1] INFO  ConnectionStringFactory - Connection string read from stream: Data Source=BZW-DB-01\avast;Initial Catalog=avast_sbc_db;Integrated Security=SSPI;
08-04 11:58:47,080 [1] INFO  ConnectionStringFactory - Connection string read from stream: Data Source=BZW-DB-01\avast;Initial Catalog=avast_sbc_db;Integrated Security=SSPI;
08-04 11:58:47,142 [1] INFO  DatabaseInstaller - Checking for existing DB or creating a new one.
08-04 11:58:47,906 [1] ERROR SbcServiceInstaller - Problem while installing the service.
System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'BOZW\BZW-CL-000$'.
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.CreateDatabase()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.ClaimDatabase()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.Install()
   at Avast.Sbc.Service.SbcServiceInstaller.Install(IDictionary stateSaver)
08-04 11:58:48,155 [1] WARN  SbcServiceInstaller - Rolling back the installation
08-04 11:58:48,358 [1] INFO  Net - Trying to resolve fully qualified domain name.
08-04 11:58:48,405 [1] INFO  Net - Trying to find preferred NIC: 192.168.100.121
08-04 11:58:48,420 [1] INFO  Net - Preferred NIC 192.168.100.121 not found.
08-04 11:58:48,420 [1] INFO  Net - Parsed!
08-04 11:58:48,420 [1] INFO  Net - Using IP address 192.168.100.121.
08-04 11:58:48,420 [1] INFO  Net - Resolved DNS name bzw-cl-000.bozw.local, trying to verify reachability.
08-04 11:58:48,436 [1] INFO  Net - Target successfully reached using bzw-cl-000.bozw.local.
08-04 11:58:48,436 [1] INFO  Net - DNS name resolved to bzw-cl-000.bozw.local.
08-04 11:58:49,246 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation http://bzw-cl-000.bozw.local:8731/
08-04 11:58:49,246 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation https://bzw-cl-000.bozw.local:8732/
08-04 11:58:49,246 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation http://+:8731/Design_Time_Addresses/Avast.Sbc.Service.Core/SbcConnectionPoint/
08-04 11:58:49,246 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation https://+:8732/Design_Time_Addresses/Avast.Sbc.Service.Core/SbcConnectionPoint/
[Footer]

Its essential that i can install SBC database on the dedicated database server, and its dictating the final approving for buying the product extending my license.

I can use a temporary server with a local installed SBC database but that would be temporary clearly but this would not be more then 1 month possible.

At a less positive note:
The documentation about the database installation is extremely poor, even non-existent. Same goes for the installation options in the database part for the installer.
This exact same problem was present in the ADNM and has been mentioned in the forum more then once. In fact i had a wishlist in the ADNM part which addresses this too. Why has this been
ignored…

When i use a database discovery tool (QUEST DATABASE DISCOVERY WIZARD) i do find the database server together with the instances on that server.
When installing WSUS i can also choose from the db server WITH instances…

If this Quest program can do this and WSUS installer too, then it should be possible for the Avast installer to do this too. Has the trip to Redmond not covered this?

Can you show a screen shot of where you are entering the username(s) for it to login as on the SQL Express 2008 (I am assuming that is what you are using).

I could not get it to work either without using the system as the logon source. They stated this in their documentation I believe in the B2B portal.

thats the point, you cant fill in the username or password.
I remember one thread where was said that the DB login happens via SSPI (windows authentication) but that doesnt seem to work…

In my test environment i installed a new instance and gave all the accounts i have for services and all the rights to do everything on the database instance

then i got this in the logs, basicly the same (i just used a different computer name to install the sbc on)


[Header - Application started at 04-aug-2011 13:09:18,092 local/13:09:18,092 UTC]
08-04 15:09:18,154 [1] INFO  SbcServiceInstaller - Installing main avast! Administration Console service.
08-04 15:09:18,248 [1] INFO  Net - Preferred NIC initialized: 192.168.100.9
08-04 15:09:18,248 [1] INFO  ConnectionStringFactory - Connection string read from stream: Data Source=bzw-db-01\avast;Initial Catalog=avast_sbc_db;Integrated Security=SSPI;
08-04 15:09:18,264 [1] INFO  ConnectionStringFactory - Connection string read from stream: Data Source=bzw-db-01\avastsbc;Initial Catalog=avast_sbc_db;Integrated Security=SSPI;
08-04 15:09:18,264 [1] INFO  DatabaseInstaller - Checking for existing DB or creating a new one.
08-04 15:09:18,420 [1] ERROR SbcServiceInstaller - Problem while installing the service.
System.Data.SqlClient.SqlException (0x80131904): Login failed for user 'BOZW\BZW-FS-01$'.
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
   at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject)
   at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
   at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
   at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
   at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.SqlClient.SqlConnection.Open()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.CreateDatabase()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.ClaimDatabase()
   at Avast.Sbc.Service.Installer.DatabaseInstaller.Install()
   at Avast.Sbc.Service.SbcServiceInstaller.Install(IDictionary stateSaver)
08-04 15:09:18,482 [1] WARN  SbcServiceInstaller - Rolling back the installation
08-04 15:09:18,732 [1] INFO  Net - Trying to resolve fully qualified domain name.
08-04 15:09:18,764 [1] INFO  Net - Trying to find preferred NIC: 192.168.100.9
08-04 15:09:18,764 [1] INFO  Net - Preferred NIC 192.168.100.9 not found.
08-04 15:09:18,764 [1] INFO  Net - Parsed!
08-04 15:09:18,764 [1] INFO  Net - Using IP address 192.168.100.9.
08-04 15:09:18,764 [1] INFO  Net - Resolved DNS name bzw-fs-01.bozw.local, trying to verify reachability.
08-04 15:09:18,779 [1] INFO  Net - Target successfully reached using bzw-fs-01.bozw.local.
08-04 15:09:18,779 [1] INFO  Net - DNS name resolved to bzw-fs-01.bozw.local.
08-04 15:09:18,857 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation http://bzw-fs-01.bozw.local:8731/
08-04 15:09:18,873 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation https://bzw-fs-01.bozw.local:8732/
08-04 15:09:18,873 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation http://+:8731/Design_Time_Addresses/Avast.Sbc.Service.Core/SbcConnectionPoint/
08-04 15:09:18,873 [1] WARN  HttpAclInstaller - Unable to remove URL ACL reservation https://+:8732/Design_Time_Addresses/Avast.Sbc.Service.Core/SbcConnectionPoint/
[Footer]

I have EXACTLY the same error installing on a SBS 2011. I have a brand new DB server which will host all databases, would liuke this installation to work !

it seems the installer sends the wrong user account (in my cases the computer name is used instead of the logged in user account) to the database instance

I had the same impression

I had the same issue, see my thread at the following URL (which is at the bottom of the first page of threads ;)) http://forum.avast.com/index.php?topic=82004.0

Edit: just noticed you linked my thread in your FAQ thread, did what I do not work for yourself?

@OBJR thank you for emberrasing me :smiley: lol
no i have not tried this yet, i will do this tomorow when i am back at work and the test environment
After all the work i did besides the testing i had forgotten about your thread and solution :slight_smile:

despite that your work around solved your problem and assuming my problem tomorow too, this is not the way it should work i believe.
The installer should send the correct account to the database instance either by the current logged in user credentials or given credentials (since i use a windows account to login to servers which has no rights on databases itself a given account would be the best sollution else i have to login with an account that has the correct credentials (which i have been trying))

btw: have you set any special permissions when you added the local group to the instance? (maybe a screenshot would be nice?)
Have you also tried with an AD domain local group or global group instead of a machine local group? I will try that first tomorow

hehe sorry about that :wink:

Yeah I totally it’s broke & shouldn’t work like that. It should either ask for credentials, use the logged on user or as a third option offer a separate file you can run on the SQL server to create the DB. I believe RIM (Blackberry) use this option for there BES software iirc.

I didn’t try an AD group just because I didn’t want it hanging around in AD. But I think it should work fine? We have other AD Groups set-up with logins on our SQL server for other things…

Nope the only permission I gave the group in SQL was the ability to create DB’s :slight_smile:

Hope this helps

dont worry, ill survive another emberrasement :wink:

A test connection button would be nice to have there with it too since now it accepts whatever databaseserver and instance you tell it to use and then rollsback cancelling the installation.

As you can read in the SBC FAQ (which is sticky now YAY!) i adjusted the point to 2 workarounds (and moved it more to the top), workaround 1 being your machine local group and workaround 2 a domain local group which i found out working.