Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli errori DBNetLib (Libreria di rete del database) si verificano quando il runtime di BizTalk Server non è in grado di comunicare con i database MessageBox o Management. In questo caso, l'istanza di runtime di BizTalk Server che intercetta l'eccezione viene arrestata e poi si riavvia ogni minuto per verificare se il database è disponibile.
La causa più comune di un errore DBNetLib è quando uno dei server di database MessageBox (che possono essere molti) diventa estremamente occupato e ulteriori tentativi di comunicare con esso portano a un timeout, causando un'eccezione DBNetLib.
Oltre al caso in cui il database MessageBox è semplicemente molto occupato, l'errore DBNetLib può verificarsi in un ambiente di produzione quando i server di database BizTalk che ospitano uno di più database MessageBox diventano associati a I/O (Input/Output).
In questo argomento vengono descritte le condizioni che possono causare errori DBNetLib e consigli per evitare questi errori.
Causa e risoluzione dell'errore DBNetLib
Sintomi di un errore DBNetLib
Un'istanza host di Microsoft BizTalk Server termina e quindi si riavvia e gli errori simili ai seguenti vengono scritti nel log applicazioni di BizTalk Server:
Event Type:Warning
Event Source:BizTalk Server <version>
Event Category:BizTalk Server <version>
Event ID:5410
Computer:BIZTALKSERVER
Description:
An error occurred that requires the BizTalk service to terminate. The most common causes are the following:
1) An unexpected out of memory error.
OR
2) An inability to connect or a loss of connectivity to one of the BizTalk databases.
The service will shutdown and auto-restart in 1 minute. If the problematic database remains unavailable, this cycle will repeat.
Error message: [DBNETLIB][ConnectionWrite (send()).]General network error. Check your network documentation.
Error source:
BizTalk host name: BizTalkHost
Windows service name: BTSSvc$BizTalkHost
---------------------------------------------------------
Event Type:Error
Event Source:BizTalk Server <version>
Event Category:BizTalk Server <version>
Event ID:6913
Computer:BIZTALKSERVER
Description:
An attempt to connect to "BizTalkMsgBoxDb" SQL Server database on server "SQLSERVER " failed.
Error: "[DBNETLIB][ConnectionWrite (send()).]General network error. Check your network documentation."
I server di database BizTalk che ospitano i database MessageBox diventano limitati dalle operazioni di I/O.
I server BizTalk comunicano e agiscono direttamente con i server di database che ospitano i database MessageBox. Se uno dei server di database che ospitano i database MessageBox diventa sovraccarico e si trova in una situazione limitata dalle operazioni di I/O (Input/Output), potrebbe diventare non reattivo. Uno dei server BizTalk potrebbe a sua volta perdere la connettività con uno di questi server di database e si verificherà un errore DBNetLib.
I test mostrano che un server di database con utilizzo elevato diventa limitato dall'I/O quando il "tempo%Idle" del disco fisico continua a diminuire fino a scendere sotto i 10%. Se il "%Idle time" continua a scendere al di sotto di tale livello, si tratta di un'indicazione che è probabile che il server di database non risponda.
Motivo
Esistono diversi motivi per cui i server di database che ospitano i database MessageBox diventano associati a I/O, alcuni di questi sono i seguenti:
Se il computer di database che ospita il database MessageBox è associato da specifiche hardware basse, ad esempio: memoria insufficiente, numero e velocità dei processori e così via.
Se il disco fisico nel computer di database che ospita un database MessageBox viene condiviso da altri database a utilizzo elevato. Nei casi in cui diversi database (incluso il MessageBox) vengono usati contemporaneamente, il disco fisico può trovarsi in una situazione di sovraccarico di I/O.
Un esempio di tale situazione è il seguente:
I test mostrano che il server di database che ospita i database BizTalkDTADb e/o BAM talvolta utilizza percentuali elevate di %Disk tempi di lettura e scrittura di un disco fisico. Quando il disco del server di database che ospita un database MessageBox viene condiviso da un altro database a uso elevato, ad esempio BizTalkDTADb o BAM, e se entrambi i database vengono utilizzati contemporaneamente, potrebbero causare la mancata risposta del disco fisico del server di database.
Se BizTalkDTADb e uno o più database MessageBox condividono lo stesso disco fisico nel server di database, se l'archiviazione e l'eliminazione non vengono eseguite di frequente, il disco potrebbe diventare associato all'I/O.
Risoluzione
Assicurarsi che i server di database che ospitano i MessageBox BizTalk non si immettono in una situazione in cui diventano molto utilizzati ed eventualmente non rispondono.
Di seguito sono elencate alcune delle principali cause di utilizzo elevato di un disco server, insieme alle raccomandazioni su come attenuare questo problema.
Basse specifiche hardware
I test mostrano che il server inizia a essere più utilizzato quando le specifiche hardware non possono tenere il passo con la quantità di carico che sta tentando di elaborare. Con specifiche hardware inferiori, il sistema viene sovraccaricato rapidamente dalla quantità di attività che si verificano sui database. Ciò potrebbe causare l'aumento continuo dei tempi di lettura e scrittura del %Disk del server senza stabilizzarsi. Inoltre, il tempo di %Idle del disco potrebbe continuare a diminuire fino a diventare inferiore a 10%, rendendo il server del database non reattivo.
A seconda della quantità di attività e del carico presenti nella distribuzione BizTalk, se si rileva che i server di database non rispondono durante carichi elevati, è consigliabile aggiornare le parti seguenti nei server di database: numero di CPU, memoria e connessione a una SAN. Naturalmente, è consigliabile eseguire una diagnosi corretta per capire quale parte (memoria, numero di CPU e così via) è l'elemento critico che deve essere aggiornato nell'hardware.
Condivisione di un server o di un disco per più di un gruppo di database BizTalk
Come accennato in precedenza, i database diversi da MessageBoxes, ad esempio il database BizTalk Tracking (BizTalkDTADb) e i database BAM, potrebbero utilizzare molti cicli nel disco fisico di un server. Pertanto, se questi database condividono lo stesso disco fisico con i database MessageBox, potrebbero soffocare il disco e renderlo non rispondente, il che potrebbe causare i server BizTalk a perdere la connettività con i database MessageBox e quindi incorrere in un errore DBNetLib.
È altamente consigliato separare qualsiasi database che si prevede avrà un elevato consumo del disco fisico del server dai BizTalk MessageBox, in modo che condividano dischi fisici diversi (o separarli su server differenti). È consigliabile separare i database BizTalkDTADb e BAM nelle proprie unità/server separati dai MessageBox ed è anche consigliabile avere ogni database MessageBox (nel caso in cui ne siano presenti più) nel proprio disco.
Archiviazione ed eliminazione
Nel caso in cui si disponga di database BizTalkDTADb e MessageBox che condividono lo stesso disco nello stesso server, è necessario archiviare ed eliminare regolarmente i database BizTalkDTADb. In caso contrario, aumentano a tempo indeterminato.
Il test indica che è consigliabile archiviare ed eliminare periodicamente, ma se si esegue con carichi più elevati del normale, è consigliabile prendere in considerazione l'archiviazione e l'eliminazione più frequentemente. Se l'aumento del database BizTalkDTADb non viene mantenuto regolarmente, quando queste azioni vengono infine eseguite, potrebbero richiedere molto tempo e utilizzare la maggior parte delle risorse del server di database disponibili durante l'esecuzione.