Bij het gebruik van Invantive UniversalSQL Server kan een foutmelding optreden:
itgenpkt003
Het pakkettype ‘0x…’ in de buffer is ongeldig.
Connect with a client that supports the SQL Server protocol, and do not use strict encryption unless the server is set up for it.
Wat betekent de melding itgenpkt003?
Een client zoals SQL Server Management Studio stuurt gegevens naar Invantive UniversalSQL Server in pakketten van het SQL Server-protocol (TDS). De eerste byte van elk pakket is het pakkettype. Invantive UniversalSQL Server accepteert pakkettypen tot en met 0x12, dat is “PRELOGIN”. Op de plaats van de puntjes staat de waarde die de server ontving, bijvoorbeeld 0x16.
Oorzaken
Mogelijke oorzaken zijn:
- Een client met strikte versleuteling verbindt met Invantive UniversalSQL Server in de gewone modus (TDS 7). De client begint dan met een TLS-handshake in plaats van met PRELOGIN. Een TLS-handshake begint met de byte 0x16.
- Een programma spreekt het SQL Server-protocol niet, zoals een webbrowser, een poortscan of een gezondheidscontrole. Een tekstprotocol als HTTP begint met een letter, zoals 0x47 voor de G van GET. Een kort HTTP-verzoek is vaak korter dan de pakketlengte die de server uit de eerste bytes afleidt. De server meldt dan later dat de verbinding is gesloten.
- Een client spreekt het protocol niet correct. De oorzaak is niet altijd vast te stellen.
De melding Verwacht PRELOGIN hoort bij een geldig pakkettype dat niet PRELOGIN is. Bij deze melding is het pakkettype zelf ongeldig.
Oplossing
De volgende stappen kunnen het probleem oplossen:
- Verbind met een client die het SQL Server-protocol spreekt, zoals SQL Server Management Studio.
- Controleer dat het adres en de poort van de verbinding naar de SQL Server-poort van Invantive UniversalSQL Server verwijzen en niet naar een webpagina.
- Controleer de versleuteling in de client. Invantive UniversalSQL Server werkt standaard in de gewone modus (TDS 7). Daar gaat PRELOGIN voorop en begint de versleuteling daarna.
- Gebruik geen strikte versleuteling, tenzij Invantive UniversalSQL Server daarvoor is ingesteld. Als de instelling
Encryptvan de client op de waardeStrictstaat, kies dan een andere waarde. Bij strikte versleuteling (TDS 8.0) begint de versleuteling vóór het eerste pakket. Die past alleen bij een server in de strikte modus.
Alleen een beheerder kan het volgende doen:
- Een server in de strikte modus wordt ingesteld met
TdsUseTds8Modeen vraagt een eigen poort. Een client in de gewone modus kan daar niet mee verbinden. - Bij strikte versleuteling moet de client het certificaat van de server vertrouwen. De instelling
TrustServerCertificatetelt dan niet. - Een gezondheidscontrole of poortscan op de SQL Server-poort kan dezelfde melding geven. Richt zulke controles op een ander doel.
Een vraag stellen op het forum
Lukt het niet om het probleem op te lossen, dan kan een vraag worden gesteld in de categorie Vragen van dit forum. Een vraag is goed te beantwoorden met de volgende gegevens:
- de foutcode
itgenpkt003 - de waarde tussen de aanhalingstekens
- het tijdstip van de melding in UTC, met de tijdzone erbij
- het product Invantive UniversalSQL Server, met versie
- de naam en versie van de client
- de stappen die al zijn geprobeerd