Contents Index Topic Contents |
Appendix A: Troubleshooting Remote Data Service
If you have problems running the Remote Data Service, first make sure you have met the hardware and software requirements for RDS. Then, make sure you have installed Remote Data Service correctly (see "Validating Setup" to validate your installation).
The following sections describe workarounds for more specific errors.
"Internet Server Error: Access Denied"
If you get this error, it usually means that Microsoft Internet Information Server (IIS) returned the following status:
HTTP_STATUS_DENIED 401.
Make sure the directories accessed by IIS have proper permissions. RDS 1.5 can communicate with an IIS Web server running in any one of the three Password Authentication modes: Anonymous, Basic, or NT Challenge/Response. Unlike previous versions, the Allow Anonymous setting is no longer required. (For more information, see "HTTP Protocol Permissions Setting.") Also, the Web server must have permissions to the data source computer if it is a Windows NT® computer.
"Unexpected Error" Message When Running the Sample Applications
Server Checklist
- If you re-install IIS, you must re-install Remote Data Service afterwards.
- If you are using Microsoft SQL Server as your back-end data source, use Microsoft SQL Server 6.5, Service Pack 2 or later.
- Ensure that the ODBC DSNs are System DSNs and not User DSNs. The Anonymous user logging on through IIS can view only System DSNs.
- Check that the anonymous account your WWW service uses is a user on your domain that has NTFS permissions to all the relevant servers and directories. Lastly, check that the password for this anonymous account hasn't expired.
- Because Remote Data Service is installed in the C:\Program Files\Common Files\System\MSADC directory, check that the Anonymous user from the IIS Service Manager can access this directory. It should have both Read and Execute access.
- If you have trouble with Remote Data Service DLLs and sample applications, re-register the DLLs by using Regsvr32.exe.
- If you are writing your own business objects, place your Active Server Pages script files (.asp) in a directory that gives the Anonymous user (in IIS) execute permission.
Using the RDS.DataControl with the Sheridan Combo Box Control
The Sheridan combo box has two properties that can be bound to RDS.DataControl data. Just binding the combo box to RDS.DataControl doesn't automatically populate the "Text" portion, a non-bindable property, which shows the currently selected item. As a result, old data may still be displayed after the Refresh method is called.
A workaround is to use code like either of the following two sample Visual Basic® Scripting Edition Sub procedures. Both clear the Text property when the Refresh method is called.
SSCombo
is the name of the Sheridan combo box control in these examples.Sub SSCombo_InitColumnProps() SSCombo.Text="" End Sub Sub Refresh_OnClick ADC1.Refresh SSCombo.Text="" End SubSorting Client-side Recordset Data
To sort on a Recordset, any pending changes must first be saved. If you are using the RDS.DataControl, you can use the SubmitChanges method. For example, if your RDS.DataControl is named ADC1, your code would be
ADC1.SubmitChanges
. If you are using an ADO Recordset, you can use its UpdateBatch method. Using UpdateBatch is the recommended method for Recordset objects created with the CreateRecordset method. For example, your code could bemyRS.UpdateBatch
orADC1.Recordset.UpdateBatch
.Deadlocks With Read Repeatable Isolation Level
If a custom business object uses an isolation level of read repeatable to access a SQL Server, and the business object is called simultaneously by two clients that send a query and update in the same transaction, a deadlock is possible. Remote Data Service is built to allow one of the processes to timeout to release the deadlock, but this will fail the update for that client.
You can add a registry entry on the Web server to modify the length of the timeout. The default is 30 seconds (or 30,000 milliseconds).
To modify the timeout value
- From the Start menu, click Run.
- Type RegEdit and click OK.
- In the Registry Editor, navigate to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters key.
- Select the Parameters key, and then from the Edit menu, point to New, and select DWORD Value.
- In the Name column, type ADCUpdateTimeout and press ENTER.
- Double-click the new entry. In the Edit DWORD Value dialog box, enter the new value in milliseconds in the Value data box. The value must be greater than or equal to zero.
RDS.DataControl and Multiple Recordset Requests
If you query for multiple results, only the first Recordset is returned. If multiple result sets are needed, assign each to its own RDS.DataControl. An example of a query for multiple results could be
"Select * from Authors Select * from Topics"
.What's the difference between ADOR.Recordset and ADODB.Recordset?
Remote Data Service applications use ADOR.Recordset objects on the client side. This makes it possible to access OLE DB data sources with Visual Basic and VBScript code (rather than C), and get data to the client. If ADODB.Recordset is already registered on the client, it will use the full-featured ADODB.Recordset instead of ADOR.Recordset.
Active Data Objects (ADO) can exist in both the client and middle tiers, but the ADOR.Recordset objects that Remote Data Service uses on the client side are leaner, and implement only the Recordset semantics. The ADO layer on the middle tier uses ADODB.Recordset objects and implements the Connection object and all other ADO semantics.
See Also For more information about ADOR vs. ADODB, see ADOR.Recordset vs. ADODB.Recordset Object.
Using ADO in Custom Business Objects
If you used Visual Basic to create a custom business object that uses early binding with the ADOR 1.0 type library, you should rebuild your custom business object to use the ADOR 1.5 type library.
SQL Server — Ensuring Sufficient TempDB Space
If errors occur while handling Recordset objects that need processing space on SQL Server, you may need to increase the size of the TempDB. (Some queries require temporary processing space; for example, a query with an ORDER BY clause requires a sort of the Recordset, which requires some temporary space.)
Important Read through this procedure first before performing the actions because it isn't as easy to shrink a device once it is expanded.
To increase the TempDB space on SQL Server
- Start Microsoft® SQL Server Enterprise Manager, open the tree for the Server, and then open the Database Devices tree.
- Select a (physical) device to expand, such as Master, and double-click the device to open the Edit Database Device dialog box.
This dialog shows how much space the current databases are using.
- In the Size scroll box, increase the device to the desired amount. For example, 50 megabytes (MB) of hard disk space.
- Click Change Now to increase the amount of space to which the (logical) TempDB can expand.
- Open the Databases tree on the server, and then double-click TempDB to open the Edit Database dialog box. The Database tab lists the amount of space currently allocated to TempDB (Data Size). By default, this is 2 MB.
- Under the Size group, click Expand. The graphs show the available and allocated space on each of the physical devices. The bars in maroon color represent available space.
- Select a Log Device, such as Master to display the available size in the Size (MB) box.
- Click Expand Now to allocate that space to the TempDB database.
The Edit Database dialog displays the new allocated size for TempDB.
See Also For more information about this topic, search the Microsoft SQL Server Enterprise Manager Help file for "Expand Database dialog box."
SQL Server — Minimizing Log File Space Usage
A log file may fill quickly (thus halting the server) if there is large volume activity on a SQL Server database. You can set the Log file to Truncate on Checkpoint to significantly extend the life of the log file for a database.
To enable Truncate on Checkpoint
- Run Microsoft SQL Server Enterprise Manager.
- Open the tree for the Server.
- Open the Databases tree.
- Double-click the name of the database on which this feature will be enabled.
- On the Database tab, click Truncate.
- On the Options tab, check Truncate Log on Checkpoint, and then click OK.
See Also For more information about the Truncate on Checkpoint feature, see the Microsoft SQL Server documentation.
Outdated Class IDs
If you get an error that an RDS.DataSpace or RDS.DataControl object doesn't load, make sure you are using the correct class ID. The class IDs for these objects have changed from version 1.0 and 1.1. The correct class IDs are listed as follows:
Object Class ID RDS.DataControl BD96C556-65A3-11D0-983A-00C04FC29E33 RDS.DataSpace BD96C556-65A3-11D0-983A-00C04FC29E36
Top of Page
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.