Lizenzmetrik für Oracle Java Subscription

Antworten
mhausl
Beiträge: 18
Registriert: 31. Jul 2012, 07:59
Kontaktdaten:

Lizenzmetrik für Oracle Java Subscription

Beitrag von mhausl » 29. Apr 2019, 17:42

Gemäß dem Artikel https://upperedge.com/oracle/using-java ... fects-you/
kommt bei Server der Prozessor/Core-Faktor zum Einsatz.

Nachdem es "out of the Box" noch keine passende Lizenzmetrik (und, trotz LIS-Update auch kein SW-Produkt) gibt, habe ich mal selber versucht eine zu definieren:

Code: Alles auswählen

(case when Target.T(SPSComputerClassOS).Name like '%Server%' 
  then Target.T(SPSComputerClassBase).AmountProcessorCores * (case 
    when Target.T(SPSComputerClassBase).AmountProcessorCores = 1 then 1 
    when Target.T(SPSComputerClassBase).Processor like '%UltraSparc64%' then 0.75 
    when Target.T(SPSComputerClassBase).Processor like '%UltraSparc%' then (case 
      when Target.T(SPSComputerClassBase).Processor like '%1.4%' then 0.50 
      else 0.25 end)
    when Target.T(SPSComputerClassBase).Processor like '%AMD%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.50 
    when Target.T(SPSComputerClassBase).Processor like '%XEON%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.50 
    when Target.T(SPSComputerClassBase).Processor like '%HP PA-%' then 0.75 
    when Target.T(SPSComputerClassBase).Processor like '%IBM%Power6%' then 1
    when Target.T(SPSComputerClassBase).Processor like '%IBM%System z%' then 1 
    when Target.T(SPSComputerClassBase).Processor like '%IBM%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.75 
    when Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 1 else 1 end)
  else 1 
end)
Leider bekomme ich beim Speichern immer folgende Fehlermeldung:

Case operator error, type mismatch of expressions!
update4u.SPS.DataLayer.Query.ExpressionParserException: Case operator error, type mismatch of expressions! at update4u.SPS.DataLayer.Query.CaseSearchFunctionExpressionType.CheckAndAddAttributeType(FunctionOperatorExpression functionOperatorExpression) at update4u.SPS.DataLayer.Query.FunctionOperatorExpression.CheckAndAddAttributeType() at update4u.SPS.DataLayer.Query.VisitorAddSchemaInfo.Visit(FunctionOperatorExpression expression) at update4u.SPS.DataLayer.Query.FunctionOperatorExpression.AcceptVisitor(BaseExpressionVisitor visitor) at update4u.SPS.DataLayer.Query.VisitorAddSchemaInfo.AddSchemaInfo(BaseExpression expression) at update4u.SPS.DataLayer.Query.BaseExpression.AddSchemaInfo(ObjectClass baseClass, IgnoreSchemaError ignoreSchemaError, AsqlParameterCollection asqlParameter) at update4u.SPS.DataLayer.Query.BaseExpression.AddSchemaInfo(ObjectClass baseClass, AsqlParameterCollection asqlParameter) at update4u.SPS.DataLayer.Query.ColumnExpressionParser.Validate(Guid objectClassID, String expression) at update4u.LicenseManager.WebUI.DlgControls.LCMLicenseModelType.LMCustomData.PreActions(ControlEventInfo eventInfo, SPSTransaction transaction) at update4u.SPS.WebUI.Components.Controls.Dialogs.SessionUpdateObjectsManager.CustomDataPreActions(ObjectUpdateInfo objectInfo, SPSTransaction transaction) at update4u.SPS.WebUI.Components.Controls.Dialogs.SessionUpdateObjectsManager.UpdateObject(ObjectUpdateInfo objectInfo, SPSTransaction spsTransaction) at update4u.SPS.WebUI.Components.Controls.Dialogs.SessionUpdateObjectsManager.UpdateSPSObject(ObjectUpdateInfo objectInfo) at update4u.SPS.WebUI.Components.Controls.Dialogs.SessionUpdateObjectsManager.Save(ObjectUpdateInfo objectInfo) at update4u.SPS.WebUI.Components.Controls.Dialogs.DataObjectDlg.UpdateSPSObject() at update4u.SPS.WebUI.Components.Controls.Dialogs.DataObjectDlg.WriteSpsObject() at update4u.SPS.WebUI.Components.Controls.Dialogs.DataObjectDlg.ApplyInternal()

Hat jemand eine Lösung?

BG
Markus

Benutzeravatar
Torsten Boch
Administrator
Administrator
Beiträge: 32
Registriert: 21. Dez 2011, 12:23
Kontaktdaten:

Re: Lizenzmetrik für Oracle Java Subscription

Beitrag von Torsten Boch » 29. Apr 2019, 18:15

Der Fehler kommt daher, dass Sie in Ihrem case-Konstrukt Integer und Float-Zahlen mischen. Überall wo Sie "1" angeben, müssen Sie stattdessen "1.0" verwenden.

Richtig lautet die Formel:

Code: Alles auswählen

(case when Target.T(SPSComputerClassOS).Name like '%Server%' 
  then Target.T(SPSComputerClassBase).AmountProcessorCores * (case 
    when Target.T(SPSComputerClassBase).AmountProcessorCores = 1 then 1.0 
    when Target.T(SPSComputerClassBase).Processor like '%UltraSparc64%' then 0.75 
    when Target.T(SPSComputerClassBase).Processor like '%UltraSparc%' then (case 
      when Target.T(SPSComputerClassBase).Processor like '%1.4%' then 0.50 
      else 0.25 end)
    when Target.T(SPSComputerClassBase).Processor like '%AMD%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.50 
    when Target.T(SPSComputerClassBase).Processor like '%XEON%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.50 
    when Target.T(SPSComputerClassBase).Processor like '%HP PA-%' then 0.75 
    when Target.T(SPSComputerClassBase).Processor like '%IBM%Power6%' then 1.0
    when Target.T(SPSComputerClassBase).Processor like '%IBM%System z%' then 1.0 
    when Target.T(SPSComputerClassBase).Processor like '%IBM%' and Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 0.75 
    when Target.T(SPSComputerClassBase).AmountProcessorCores > 1 then 1.0 else 1.0 end)
  else 1.0 
end)
Allerdings wird diese Metrik lizenzrechtlich nicht korrekt funktionieren. Jedenfalls nicht, wenn es um virtualisierte Server geht. In diesen Fällen gilt die Partitioning Policy von Oracle, welche die Art der Virtalisierung berücksichtig (Soft vs. Hard Partitioning). Bei VMware gilt beispielsweise dann die Maßgabe, dass die physische Hardware lizenziert werden muss. Unter Umständen dann noch nicht einmal nur den Host selbst, sondern den Cluster, das vCenter oder Ihre gesamte VMware Infrastruktur.

Hierfür bietet das SAM Tool aktuell jedoch keine automatisierte Unterstützung. Wir haben die Partitioning Policy von Oracle lediglich für die Datenbanken im Add-on "Oracle Database Compliance" implementiert. Wir beabsichtigen, diese Regelung generisch zur Verfügung zu stellen. Das wird jedoch noch voraussichtlich nicht vor Ende dieses Jahres der Fall sein.
Torsten Boch - Senior Product Manager @ Matrix42 AG

Disclaimer: My participation in this forum is on a voluntary basis.
Any views expressed are not necessarily those of matrix42 AG or the support team.

Antworten

Zurück zu „Lizenzmanagement“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast