Dépannage

Utilisez les informations de dépannage pour identifier et résoudre les problèmes courants qui peuvent survenir lors de l'utilisation de votre plate-forme Internet of Things (IoT).

Assurez-vous de disposer des droits d'accès requis. Un administrateur accorde l'accès en créant les stratégies requises. Pour plus d'informations, reportez-vous à Prérequis et à Détails de stratégie pour la plate-forme Internet of Things (IoT).

Mettez à jour vos mots de passe

Vous devrez peut-être réinitialiser le mot de passe de votre base de données lors de la connexion à la base de données à l'aide d'APEX ou lors de la connexion directe à la base de données à l'aide du groupe de domaines d'identité.

Cause : si vous utilisez APEX et que vous devez réinitialiser votre mot de passe.

Si vous configurez l'accès pour afficher vos données IoT dans APEX, deux utilisateurs différents sont créés : un utilisateur de base de données et un administrateur d'espace de travail APEX. Il s'agit de deux utilisateurs différents avec le même nom d'utilisateur et le même mot de passe initial. Vous pouvez mettre à jour les mots de passe de chaque utilisateur.

Solution : mettez à jour le mot de passe de votre base de données APEX.

  1. Seul un administrateur d'espace de travail APEX peut modifier le mot de passe de l'utilisateur de base de données. Initialement, l'administrateur d'espace de travail APEX utilise votre mot de passe de base de données APEX pour se connecter. Ensuite, suivez ces étapes pour modifier le mot de passe de base de données.

    Dans APEX, connectez-vous à l'espace de travail du domaine IoT en tant qu'administrateur, en utilisant les éléments suivants comme nom d'espace de travail et nom utilisateur de base de données, avec votre mot de passe de base de données APEX en cours.
    Remarque

    Notez les deux traits de soulignement __WKSP.
    <domain-short-id-from-device-host>__WKSP
  2. Accédez à SQL Workshop et sélectionnez SQL Commands (Commandes SQL).
  3. Vérifiez que le schéma <iot-domain-short-id-from-device-host>__WKSP est sélectionné dans le menu déroulant du schéma en haut à droite. Notez que le schéma contient deux traits de soulignement.
  4. Utilisez l'instruction ALTER USER SQL et la clause REPLACE requise pour modifier le mot de passe de l'utilisateur de base de données :
    ALTER USER <workspace-administrator-user-name> IDENTIFIED BY "<new-password>" REPLACE "<old-password>";
  5. Sélectionnez Exécuter.
  6. Exemple de résultats illustrant la mise à jour du mot de passe :
    User altered.
    
    0.24 seconds

Solution : mettez à jour votre mot de passe APEX.

Pour modifier votre mot de passe APEX, procédez comme suit :
  • En tant qu'administrateur d'espace de travail APEX, vous pouvez modifier le mot de passe d'administration de l'espace de travail. Une fois connecté à APEX en tant qu'administrateur, sélectionnez l'option Set APEX Account Password (Définir le mot de passe du compte APEX). Pour plus d'informations, reportez-vous à Réinitialisation du mot de passe dans APEX.
  • En tant qu'utilisateur APEX, lorsque vous serez connecté à l'application APEX pour la première fois, vous serez invité à modifier votre mot de passe APEX. Après votre première connexion, vous pouvez réinitialiser votre mot de passe sur la page de connexion à APEX.
Remarque

Selon le système que vous utilisez, des guillemets peuvent être requis lorsque votre mot de passe contient des caractères spéciaux.

Solution : réinitialisez le mot de passe de l'espace de travail APEX à l'aide de l'API

En tant qu'administrateur d'espace de travail APEX, vous pouvez modifier le compte d'espace de travail APEX IoT si celui-ci est verrouillé. En tant qu'administrateur, vous pouvez exécuter cette opération ConfigureIotDomainDataAccess deux fois pour réinitialiser le mot de passe de l'espace de travail APEX.
POST /20250531/iotDomains/{iotDomainId}/actions/configureDataAccess
{
  "type": "APEX",
  "dbWorkspaceAdminInitialPassword": "<your-apex-initial-password>"
}

Cause : autorisation manquante lors de la connexion directe à la base de données

Si vous établissez une connexion directe à la base de données à l'aide de la commande d'interface de ligne de commande suivante et que vous n'êtes pas autorisé à vous connecter directement à la base de données, vous pouvez créer un mot de passe de base de données pour que le groupe de domaines d'identité se connecte.

Par exemple, lorsque vous utilisez la commande oci iot domain configure-direct-data-access et les paramètres requis pour configurer l'authentification d'un domaine IoT afin d'établir une connexion de base de données directe, vous ne pouvez pas vous connecter.

oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-domain-name>/<identity-group-name>"]'

ou si vous utilisez ce format :

oci iot domain configure-direct-data-access --iot-domain-id <iot-domain-OCID> --db-allow-listed-identity-group-names '["<tenancy-OCID:<identity-group-name>"]'

Solution : mettre à jour le mot de passe de la base de données pour l'utilisateur du domaine d'identité

Mettez à jour le mot de passe de base de données de l'utilisateur de domaine d'identité IAM. Pour ce faire, connectez-vous à votre location IoT et procédez comme suit :
  1. Ouvrez le menu de navigation, accédez à Identité et gestion, sélectionnez domaines.
  2. Sur la page de liste des domaines, sélectionnez le domaine d'identité que vous voulez utiliser et connectez-vous à un domaine IoT.
  3. Sélectionnez l'onglet Gestion des utilisateurs, puis sélectionnez l'utilisateur pour lequel mettre à jour le mot de passe. Sélectionnez l'onglet Mots de passe de base de données pour mettre à jour le mot de passe supprimer le mot de passe de base de données IAM en cours et créer un mot de passe de base de données IAM.

Les modèles de jumeaux numériques utilisent les spécifications DTDL v3

Cause : la création d'un modèle de jumeau numérique entraîne une erreur

Lorsque vous créez un modèle de jumeau numérique en cas d'erreur, vérifiez que vous n'utilisez que les spécifications DTDL v3 prises en charge.

Solution : utiliser uniquement les spécifications DTDL v3 prises en charge

Lorsque vous définissez le modèle de jumeau numérique, toutes les spécifications DTDL v3 sont prises en charge, à l'exception des extensions MQTT et des propriétés accessibles en écriture.
  • Si une propriété writable est incluse dans le modèle de jumeau numérique, elle doit être définie sur false.
  • Seule la valeur content du composant peut être annotée en tant que historized, ce qui indique que la plate-forme IoT doit conserver la télémétrie de série temporelle de ce capteur. Reportez-vous à l'exemple de modèle de jumeau numérique dtdl-model-specifications.json. Pour un exemple, reportez-vous à Création d'un modèle de jumeau numérique.

Limites de service dépassées

Résolvez les limites de service de ressources de groupe de domaines IoT ou de domaine IoT par région.

Cause : limites de ressources IoT par région

La plate-forme Internet of Things (IoT) dispose de limites sur le nombre de ressources par région.

Si vous essayez de créer plus de 2 domaines IoT ou plus dans un groupe de domaines IoT, l'erreur suivante peut apparaître. Pour plus d'informations, reportez-vous à create an IoT domain ou à IoT domain group.

The following service limits were exceeded: <resource-count>. Request a service limit increase from the service limits page in the console.

Remarque

Oracle limite la création de jusqu'à 2 domaines IoT dans chaque groupe de domaines IoT. Le nombre maximal de groupes de domaines IoT est de 5 et le nombre maximal de domaines IoT est de 10 par région dans votre location. Pour créer un domaine IoT, l'utilisateur doit disposer d'un accès en lecture pour le groupe de domaines IoT associé.

Solution : Mettre à niveau et augmenter les limites

Reportez-vous à Limites de service afin de vérifier les limites pour les ressources IoT. Si vous devez augmenter les limites, vous pouvez demander une augmentation de limite de service.

Utilisation de guillemets avec des OCID

Dans Oracle Cloud Infrastructure (OCI), un OCID (identificateur Oracle Cloud) est un ID unique affecté à chaque ressource cloud. Selon le scénario spécifique, lorsque vous interagissez avec OCI via l'interface de ligne de commande (CLI), l'entrée JSON ou les appels d'API, vous devrez peut-être mettre l'OCID entre guillemets afin qu'il soit interprété comme une valeur de chaîne. Ou vous devrez peut-être supprimer des guillemets si un éditeur de code que vous utilisez ajoute des guillemets indésirables.

Remarque

Certaines applications ou certains éditeurs de code peuvent ajouter des guillemets indésirables à vos valeurs, vérifier et enlever les guillemets indésirables, ou cela peut entraîner une erreur.

Pour se conformer aux normes JSON et garantir une interprétation correcte par les services OCI, un OCID doit être placé entre guillemets, de sorte qu'il soit traité comme une valeur de chaîne dans des structures JSON ou des entrées complexes. Lorsqu'il est transmis en tant qu'arguments simples et directs aux commandes de la CLI, il n'est souvent pas nécessaire de fournir des devis explicites.

  • Ne pas citer d'OCID dans l'interface de ligne de commande : si un OCID est un argument direct d'une commande d'interface de ligne de commande, vous n'avez pas besoin d'utiliser explicitement des guillemets, sauf s'il fait partie d'une chaîne plus grande ou d'un type complexe nécessitant un guillemet.
    Cet exemple montre comment utiliser un OCID est une commande d'interface de ligne de commande sans guillemets :
    oci iot digital-twin-adapter create --iot-domain-id ocid1.iotdomain.oc1.example-ocid 
  • Création d'OCID lors de l'intégration dans des chaînes JSON : si vous transmettez un paramètre complexe à une commande d'interface de ligne de commande en tant que chaîne JSON avec une valeur d'OCID, l'OCID de la chaîne JSON doit être placé entre guillemets doubles et échappé si nécessaire. Selon l'outil et le système d'exploitation que vous utilisez, Windows est requis. Pour plus d'informations, reportez-vous à Transmission d'entrée complexe dans l'interface de ligne de commande.
  • Création d'OCID dans des objets JSON : toutes les valeurs de chaîne d'un objet JSON doivent être placées entre guillemets doubles. Si un OCID est une valeur dans un objet JSON que vous envoyez à OCI à l'aide d'une API ou d'une commande d'interface de ligne de commande, il doit être entre guillemets :
    { "displayName": "my_resource", "compartmentId": "ocid1.compartment.oc1..<example>" } 
  • Création d'OCID dans les appels d'API : dans les corps ou les paramètres de demande : lors des appels d'API vers OCI, si un OCID fait partie du corps de la demande en tant que charge utile JSON ou paramètre de requête, il doit être traité comme une chaîne et placé entre guillemets dans la charge utile JSON. Ou il doit être correctement codé en tant que chaîne pour les paramètres d'URL. Les exigences spécifiques dépendent de l'adresse d'API et du type de données attendu pour ce paramètre.

Dans les instances de jumeau numérique à l'aide de guillemets pour une clé externe

Clé externe égale le nom utilisateur de l'appareil : si une instance de jumeau numérique est créée avec des guillemets intégrés dans la clé externe, par exemple : "\"american-auto\"", le nom utilisateur d'authentification de base, ces guillemets font partie du nom utilisateur requis et doivent être envoyés littéralement. Cela provoque souvent des problèmes de citation de shell. Si vous avez inclus des guillemets dans le nom de clé externe, votre demande curl doit également inclure les guillemets. Sinon, une non-concordance se produit et entraîne une erreur 401 Unauthorized.

Si vous utilisez des guillemets dans la valeur instance de jumeau numérique external key, vous devez les utiliser lorsque vous effectuez un appel d'API. Vous pouvez également omettre les guillemets dans la valeur de clé externe.

Pour éviter les problèmes de devis, n'utilisez pas de guillemets dans la valeur de clé externe d'une instance de jumeau numérique. Par exemple, le paramètre d'interface de ligne de commande --external-key et la valeur correspondante qui n'utilise pas de guillemets sont affichés :

--external-key 01-23-45-67-89-ab

Meilleure pratique : créez des instances de jumeau numérique avec des clés externes et n'incluez pas de guillemets, par exemple, american-auto. Ou lorsque vous devez vous authentifier avec des noms utilisateur entre guillemets, créez un en-tête Authorization: Basic ... plutôt que d'utiliser -u pour éviter les erreurs de citation.

Dans les adaptateurs de jumeaux numériques, les objets JSON doivent utiliser des guillemets

Les expressions sans guillemets ne sont pas prises en charge dans les routages entrants digital twin adapter. Pour plus d'exemples, reportez-vous à Scénarios.

Dans un adaptateur jumeau numérique, les expressions inbound-route ne sont pas prises en charge en tant que valeurs brutes sans guillemets, par exemple :

"$.speed": ${(.velocity_kph / 1.609) | floor}
Dans un adaptateur jumeau numérique, pour les expressions de valeurs inbound-route, elles doivent être intégrées sous forme de chaînes à l'aide de guillemets, par exemple :
"$.speed": "${(.velocity_kph / 1.609) | floor}"