Bagikan melalui


MSSQLSERVER_7399

Berlaku untuk: SQL Server

Atribut Nilai
Produk SQL Server
ID Peristiwa 7399
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis RMT_HRESULT_FAIL
Teks Pesan Penyedia OLE DB "%ls" untuk server tertaut "%ls" melaporkan kesalahan.%ls

Penjelasan

Kesalahan ini terjadi ketika kueri server tertaut gagal karena kesalahan yang dihasilkan di server jarak jauh.

Kesalahan 7399 adalah pesan kesalahan umum dari penyedia. Dalam beberapa kasus, Anda dapat mengaktifkan Lacak Bendera 7300 untuk mendapatkan pesan kesalahan yang lebih rinci dari penyedia. Apakah Anda menerima informasi lebih lanjut tergantung pada penyedia OLE DB (Object Linking and Embedding, Database) yang Anda gunakan. Untuk mengaktifkan bendera pelacakan, jalankan perintah berikut sebelum Anda menjalankan kueri yang menyebabkan kesalahan:

DBCC TRACEON (7300, 3604);

Tindakan pengguna

Meskipun kesalahan 7399 adalah kesalahan umum yang menyertakan pesan yang lebih spesifik di dalamnya, kesalahan spesifik yang umum diamati adalah "Waktu Habis Kedaluwarsa." Ada dua opsi batas waktu yang dapat dikonfigurasi yang memengaruhi kueri jarak jauh: opsi batas waktu masuk jarak jauh dan opsi batas waktu kueri jarak jauh. Berikut adalah contoh bagaimana Anda mungkin melihat kesalahan waktu habis yang dimunculkan dalam 7399 dan cara mengatasinya:

IDBInitialize::Initialize

Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'SQLOLEDB' melaporkan kesalahan. [Penyedia OLE/DB mengembalikan pesan: Waktu habis kedaluwarsa] Jejak kesalahan OLE DB [Penyedia OLE/DB 'SQLOLEDB' IDBInitialize::Initialize mengembalikan 0x80004005: ].

Pesan kesalahan ini berkaitan dengan IDBInitialize::Initialize metode . Ini terjadi jika waktu yang diperlukan oleh kueri untuk membuat koneksi ke server jarak jauh melebihi nilai opsi batas waktu masuk jarak jauh.

Untuk mengatasi kesalahan ini, atur nilai batas waktu masuk jarak jauh menjadi 30 detik dengan menjalankan kode berikut:

sp_configure 'remote login timeout', 30;
GO
RECONFIGURE WITH OVERRIDE;
GO

ICommandText::Execute

Server: Msg 7399, Level 16, State 1, Line 1 OLE DB provider 'SQLOLEDB' melaporkan kesalahan. Eksekusi dihentikan oleh penyedia karena batas sumber daya tercapai. [Penyedia OLE/DB mengembalikan pesan: Waktu habis kedaluwarsa] Jejak kesalahan OLE DB [Penyedia OLE/DB 'SQLOLEDB' ICommandText::Execute mengembalikan 0x80040e31: Eksekusi dihentikan oleh penyedia karena batas sumber daya tercapai.].

Pesan kesalahan ini berkaitan dengan ICommandText::Execute metode . Ini menunjukkan bahwa kueri membutuhkan waktu lebih lama untuk diproses daripada waktu yang ditentukan dalam pengaturan konfigurasi batas waktu kueri jarak jauh.

Nilai batas waktu kueri jarak jauh default adalah 600 (10 menit).

Untuk mengatasi kesalahan ini, nonaktifkan batas waktu dengan mengatur nilai batas waktu kueri jarak jauh ke 0 (tunggu tak terbatas) dengan menjalankan kode berikut:

sp_configure 'remote query timeout', 0;
GO
RECONFIGURE WITH OVERRIDE;
GO