Wir verwenden die SendBatch() - Methode des Azure-Servicebus SDK 3.1.7, um Daten an Azure Event Hub zu senden. Im Folgenden finden Sie den Code-Schnipsel:Überschreitet das aktuell zulässige Limit (262144 Byte) für die Verknüpfung Ausnahme bei SendBatch() -Methode des Azure-Servicebusses SDK
foreach (var packet in transformedPackets)
{
EventData eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(packet, settings)));;
try
{
eventData.Properties.Add(AppConstants.TenantDeploymentUniqueIdKey, tenantDeploymentUniqueId);
eventData.Properties.Add(AppConstants.DataTypeKey, DataTypeKey);
byteCount += eventData.SerializedSizeInBytes;
if (byteCount > MaxBatchSize)
{
sender.SendBatch(transformedMessages);
transformedMessages.Clear();
byteCount = eventData.SerializedSizeInBytes;
}
transformedMessages.Add(eventData);
}
catch (System.Exception)
{
eventData.Dispose();
throw;
}
}
Ereignis nach dem SerializedSizeInBytes Eigenschaft überprüfen, bevor die Ereignisdaten zu der Charge hinzugefügt (maximal zulässige Limit: 256 KB), wir die folgende Ausnahme erhalten:
Die empfangene Nachricht (Übermittlungs-ID: 0, Größe: 262279 Byte) überschreitet das aktuell zulässige Limit (262144 Byte) für den Link. bei Microsoft.ServiceBus.Common.ExceptionDispatcher.Throw (Exception Ausnahme) bei Microsoft.ServiceBus.Common.AsyncResult.End [TAsyncResult] (IAsyncResult result) bei Microsoft.ServiceBus.Common.AsyncResult 1.End(IAsyncResult asyncResult) at Microsoft.ServiceBus.Messaging.MessageSender.RetrySenderEventDataAsyncResult.End(IAsyncResult r) at Microsoft.ServiceBus.Messaging.MessageSender.EndSendEventData(IAsyncResult result) at Microsoft.ServiceBus.Messaging.EventHubSender.SendBatch(IEnumerable
1 eventDataList)