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.1 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. 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

Using the RDSIE3.DataControl with the Sheridan Combo Box Control

The Sheridan combo box has two properties that can be bound to RDSIE3.DataControl data. Just binding the combo box to RDSIE3.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 Sub

Sorting 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 be myRS.UpdateBatch or ADC1.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

  1. From the Start menu, click Run.

  2. Type RegEdit and click OK.

  3. In the Registry Editor, navigate to the HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters key.

  4. Select the Parameters key, and then from the Edit menu, point to New, and select DWORD Value.

  5. In the Name column, type ADCUpdateTimeout and press ENTER.

  6. 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.

RDSIE3.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 RDSIE3.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

  1. Start Microsoft® SQL Server Enterprise Manager, open the tree for the Server, and then open the Database Devices tree.

  2. 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.

  3. In the Size scroll box, increase the device to the desired amount. For example, 50 megabytes (MB) of hard disk space.

  4. Click Change Now to increase the amount of space to which the (logical) TempDB can expand.

  5. 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.

  6. 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.

  7. Select a Log Device, such as Master to display the available size in the Size (MB) box.

  8. 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

  1. Run Microsoft SQL Server Enterprise Manager.

  2. Open the tree for the Server.

  3. Open the Databases tree.

  4. Double-click the name of the database on which this feature will be enabled.

  5. On the Database tab, click Truncate.

  6. 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.