Feilmelding når du prøver å starte AOS-Forekomsten for Microsoft Dynamics AX 4.0: "100-feil: kan ikke opprette en ny systemsemafor"

Gjelder: Microsoft Dynamics AX 4.0Axapta Object Server

Symptomer


Når du prøver å starte Application Object Server (AOS) for Microsoft Dynamics AX 4.0, starter AOS-Forekomsten ikke. I tillegg får du en av følgende feilmeldinger:
100-feil: Kan ikke opprette en ny systemsemafor.
Objektserveren 01: Dialogboksen utstedt for klient-mindre økt 1: programmet ikke kan laste inn og utføre klassen 'SqlDatabaseInit', som er avgjørende for å identifisere databaseleverandøren, og laste inn riktige SQL-systemvariablene. Dette kan skyldes manglende tilgangsrettigheter til SQL-databasen, en programfilen mangler eller er skadet, eller syntaksfeil i selve klassen.

Årsak


Dette problemet kan oppstå på grunn av flere forskjellige betingelser. Hvis du vil fastslå årsaken i feilmeldingen, anbefaler vi at du ser i programloggen til å finne en mer beskrivende melding. Følg disse trinnene:
  1. Klikk Start, velg Alle programmer, Administrativeverktøy og deretter Hendelsesliste.
  2. Klikk programmetunder Hendelsesliste (lokal).
  3. Rull nedover listen over meldinger til å finne en feilmelding i den høyre ruten.
  4. Dobbeltklikk feilmelding til å fastslå om meldingen gjelder for din situasjon.
Feilmeldingen som du finner kan tyde på at ett eller flere av følgende betingelser er oppfylt:
  • Microsoft SQL Server-tjenesten er ikke startet.
  • Kontoen som brukes til å starte AOS har ikke riktig databaserollene i SQL Server.
  • Antallet AOS-lisenser er overskredet.
  • Det skilles ikke riktig sorteringsrekkefølge for SQL Server-database.
Obs! Denne listen inneholder kjente årsaker til denne feilmeldingen. Det kan være andre årsaker.

Oppløsning


Hvis du vil løse dette problemet når du har kontrollert at en bestemt feilmelding som gjelder for din situasjon, kan du bruke én av følgende metoder, avhengig av situasjonen.

Obs! Du må kanskje bruke mer enn én metode for å løse dette problemet.

Metode 1: Starte SQL Server-tjenesten

AOS-Forekomsten, avhenger av SQL Server-tjenesten startes. Hvis SQL Server-tjenesten ikke er startet, starter AOS.

Bruk en av følgende fremgangsmåter, avhengig av hvilken versjon av SQL Server du kjører.

Microsoft SQL Server 2000

Hvis du vil starte tjenesten SQL Server 2000, gjør du følgende:
  1. Klikk Start, velg Alle programmer, Administrativeverktøy og deretter tjenester.
  2. Finn MSSQLServer -tjenesten.
  3. Hvis tjenesten ikke er startet, høyreklikker du tjenesten og klikker Start.

Microsoft SQL Server 2005

Følg denne fremgangsmåten for å starte SQL Server 2005-tjenesten:
  1. Klikk Start, velg Alle programmer, Administrativeverktøy og deretter tjenester.
  2. Finn tjenesten SQL Server (MSSQLServer) .
  3. Hvis tjenesten ikke er startet, høyreklikker du tjenesten og klikker Start.

Metode 2: Kontrolle at kontoen som brukes til å starte AOS-Forekomsten har riktig databaserollene i SQL Server

Kontoen som brukes til å starte AOS-tjenesten må ha minst følgende databaseroller som er tilordnet i SQL Server:
  • db_ddladmin
  • db_datareader
  • db_datawriter
Følg denne fremgangsmåten for å finne ut om kontoen har riktige databaserollene:
  1. Angi hvilken konto som brukes til å starte AOS-tjenesten. Følg disse trinnene:
    1. Klikk Start, velg Alle programmer, Administrativeverktøy og deretter tjenester.
    2. Finn tjenesten starter med Dynamics Server$.
    3. Høyreklikk tjenesten, og klikk deretter Egenskaper.
    4. Klikk kategorien Logg på .
    5. Under Logg på som, kan du angi hvilken konto som brukes til å logge på AOS-tjenesten.

      Notater
      • Som standard brukes NT Authority\Network Service -kontoen til å logge på AOS-tjenesten.
      • Hvis AOS-tjenesten er på samme datamaskin som SQL Server, er kontoen som krever SQL Server-tillatelsene kontoen NT-Myndighet\nettverkstjeneste .
      • Hvis AOS-tjenesten kjører på en annen datamaskin fra SQL Server, er kontoen som krever tillatelser på SQL-serveren i navnet på datamaskinen som kjører AOS-tjenesten. Formatet på navnet på datamaskinen er som følger:
        domain\computer_name$
        I dette tilfellet domene er navnet på nettverksdomenet og datamaskinnavn$ er navnet på AOS-serveren.
  2. Bruk en av følgende fremgangsmåter, avhengig av hvilken versjon av SQL Server du kjører.

    SQLServer 2000

    For SQL Server 2000, følger du denne fremgangsmåten:
    1. Klikk Start, Alle programmer, Microsoft SQL Server, og klikk deretter Enterprise Manager.
    2. Utvid Microsoft SQL Servers.
    3. Utvid SQL Server Group.
    4. Utvid (lokal) (Windows NT).
    5. Utvid Sikkerhet.
    6. Klikk pålogginger.
    7. Høyreklikk kontoen som du fant i trinn 1, og klikk deretter Egenskaper.
    8. Klikk kategorien Tilgang til databasen .
    9. Velg Axapta-databasen, og kontroller deretter at det er merket av for følgende databaseroller:
      • db_ddladmin
      • db_datareader
      • db_datawriter
    10. Klikk på OK.
    11. Utvide databaser.
    12. Utvid Dynamics -databasen.
    13. Velg Lagrede prosedyrer, og finn deretter følgende lagrede prosedyrer:
      • createserversessions
      • createusersessions
    14. Høyreklikk en lagret prosedyre, og klikk deretter Egenskaper.
    15. Klikk tillatelser.
    16. Finn kontoen som du fant i trinn 1, klikker du for å merke av for EXEC , og klikk deretter OK.

      Obs! Gjenta trinn 2n til 2p for den andre lagrede prosedyren i trinn 2m.

    SQLServer 2005

    For SQL Server 2005, følger du denne fremgangsmåten:
    1. Klikk Start, Alle programmer, Microsoft SQL Server 2005, og klikk deretter SQL Server Management Studio.
    2. Dobbeltklikk Sikkerheti kategorien Sammendrag .
    3. Dobbeltklikk pålogginger.
    4. Høyreklikk kontoen som du fant i trinn 1, og klikk deretter Egenskaper.
    5. Klikk tilordne brukeren.
    6. Velg Axapta-databasen, og kontroller deretter at det er merket av for følgende databaseroller:
      • db_ddladmin
      • db_datareader
      • db_datawriter
    7. Klikk på OK.
    8. Utvide databaser.
    9. Utvid Dynamics -databasen.
    10. Utvid programmerbarhet.
    11. Utvid lagrede prosedyrer.
    12. Finn følgende lagrede prosedyrer:
      • createserversessions
      • createusersessions
    13. Høyreklikk en lagret prosedyre, og klikk deretter Egenskaper.
    14. Klikk tillatelser.
    15. Finn kontoen som du fant i trinn 1 og klikk for å velge avmerkingsboksen Gi om tillatelse for EXEC .

      Obs! Gjenta trinn 2m til 2o for den andre lagrede prosedyren i trinn 2l.

Metode 3: Finne ut om antallet AOS-lisenser er overskredet

Hvis du vil finne ut om hvor mange AOSer som du for øyeblikket er lisensiert overskrides, gjør du følgende:
  1. Start Microsoft Dynamics AX 4.0, og logg deretter på.
  2. Klikk Administrasjon.
  3. Utvide installasjonen.
  4. Utvid systemet.
  5. Klikk på Lisensinformasjon.
  6. Velg AOS-servere under Beskrivelsei kategorien System .
  7. Legg merke til hvor mange AOSer som du for øyeblikket er lisensiert i Status -kolonnen.
Obs! Hvis du vil starte en ekstra AOS, kan du avslutte en AOS kjører. Du kan også kjøpe flere lisenser for AOS.

Metode 4: Kontroller at sorteringsrekkefølgen for SQL Server-database er

Sorteringsrekkefølgen for databasen må være case-insensitive i Microsoft Dynamics AX 4.0.


Hvis du vil angi sorteringsrekkefølgen i din situasjon, kan du bruke en av fremgangsmåtene nedenfor som passer for din versjon av SQL Server du kjører.

Microsoft SQL Server 2000

For Microsoft SQL Server 2000, følger du denne fremgangsmåten:
  1. Klikk Start, Alle programmer, Microsoft SQL Server, og klikk deretter Query Analyzer.
  2. Logg Query Analyzer, og deretter kjører du følgende skript:
    sp_helpsort

Microsoft SQL Server 2005

For Microsoft SQL Server 2005, følger du denne fremgangsmåten:
  1. Klikk Start, Alle programmer, Microsoft SQL Server 2005, og klikk deretter SQL Server Management Studio.
  2. Klikk Ny spørring, og kjør deretter følgende skript:
    sp_helpsort
I resultatlisten skript, skal det være en oppføring som sier "" eller "bokstaver".