Zum Inhalt springen
LICENTIVO / INTEGRATION

Verwalten Sie die gleichzeitige Softwarenutzung mit Floating-Lizenzen

Floating-Plätze zählen Hardwaregeräte mit gültigen Leases. Sitzungen auf derselben Hardware teilen einen Platz; ohne Hardwarekennung gilt die Gerätekennung.

Sitzungsworkflow · alle neun SDKsAktualisiert

1. Legen Sie ein gleichzeitiges Lizenzplatzlimit fest

Floating-Plätze zählen Hardwaregeräte mit gültigen Leases. Sitzungen auf derselben Hardware teilen einen Platz; ohne Hardwarekennung gilt die Gerätekennung.

Legen Sie das Heartbeat-Intervall und die Sitzungsmiete gemeinsam fest. Der Lease muss das Heartbeat-Intervall plus seinen maximalen Jitter und eine 30-Sekunden-Marge überschreiten. Bei einem kurzen Lease werden verlassene Lizenzplätze schneller wiederhergestellt, es werden jedoch weniger Netzwerkunterbrechungen toleriert.

Lizenzplätze und das Gerätekontingent des Arbeitsbereichs sind getrennte Grenzen. Gewöhnliche und Floating-Lizenzen belegen Kontingent für aktuell gültige Aktivierungen.

Das Gerätekontingent zählt aktuelle Aktivierungen und wird bei Freigabe wieder verfügbar. Normale Lizenzen zählen auch offline; bei Floating-Lizenzen gibt auch ein abgelaufener Lease das Kontingent frei.

Auch nach einem Wechsel zwischen 10 Geräten werden höchstens 3 Kontingentplätze belegt, wenn jedes ersetzte Gerät zuerst freigegeben wird und höchstens 3 gültige Aktivierungen bestehen.

2. Erwerben Sie beim Start einen Lizenzplatz

Kopieren Sie die Produkt-ID unter Konsole > Produkte. Öffnen Sie die Signaturprüfschlüssel dieses Produkts und tragen Sie alle Schlüssel-ID/Public-Key-Paare im Initialisierungscode ein. Ersetzen Sie YOUR_PRODUCT_ID, YOUR_KEY_ID und YOUR_PUBLIC_KEY. Die Schnellintegration kann den Code erzeugen. Eine Produktkonfigurationsdatei ist nicht erforderlich; das SDK verwendet standardmäßig https://www.licentivo.com.

Das folgende Go-Fragment gehört zu einer Anwendungsfunktion, die einen Fehler zurückgibt. Es sind Kontext-, Betriebssystem-, Betriebssystem/Signal- und Protokollimporte erforderlich. exportReport ist Ihr bestehender Geschäftsrückruf; Der customerKey stammt aus dem Aktivierungsformular.

Go · application lifecycle
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()

client, err := licentivo.OpenProduct(ctx, productID, trustedKeys, customerKey,
    func(err error) { log.Printf("License refresh: %v", err) })
if err != nil {
    return err // Show an activation error; do not start protected work.
}
defer client.Close() // Attempts to return a floating seat.

// Place this check inside each protected action, not only at startup.
if err := client.RunFeature("export", exportReport); err != nil {
    return err
}
<-ctx.Done()

3. Lassen Sie das SDK Heartbeats planen

Schreiben Sie keinen eigenen Timer und senden Sie keine parallelen HTTP Heartbeat-Anfragen. Das SDK verwendet das autorisierte Intervall und erneuert die Sitzung. Halten Sie den Client am Leben, während die Anwendung ausgeführt wird.

Platzieren Sie RunFeature in jedem geschützten Handler. Wenn eine Prüfung abgelehnt wird, beenden Sie die geschützte Aktion und zeigen Sie eine Lizenzmeldung an. Nützliche Verbindungsfehler im Hintergrund anzeigen; Gehen Sie nicht davon aus, dass eine Startprüfung spätere Vorgänge dauerhaft autorisiert.

Ein abgelaufener Lease, eine widerrufene Lizenz oder eine Lizenzplatzverweigerung werden durch die unterzeichneten Autorisierungsregeln gehandhabt. Für die erneute Verbindung ist eine erfolgreiche Serverüberprüfung erforderlich. Verlängern Sie niemals eine Sitzung, indem Sie lokale Ablaufdaten bearbeiten.

4. Bei einem normalen Ausgang loslassen

Schließen Sie den Client beim regulären Beenden. Go verwendet defer client.Close(); Java und C# verwalten die Freigabe innerhalb eines Gültigkeitsbereichs. C++ und Rust verwenden Destruktoren, Python einen Kontextmanager; Ruby und JavaScript bieten close an.

Wenn die Anwendung während des Herunterfahrens abstürzt oder keine Verbindung zum Server herstellen kann, erhält der Server nach Ablauf seiner Sitzungsmiete den verlassenen Platz zurück. Diese Verzögerung wird erwartet; Halten Sie eine klare Nachricht bereit, damit ein anderer Benutzer versteht, wann möglicherweise ein Lizenzplatz verfügbar wird.

Floating-Lizenzen zählen gültige Leases. Verbindungsabbrüche oder Abstürze geben Kapazität nicht sofort frei; die letzte Sitzung muss freigegeben werden oder ablaufen.

5. Testen Sie mit zwei separaten Maschinen

  1. Legen Sie eine Testlizenz für einen Floating-Sitz fest. Starten Sie die Anwendung auf Computer A.
  2. Starten Sie auf Computer B: Die zweite geschützte Sitzung sollte verweigert werden, während A den Platz innehat.
  3. Verlassen Sie A wie gewohnt und prüfen Sie dann, ob B einen Lizenzplatz erhalten kann.
  4. Stoppen Sie in der isolierten Testumgebung A ohne Bereinigung; Überprüfen Sie, ob der Sitz nach Ablauf der konfigurierten Mietdauer zurückgegeben wird.

Beheben von Lizenzplatzkonflikten

Der Node-Locked- und der Floating-Modus weisen ein unterschiedliches Ausgangsverhalten auf: Beim Node-Locked Shutdown bleibt die Registrierung erhalten, während beim Floating Shutdown versucht wird, einen Platz zurückzugeben. Rufen Sie „Device Unbind“ nicht jedes Mal auf, wenn eine knotengesperrte Anwendung geschlossen wird.

Eine Lizenzplatz-in-Nutzungs-Meldung kann durch eine andere laufende Instanz oder einen kürzlich abgestürzten Prozess verursacht werden, der auf den Ablauf der Lease wartet. Überprüfen Sie aktuelle Sitzungen in der Konsole, bevor Sie die Anzahl der gekauften Lizenzplätze erhöhen.

Die dateibasierte Erstaktivierung gilt für knotengebundene Lizenzen. Bei getakteten Vorgängen ist weiterhin eine Online-Reservierung und -Abwicklung von Anrufen erforderlich, selbst wenn die Floating-Sitzung selbst gültig ist.