Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.

Setting Up a Backend Failover Solution

Created: 12 Jul 2011 • Updated: 31 Oct 2011 | 24 comments
Language Translations
Dwight Tanner's picture
+3 3 Votes
Login to vote

The Symantec Streaming Server includes a standalone data access component that provides backup for the Streamlet Engine. However, when the Streamlet Engine is down, the administrator cannot perform all of the necessary administrative tasks through the data access component. Therefore, if a failure occurs in the backend server system, an automatic method for recovering the configuration setup is not available for the Streamlet Engine.

To provide automatic recovery, you can create and configure a separate multi-node backend server in a cluster environment. This multi-node Backend server then functions as a form of disaster recovery. This document details the process of creating and configuring this backend failover solution.

Setting up a backend failover solution

Before you begin the process for setting up a backend failover solution, ensure that all clusters are configured and functioning properly.

Table 1-1 details the process for setting up a backend failover solution.

Table 1-1 Process for setting up a backend failover solution

Step Action Description
Step 1 Create an empty service in the cluster. Launch the Failover Cluster Manager and create an empty service.
See "Creating an empty service in the cluster"
Step 2 Add a shared storage to the service. Add shared storage to the service and bring online.
See "Adding a shared storage to the service"
Step 3 Install the multi-node backend server on cluster node 1. Install and configure the service onto cluster node 1.
See "Installing the multi-node backend server on cluster node 1"
Step 4 Install the multi-node backend server on cluster node 2. Install and configure the service onto cluster node 2.
See "Installing the multi-node backend server on cluster node 2"
Step 5 Add the AWE services. Add the three AWE services to the server and configure.
See "Adding the AWE services"

Creating an empty service in the cluster

To create an empty service in the cluster

  1. Go to Node 1 in the cluster.
  2. On the Start menu, click All Programs > Administrative Tools > Failover Cluster Manager to launch the Failover Cluster Manager tool.
  3. In the left pane menu, right-click the Service and Applications link and then click More Actions > Create Empty Service or Application. The newly created service or application now appears in the Services and application pane.
  4. Right-click the newly created service and click Add a resource > Client Access Point.
  5. In the New Resource Wizard window, enter a network name for the server. You now access the console and STE by this name only.
  6. Click Next and complete the New Resource Wizard.

Adding a shared storage to the service

To add shared storage to the service

  1. In the center pane, right-click the newly created service and click Add storage.
  2. In the Add Storage window, select from the available shared storage in the cluster. Check the selected storage, and click OK.
  3. After the storage has been successfully configured to the newly created service, the service needs to be brought online. To bring the service online, right-click the newly created service and click Bring this service or application online. Both the storage and the service status should update to Online.
  4. To change the name of the service, right-click the newly created service and click Properties. Enter a name for the service and click OK.
  5. Add the name of the service in your DNS server.
  6. You can test the connection by pinging to the service IP address which should reply back properly. Likewise, verify that the newly created service moves from cluster node 1 to cluster node 2. This newly created service now serves as a multi-node backend server.

Installing the multi-node backend server on cluster node 1

To install the multi-node backend server on cluster node 1

  1. Copy the Symantec Streaming Server setup to a local computer and run the installer.
  2. In the Destination Folder window, click Change.
  3. Change the installation folder to a shared storage drive and click Next.
  4. In the Server Configuration window, select MultiNode Backend and click Next.
  5. In the Network Settings window, select the IP address of the newly created service. The Streamlet Engine and the Console service are installed and configured only to this IP address. Click Next.
  6. In the Streaming service configuration with Database window, select Create Streaming Server only. Click Next.
  7. Proceed with installation and restart the computer.

Installing the multi-node backend server on cluster node 2

After you restart cluster node 1, the client access point service automatically moves to cluster node 2. The shared storage also moves to cluster node 2.

To install the multi-node backend server on cluster node 2

  1. Copy the Symantec Streaming Server setup to a local computer and run the installer.
  2. In the Destination Folder window, click Change.
  3. Change the installation folder to the same shared storage drive that was selected in cluster node 1 and click Next.
  4. A pop-up window appears stating that the "Installation folder you have chosen is not empty." Click OK. By choosing the same shared storage path, you allow the server installer to rewrite all the files in the same storage path. This shared storage path allows all Awe Agent, Awe Console, and Awe Streamlet Engine services to run properly in both cluster nodes.
  5. In the Server Configuration window, select MultiNode Backend and click Next.
  6. In the Network Settings window, select the same IP address of the newly created service. Click Next.
  7. In the Streaming service configuration with Database window, select Create Streaming Server and DB instance. Click Next.
  8. In the Database Configuration window, choose SQL 2005 for the database. Click Next and complete the installation.

Warning: Do not restart the computer after installing this server. Restarting the computer leaves all of the services in stopped state.

Adding the AWE services

To add the AWE services

  1. Open the Failover Cluster Manager Tool.
  2. Right-click the newly created service and click Add a resource > Generic Service.
  3. In the Select Service window, select AWE Agent and click Next.
  4. Follow the same steps to add the AWE Console and AWE Streamlet.
  5. After you add all three AWE services, bring them online by right-clicking on each service and clicking Bring this service or application online.
  6. Launch the Streaming Server console and configure the server.

Comments 24 CommentsJump to latest comment

Palvaran's picture

Hey Dwight,

This was a fantastic article and motivated us to build a replacement SWS box using multi node front and back ends.  However, we are stuck at, "In the Streaming service configuration with Database window, select Create Streaming Server and DB instance. Click Next."

When we follow the steps and plugin using 3 different SQL Servers, we get failed results each time.  We have tried allowing the installer to create the database and we have also tried creating the instance and database and plugging into it for a SQL 2005 box and a SQL 2008 box, but neither work using the SA account (Is NTLM still broken in Appstream?).  The errors we are experience always say the following:

However, when we check the shared drive, there is no log file created, but everything else is there.  We have even tried to take our working dc.conf file from our production SWS server and modify the SQL section, but to no avail.  Any ideas would be greatly appreciated, thanks much!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

Hi,

  Is the S:\ drive (which is your shared storage) showing as a fixed drive or as a network drive?  Server installation will fail, if you try to install it in mapped network drive.  Looking at the error message, it's nothing to do with the database connection but on creating the files/folders in the specified path itself.

 i) Did you see any files or folders created in the S:\ ?

ii)  From your screen shot, it looks your installing the server in the root drive instead of folders. If your server machine is in windows 2008+, then writing files and folders will fail.  Can you change the installation directory to S:\Symantec\Workspace Streaming\Server and then carry out the installation? If you choose this path, then you should see the log file created.

iii) If you have awesetuplog.txt in %temp% folder, can you post it here?

+1
Login to vote
Palvaran's picture

Thanks for the reply!

The S Drive is an iSCSI Connection to our NAS.

i)  Using the guide above, we were able to create the files and folders for the first node and no errors were detected.  Then, when we use the second node to overwrite the files and connect to the database, we get the screenshot above.  Next, I followed the database schema script per the above screenshot and ran a command line of

S:\streamletengine\bin>CreateDatabaseSchema.cmd sa "MYPASSWORD" master mssql2005 "MYPASSWORD"

It appeared to create the schema and reported no errors in the command shell.  However, when reinstalling over that database it appears to give the same error as the screenshot above.

ii)  OS = Windows 2008 R2.  It does write many files and folders to the drive though?

iii)  Log will appear in the next post!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

=== Logging started: 9/16/2011  16:40:16 ===
Action 16:40:16: INSTALL.
Action 16:40:16: SystemFolder.30729.4148.Microsoft_VC90_OpenMP_x86.QFE.A0B0BCE9_2994_36F2_BE66_D23C884372E8.
Action 16:40:16: WindowsFolder.30729.4148.Microsoft_VC90_OpenMP_x86.QFE.A0B0BCE9_2994_36F2_BE66_D23C884372E8.
Action 16:40:16: SystemFolder.30729.4148.Microsoft_VC90_MFC_x86.QFE.1B1242B0_08E9_3D59_826D_ADAA4BB763B5.
Action 16:40:16: WindowsFolder.30729.4148.Microsoft_VC90_MFC_x86.QFE.1B1242B0_08E9_3D59_826D_ADAA4BB763B5.
Action 16:40:16: SystemFolder.30729.4148.Microsoft_VC90_MFCLOC_x86.QFE.1D3B0A01_2635_3323_932D_3D66D5C4B0FD.
Action 16:40:16: WindowsFolder.30729.4148.Microsoft_VC90_MFCLOC_x86.QFE.1D3B0A01_2635_3323_932D_3D66D5C4B0FD.
Action 16:40:16: SystemFolder.30729.4148.Microsoft_VC90_CRT_x86.QFE.AA2EBBCC_4E3B_3442_865E_7BB3E9F45F0C.
Action 16:40:16: WindowsFolder.30729.4148.Microsoft_VC90_CRT_x86.QFE.AA2EBBCC_4E3B_3442_865E_7BB3E9F45F0C.
Action 16:40:16: WindowsFolder.30729.4148.Microsoft_VC90_ATL_x86.QFE.0901F145_82C9_3BF6_A91B_31F6791950EA.
Action 16:40:16: SystemFolder.30729.4148.Microsoft_VC90_ATL_x86.QFE.0901F145_82C9_3BF6_A91B_31F6791950EA.
Action 16:40:16: ISMsiServerStartup.
Action 16:40:16: ISStartup.
Action 16:40:20: DLLWrapStartup.
Action 16:40:20: ISSetAllUsers.
Action 16:40:20: ScanIPs.
Action 16:40:21: DoPopulateIPCombo.
Action 16:40:21: AppSearch. Searching for installed applications
Action 16:40:21: LaunchConditions. Evaluating launch conditions
Action 16:40:21: SetupInitialization.
Action 16:40:21: SetupInitialization. Dialog created
Action 16:40:21: FindRelatedProducts. Searching for related applications
Action 16:40:21: ValidateProductID.
Action 16:40:21: CostInitialize. Computing space requirements
Action 16:40:21: FileCost. Computing space requirements
Action 16:40:21: IsolateComponents.
Action 16:40:21: setUserProfileNT.
Action 16:40:21: ResolveSource.
Action 16:40:21: setAllUsersProfile2K.
Action 16:40:21: CostFinalize. Computing space requirements
Action 16:40:22: SetARPReadme.
Action 16:40:22: MigrateFeatureStates. Migrating feature states from related applications
Action 16:40:22: DoUpdateInstallStates.
Action 16:40:22: InstallWelcome.
Action 16:40:22: InstallWelcome. Dialog created
Action 16:40:25: LicenseAgreement. Dialog created
Action 16:40:26: DestinationFolder. Dialog created
Action 16:40:27: InstallChangeFolder. Dialog created
Action 16:40:47: DoCheckForEmptyInstalldir.
Action 16:40:47: InstallDirNotEmptyWarning. Dialog created
Action 16:40:54: SetupType. Dialog created
Action 16:40:59: DoGetNextDialog.
Action 16:40:59: TypicalSetupParams. Dialog created
Action 16:41:05: DoCheckPortConflict.
Action 16:41:05: DoPopulateInstallSummary.
Action 16:41:05: DoGetNextDialog.
Action 16:41:05: SelectDatabaseOption. Dialog created
Action 16:41:23: DoGetNextDialog.
Action 16:41:23: SelectDBServer. Dialog created
Action 16:41:24: DoGetNextDialog.
Action 16:41:24: MSSQLServerSelect. Dialog created
Action 16:41:42: DoCheckPortConflict.
Action 16:41:42: DoCheckSQLDBPassword.
Action 16:41:42: DoGetNextDialog.
Action 16:41:42: DoPopulateInstallSummary.
Action 16:41:42: ReadyToInstall. Dialog created
Action 16:41:44: DoConvertHosttoIP.
Action 16:41:44: SetupProgress.
Action 16:41:44: SetupProgress. Dialog created
Action 16:41:44: ExecuteAction.
Action 16:41:44: INSTALL.
Action 16:41:44: SystemFolder.30729.4148.Microsoft_VC90_OpenMP_x86.QFE.A0B0BCE9_2994_36F2_BE66_D23C884372E8.
Action 16:41:44: SystemFolder.30729.4148.Microsoft_VC90_MFC_x86.QFE.1B1242B0_08E9_3D59_826D_ADAA4BB763B5.
Action 16:41:44: SystemFolder.30729.4148.Microsoft_VC90_MFCLOC_x86.QFE.1D3B0A01_2635_3323_932D_3D66D5C4B0FD.
Action 16:41:44: SystemFolder.30729.4148.Microsoft_VC90_CRT_x86.QFE.AA2EBBCC_4E3B_3442_865E_7BB3E9F45F0C.
Action 16:41:44: SystemFolder.30729.4148.Microsoft_VC90_ATL_x86.QFE.0901F145_82C9_3BF6_A91B_31F6791950EA.
Action 16:41:44: ISMsiServerStartup.
Action 16:41:44: ISStartup.
Action 16:41:45: DLLWrapStartup.
Action 16:41:46: ISSetAllUsers.
Action 16:41:46: AppSearch. Searching for installed applications
Action 16:41:46: LaunchConditions. Evaluating launch conditions
Action 16:41:46: FindRelatedProducts. Searching for related applications
Action 16:41:46: DoSetSSIPForDB.
Action 16:41:46: DoCreateComponentGuids.
Action 16:41:46: DoSetMgmtBAPassword.
Action 16:41:46: DoSetArpInstallLocation.
Action 16:41:46: DoSetInstallDirNoSpaces.
Action 16:41:46: DoSetJarFiles.
Action 16:41:46: DoSetInstallDirAgent.
Action 16:41:46: DoSetInstallDirRoot.
Action 16:41:46: DoSetInitializeDBPropertyMS.
Action 16:41:46: DoSetDefaultServerCommand.
Action 16:41:46: DoSetDBCreateServiceCommand.
Action 16:41:46: DoSetDBDeleteServiceCommand.
Action 16:41:46: DoSetInstallDirConsole.
Action 16:41:46: SetInstallDirClientSetup.
Action 16:41:46: DoSetInstallDirRollbackMiscFiles.
Action 16:41:46: DoSetInstallDirStreamingServer.
Action 16:41:46: DoSetInstallDirLaunchServer.
Action 16:41:46: DoSetInstallDirWinStreamletEngine.
Action 16:41:46: DoSetInstallDirWinStreamingServer.
Action 16:41:46: DoSetInstallDirSSL.
Action 16:41:46: DoSetCommonData.
Action 16:41:47: DoSetMgmtCertDir.
Action 16:41:47: DoSetLicenseFileData.
Action 16:41:47: DoSetMoveLogData.
Action 16:41:47: ValidateProductID.
Action 16:41:47: setUserProfileNT.
Action 16:41:47: setAllUsersProfile2K.
Action 16:41:47: DoSetAgentData.
Action 16:41:47: DoSetDAGuidData.
Action 16:41:47: DoSetTomcatData.
Action 16:41:47: DoSetDAData.
Action 16:41:48: DoSetDBServerData.
Action 16:41:49: DoSetWindowsStreamingServerData.
Action 16:41:49: WindowsFolder.30729.4148.Microsoft_VC90_ATL_x86.QFE.0901F145_82C9_3BF6_A91B_31F6791950EA.
Action 16:41:49: WindowsFolder.30729.4148.Microsoft_VC90_CRT_x86.QFE.AA2EBBCC_4E3B_3442_865E_7BB3E9F45F0C.
Action 16:41:49: WindowsFolder.30729.4148.Microsoft_VC90_MFCLOC_x86.QFE.1D3B0A01_2635_3323_932D_3D66D5C4B0FD.
Action 16:41:49: WindowsFolder.30729.4148.Microsoft_VC90_MFC_x86.QFE.1B1242B0_08E9_3D59_826D_ADAA4BB763B5.
Action 16:41:49: WindowsFolder.30729.4148.Microsoft_VC90_OpenMP_x86.QFE.A0B0BCE9_2994_36F2_BE66_D23C884372E8.
Action 16:41:49: CostInitialize. Computing space requirements
Action 16:41:49: FileCost. Computing space requirements
Action 16:41:49: IsolateComponents.
Action 16:41:49: CostFinalize. Computing space requirements
Action 16:41:50: SetODBCFolders. Initializing ODBC directories
Action 16:41:50: MigrateFeatureStates. Migrating feature states from related applications
Action 16:41:50: DoUpdateInstallStates.
Action 16:41:50: InstallValidate. Validating install
Action 16:41:50: DoSetSTEConsoleURL.
Action 16:41:50: DoAddRemoveDAService.
Action 16:41:50: DoSetSTEInstallingProperty.
Action 16:41:50: DoSetLaunchServerData.
Action 16:41:50: SetARPReadme.
Action 16:41:50: RemoveExistingProducts. Removing applications
Action 16:41:50: InstallInitialize.
Action 16:41:51: OnMoving.
Action 16:41:51: GenerateScript. Generating script operations for action:
Action 16:41:51: AllocateRegistrySpace. Allocating registry space
Action 16:41:51: ProcessComponents. Updating component registration
Action 16:41:51: UnpublishComponents. Unpublishing Qualified Components
Action 16:41:51: MsiUnpublishAssemblies. Unpublishing assembly information
Action 16:41:51: UnpublishFeatures. Unpublishing product features
Action 16:41:51: StopServices. Stopping services
Action 16:41:51: DeleteServices. Deleting services
Action 16:41:51: UnregisterComPlus. Unregistering COM+ Applications and Components
Action 16:41:51: DoCheckForDisabledServices.
Action 16:41:51: SelfUnregModules. Unregistering modules
Action 16:41:51: UnregisterTypeLibraries. Unregistering type libraries
Action 16:41:51: RemoveODBC. Removing ODBC components
Action 16:41:51: UnregisterFonts. Unregistering fonts
Action 16:41:51: RemoveRegistryValues. Removing system registry values
Action 16:41:51: UnregisterClassInfo. Unregister class servers
Action 16:41:51: UnregisterExtensionInfo. Unregistering extension servers
Action 16:41:51: UnregisterProgIdInfo. Unregistering program identifiers
Action 16:41:51: UnregisterMIMEInfo. Unregistering MIME info
Action 16:41:51: RemoveIniValues. Removing INI file entries
Action 16:41:51: RemoveShortcuts. Removing shortcuts
Action 16:41:51: RemoveEnvironmentStrings. Updating environment strings
Action 16:41:51: RemoveDuplicateFiles. Removing duplicated files
Action 16:41:51: RemoveFiles. Removing files
Action 16:41:51: RemoveFolders. Removing folders
Action 16:41:51: DoRemoveExtraMiscFiles.
Action 16:41:51: DoRollbackMiscFiles.
Action 16:41:51: DoRollbackStreamletEngine.
Action 16:41:51: DoRollbackMgmtConsole.
Action 16:41:51: DoRollbackAgent.
Action 16:41:51: DoRollbackDCI.
Action 16:41:51: DoRemoveMiscExtraFilesNew.
Action 16:41:51: DoRollbackMiscFilesNew.
Action 16:41:51: CreateFolders. Creating folders
Action 16:41:51: MoveFiles. Moving files
Action 16:41:51: InstallFiles. Copying new files
Action 16:41:53: DuplicateFiles. Creating duplicate files
Action 16:41:53: PatchFiles. Patching files
Action 16:41:53: DoMoveLog.
Action 16:41:53: BindImage. Binding executables
Action 16:41:53: CreateShortcuts. Creating shortcuts
Action 16:41:53: RegisterClassInfo. Registering class servers
Action 16:41:53: RegisterExtensionInfo. Registering extension servers
Action 16:41:53: RegisterProgIdInfo. Registering program identifiers
Action 16:41:53: RegisterMIMEInfo. Registering MIME info
Action 16:41:53: WriteRegistryValues. Writing system registry values
Action 16:41:53: WriteIniValues. Writing INI file values
Action 16:41:53: WriteEnvironmentStrings. Updating environment strings
Action 16:41:53: RegisterFonts. Registering fonts
Action 16:41:53: InstallODBC. Installing ODBC components
Action 16:41:53: RegisterTypeLibraries. Registering type libraries
Action 16:41:53: RegisterComPlus. Registering COM+ Applications and Components
Action 16:41:53: DoCreateAgentAccessKey2.
Action 16:41:53: DoCreateUserRepository3. Setting up initial console user account.
Action 16:41:53: DoEncryptDAConfPassword.
Action 16:41:53: DoUpdateAgentConf. Setting Agent Configuration Options
Action 16:41:53: DoUpdateConsoleConf. Setting Console Configuration Options
Action 16:41:53: DoUpdateDBServerConf. Setting Streamlet Engine Configuration Options
Action 16:41:53: DoUpdateDAConf.
Action 16:41:53: DoUpdateDAGuid.
Action 16:41:53: DoUpdateJarFiles.
Action 16:41:53: DoUpdateMSInstalldir.
Action 16:41:53: DoCopyJarFiles.
Action 16:41:53: DoCreateSSLCert. Setting up communication parameters.
Action 16:41:53: DoRemoveExtraSSLFiles.
Action 16:41:53: InstallServices. Installing new services    ....  Please Do not cancel at this stage
Action 16:41:53: StartServices. Starting services
Action 16:41:53: SelfRegModules. Registering modules
Action 16:41:53: RegisterUser. Registering user
Action 16:41:53: DoInitializeDBDLLJava.
Action 16:41:53: DoSetConnectionStatusSchema.
Action 16:41:53: DoCreateInitialComponents. Setting up default components
Action 16:41:53: DoAddDefaultSTEToDB. Setting up the initial Streamlet Engine
Action 16:41:53: DoSetConnectionStatusData.
Action 16:41:53: DoServerNameUCUpgrader. Updating ServerNames
Action 16:41:53: DoUpdateConsoleServerXML.
Action 16:41:53: DoUpdateSTEServerXML.
Action 16:41:53: DoUpdateJBossServerXML.
Action 16:41:53: RegisterProduct. Registering product
Action 16:41:53: PublishComponents. Publishing qualified components
Action 16:41:53: MsiPublishAssemblies. Publishing assembly information
Action 16:41:53: PublishFeatures. Publishing product features
Action 16:41:53: PublishProduct. Publishing product information
Action 16:41:53: OnMoved.
Action 16:41:53: InstallFinalize.
Action 16:41:53: OnMoving.
Action 16:41:53: ProcessComponents. Updating component registration
Action 16:41:53: RemoveODBC. Removing ODBC components
Action 16:41:53: DoRollbackMiscFiles.
Action 16:41:53: DoRollbackStreamletEngine.
Action 16:41:53: DoRollbackMgmtConsole.
Action 16:41:53: DoRollbackAgent.
Action 16:41:53: DoRollbackDCI.
Action 16:41:53: DoRemoveMiscExtraFilesNew.
Action 16:41:53: DoRollbackMiscFilesNew.
Action 16:41:53: CreateFolders. Creating folders
Action 16:41:54: InstallFiles. Copying new files
Action 16:42:03: DuplicateFiles. Creating duplicate files
Action 16:42:03: DoMoveLog.
Action 16:42:03: CreateShortcuts. Creating shortcuts
Action 16:42:03: WriteRegistryValues. Writing system registry values
Action 16:42:03: WriteIniValues. Writing INI file values
Action 16:42:03: WriteEnvironmentStrings. Updating environment strings
Action 16:42:03: RegisterFonts. Registering fonts
Action 16:42:03: DoCreateAgentAccessKey2.
Action 16:42:04: DoCreateUserRepository3. Setting up initial console user account.
Action 16:42:05: DoEncryptDAConfPassword.
Action 16:42:05: DoUpdateAgentConf. Setting Agent Configuration Options
Action 16:42:05: DoUpdateConsoleConf. Setting Console Configuration Options
Action 16:42:06: DoUpdateDBServerConf. Setting Streamlet Engine Configuration Options
Action 16:42:06: DoUpdateDAConf.
Action 16:42:06: DoUpdateDAGuid.
Action 16:42:06: DoUpdateJarFiles.
Action 16:42:06: DoUpdateMSInstalldir.
Action 16:42:06: DoCopyJarFiles.
Action 16:42:06: DoCreateSSLCert. Setting up communication parameters.
Action 16:42:06: DoRemoveExtraSSLFiles.
Action 16:42:06: InstallServices. Installing new services    ....  Please Do not cancel at this stage
Action 16:42:06: DoInitializeDBDLLJava.
Action 16:42:07: DoSetConnectionStatusSchema.

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

We retried the installation using S:\Symantec\Workspace Streaming\Server and it seemed to go through without any errors.  We added the cluster resource for it and it's up from what we can tell except we are at the configuring of the console part.  We will work on it more tomorrow, but I just wanted to post that your tip was splendid, thanks so much!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

I'm glad it worked for you.  Please keep us posted if you ran into any issue, I'm happy to help you on this :)

+1
Login to vote
Palvaran's picture

Current Results:

Back End was installed, but Engine appears to not be functioning fully.  Database is Up, but Streamlet Engine shows [Init Error].

The Clusterr shows all resources are online.

Services are up and we changed the Engine to run as a domain admin so that we can use it for access to network drives per our other streaming servers.

When logging in as the inital admin it won't let you configure anything, probably due to the Engine not being fully online.

Any ideas?

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

Good Morning,

We are still stuck at the first stage after initial login using the "admin" without a password stage, but are unable to perform any action or any configuration due to the Streamlet Engine failing.  We have tried changing the Host Name/IP Address from "All Local IPs" to the Cluster Service Name "AltirisCAP", but get a new error stating the GUID is incorrect.  Any ideas?

The link to download the dci_all.log is at http://www.owlnet.rice.edu/~fg2/dci_all.log

Thanks!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

I need more information to understand the problem. 

1. Hope you have created a client access point in the cluster and added the BackEnd services as Generic services in the cluster.  While creating client access point, you would have given Ip address and name for the BackEnd service.  Can you tell me what is the BackEnd Server Name and the Ip address you gave in the cluster?

2. While installing the server in multinic environment you can choose only the ip address and cannot give the host name.  What is the ip address you choose for installing the server? Is 10.128.195.92 the Generic service ip you configured for the backEnd?

3. What option did you choose while installing the the server in second machine? Did you choose option 1 or some other option? If it's option 1, then all the server components should get updated properly in the database with a proper component id. 

4. Can you change the Streamelet Engine service account back to Local Account instead of domain account and check?

5. can you goto database | Appstream | as_component table and find the STE components Host Address and Bind Address?  If host_name field name is not same as the ClusterService IP, goto console and give this ip address in the StreamletEngine basic configuration screen, instead of clusterservice name.

I looked at your log file and it throws error regarding as_component_group table, which I'm not clear at this point.  If you can provide me the answers, can figure out what might be the problem and help you fix the issue.

+1
Login to vote
Palvaran's picture

Okie doke, answers below.

1.  Yes, we created a client access point and named it AltirisCAP.  In our case, the IP is 10.128.95.92.  The Cluster Name is AltirisBE and its IP is 10.128.95.90.  The two nodes connecting to the Cluster are AltirisBE1 (10.128.95.85) and AltirisBE2 (10.128.95.86).

2.  We chose the Client Access Point (10.128.95.92) for the NIC when installing Workspace Streaming.

3.  We updated the Schema since it was still giving the Schema errors from above by running the following command:  "S:\streamletengine\bin>CreateDatabaseSchema.cmd sa "XXXXXXXX" master mssql2005 "XXXXXXXXX""

Then, based on the article above we did the following:

To install the multi-node backend server on cluster node 2

  1. Copy the Symantec Streaming Server setup to a local computer and run the installer.
  2. In the Destination Folder window, click Change.
  3. Change the installation folder to the same shared storage drive that was selected in cluster node 1 and click Next.
  4. A pop-up window appears stating that the "Installation folder you have chosen is not empty." Click OK. By choosing the same shared storage path, you allow the server installer to rewrite all the files in the same storage path. This shared storage path allows all Awe Agent, Awe Console, and Awe Streamlet Engine services to run properly in both cluster nodes.
  5. In the Server Configuration window, select MultiNode Backend and click Next.
  6. In the Network Settings window, select the IP address of the newly created service (10.128.95.92). Click Next.
  7. In the Streaming service configuration with Database window, select Create Streaming Server and DB instance. Click Next.
  8. In the Database Configuration window, choose SQL 2005 for the database. Click Next and complete the installation.
    1. Host Name = 10.140.93.50
    2. User Name = sa
    3. Password = XXXXXXXXX
    4. Port = 1433
    5. Instance Name = svs
    6. Streaming Database Password = XXXXXXX

4.  I updated the service account from the Streamlet Engine back to Local System and I reuploaded the dci_all.log file to http://www.owlnet.rice.edu/~fg2/dci_all.log

5.  The database shows asuser.as_component and dbo.as_component which makes sense because of the schema creation from above added the asuser.  Unfortunately, asuser.as_component shows no data whatsoever when I do a query.  Contrastingly, the dbo.as_component shows the host name as 10.128.95.92 and a matching bind address.

Just for curiosity's sake, I performed the same Query on our production Workspace Streaming server which is serving out our packages across the campus and saw that it has two entries.  FYI, the single IP is four 1GB NICs bound together using LACP.

If you can help us figure this out I would greatly appreciate it.  I would like to demonstate a full production load balanced streaming with high availability to an upcoming user group meeting.

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

Hey Palvaran,

 From the log it looks, streamlet engine is trying to access the database instance via user "sa" and not "asuser". 

From the Dci_log:-  torque.dsfactory.appstream.connection.url = jdbc:jtds:sqlserver://${appstream.database.host}:${appstream.database.port};DatabaseName=${appstream.database.name};instance=svs
 torque.dsfactory.appstream.connection.user = sa
  

When you install the server choosing option 1, then it's suppose to create asuser and STE communicate with database via that user only.   Now your seeing init error in STE, because it's to able to communicate with the database and it might be due to wrong user in the da.conf file or some other issue, which I'm not sure at this point.

Your comment: We updated the Schema since it was still giving the Schema errors from above by running the following command:  "S:\streamletengine\bin>CreateDatabaseSchema.cmd sa "XXXXXXXX" master mssql2005 "XXXXXXXXX""

Can you tell me what you meant by update the database schema or what changes you did in the schema?  STE Init error is happening, because it's not able to connect to the database with the given user credentials or some other issue connecting to the DB.

What I would suggest you is, drop the database "appstream" under the SVS instance completely.  Uninstall the server in Node2.  Now copy the SWS setup to local machine and install the server in Shared drive and choose option 1.  I think, database and tables has got into bad state with some schema modification.  

I've tried this with Default Instance and not with named instance, but it should not matter. Try dropping the database and reinstall the server.  In the mean time, I'll try and figure out the cause.

+1
Login to vote
Palvaran's picture

Hey Ganesh, thanks for the help.  We tried uninstall Node 2, dropping the database, and reinstalling using Option 1 to the svs instance, but received the following error:

We performed the database schema option again using "CreateDatabaseSchema.cmd sa XXXXXXXX master mssql2005 XXXXXXX

I have placed both the EncryptDAConfPassword.log and CreateAppstreamSchema.log at http://www.owlnet.rice.edu/~fg2/CreateAppstreamSchema.log and http://www.owlnet.rice.edu/~fg2/EncryptDAConfPassword.log

Any ideas on what can we try next or what files to send to analyze?  Thanks!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

Hi,

   It looks after "create_appstream-user.sql" script runs "asuser" is not created properly has problem with access permission.In the CreateAppstreamSchema.log file I could read

"2011-09-30 13:25:28,477 ERROR          CreateAppstreamSchema.java.390  - Failure. java.sql.SQLException: Cannot open database "appstream" requested by the login. The login failed.

It's the same error your getting when you ran from GUI (using option1) and creating the database from command prompt using the createdatabaseschema.cmd file.

It seems DaEncryption part was done successfully and asuser piece should got updated in the da.conf file.  Can you goto the database\svc instance and check whether database "appstream" was created and in that under users "asuser" was created.  If it's successfuly, then using sql 2005 management studio try login into the SVC\Appstream database "asuser" with the password you gave.   I suspect either the password you gave is not in sync with your password policy or some problem in encyrption/decryption of the password. 

If you didn't see the asuser or not able to login with the password you set, then need to drop the database again.  If you're able to login using "asuer" to the appstream database check whether you're able to create dummy table into 'appstream' database from management studio.

If none of the tricks works, then you can log a ticket with support team so they can co-ordinate and if needed can do webex and resolve it.  As always, you can keep posting here and I'm happy to help you.

+1
Login to vote
Palvaran's picture

Good Morning Ganesh,

Great advice; I think you are dead on again.  It does appear to be the asuser does not have permissions to the database somehow or the password is scrambled.  I checked and the database does get created and the asuser does indeed get an account.

However, creating an ODBC connection to the svs instance using the asuser credentials fails.

Ironically, if I connect using the sa credentials with the exact same password specified during the Schema script, it works.

At this point I guess there are two options:

1)  Is there a way to force the sa account to be used rather than the asuser account for all operations of the engine and whatnot?

2)  What is the process of updating the password or hash so that they match for the asuser?

Thanks again Ganesh!  You have been a big help.  It is must appreciated sir!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

But still no go when I connect using ODBC with asuser and newly reset password.

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

Hey Ganesh,

Here is the SQL portion of the DA.conf file after installation.  I am not sure why one of the areas is commented out.  I am guessing it is possible to simply overwrite asuser with sa to use that account instead?  Is that right?  Also, what about the passwords?  Why are there two different password files with different values and one commented out?  Is the commented one the sa account?

# ===================================================================
#  Microsoft SQL Server 2005 Configuration
# ===================================================================

torque.database.appstream.adapter=mssql
appstream.database.host=XXXXXXXXXXXXXX
appstream.database.port=XXXXXXXXXXXXXX
torque.dsfactory.appstream.connection.driver=net.sourceforge.jtds.jdbc.Driver
torque.dsfactory.appstream.connection.url=jdbc:jtds:sqlserver://${appstream.database.host}:${appstream.database.port};DatabaseName=${appstream.database.name};instance=svs
torque.dsfactory.appstream.connection.user=asuser
#torque.dsfactory.appstream.connection.password = WsDkEh19jDohJ9OKEoBV6NtexD7CiDk7
torque.dsfactory.appstream.connection.password=8+vi5QboOMYJoTSG/MLrUA==
torque.dsfactory.appstream.connection.poolPreparedStatements=true

torque.dsfactory.appstream.pool.maxActive=200
torque.dsfactory.appstream.pool.maxIdle=5
torque.dsfactory.appstream.pool.testOnBorrow=false
torque.dsfactory.appstream.pool.testOnReturn=false
torque.dsfactory.appstream.pool.testWhileIdle=true
torque.dsfactory.appstream.pool.validationQuery=SELECT 1
torque.dsfactory.appstream.pool.maxWait=1000
torque.dsfactory.appstream.pool.minEvictableIdleTimeMillis=120000
torque.dsfactory.appstream.pool.timeBetweenEvictionRunsMillis=20000
torque.dsfactory.appstream.pool.numTestsPerEvictionRun=-4

torque.manager.useCache=true

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

In previous versions when the server installer creates asuser in the database, we run it with a default password we set and that values was encoded. Recently, we changed it by accepting the password from the user which you enter during the server installation, after the SA\****** password screen. This is not substitue of SA user account by any chance.  

+1
Login to vote
Palvaran's picture

I modified the username and password hash of the server to match the production environment one and when I tried to log back into the Console I notice the following.  That seems like progress anyway.  I am assuming I simply have to setup a streaming group now and add Front Ends?  How can I verify everything Ganesh?

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Palvaran's picture

It appears my early exuberance was ill conceived.  I am back at the INIT Error on the Console.  The database is [Up], but the Streamlet Engine is [Init Error].

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

From the Add Component screen, did you add the Streamlet engine?  Are you seeing the component entry in asuser.as_component table or dbo.as_component table like previously?

Can youn the as_Component table and upload the STE.Conf file and dci_logfile?  I'll take a look and see, if we are running into same issue we had earlier or different one this time.

+1
Login to vote
Palvaran's picture

I think we got this figured out finally!  I tried the following:

  • Deleted the database
  • Manually created the database using the 500MB default DB with a 250MB Log size per the Admin Guide
  • Forced it to use SQL 2005 rather than SQL 2008
  • Reinstalled using Option 2, to a precreated database and instance

It did not report any errors and when I ran a Query on the DB, it showed that the STE was using the correct port.

Now, I just have to figure out how to add the Front Ends to the Back Ends.  I had heard there was a way to set it up in a load balanced configuration?  Is there any documentation on that by chance?  My end goal is to front a Netscaler in front of it.

As always, thanks Ganesh!  You have been an absolute huge and crucial help!

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
Ganesh.B's picture

Happy streaming !!!!

After installing FrontEnd components in a machine, open console goto Configuration | Component | Add component and in the Host/Ip addres box just entere the FrontEnd machine ip address or name. Make sure you stop both the LaunchServer and StreamingServer before adding it.  You can find all these details in the admin guide

Admin guide has details on how to configure the streaming server behind loadbalancer and I think there is few articles on how to do that.

+1
Login to vote
Palvaran's picture

I really appreciate your help on getting this working.  I showed a demo to my boss yesterday and he was impressed.  I only had 2 Back End boxes in cluster, 1 front end box for the launch server, and 1 front end as a backup launch server, and showed what happens when the various pieces go down.  It is not load balanced yet, but I will check the Admin Guide to work on that.  At that moment, we are reconfiguring all systems for vpro and amt technologies so that we can incorporate that into the streaming dynamics and possiblities as well.

You rock sir.

Systems Administrator
Rice University

Remember, "The happiness of your life, depends on the quality of your thoughts."

0
Login to vote
AndyN's picture

Due to the popularity of this article, we are doing a Webcast on this topic.

Please join us on February 5th!

Get all the details and sign-up here:

https://www-secure.symantec.com/connect/events/wor...

0
Login to vote