Problèmes connus relatifs à l'assesseur EBS

Problèmes connus pour l'utilisation de l'assesseur EBS dans IAM.

Résolution d'une erreur de privilèges insuffisants

Après l'authentification IAM, au lieu d'accéder à Oracle EBS, l'utilisateur est redirigé vers EBS avec le message d'erreur You have insufficient privileges for the current operation. L'utilisateur est invité à se reconnecter.

En règle générale, lorsque l'application Oracle EBS génère cette erreur, cela signifie que le cookie est défini avec un domaine incorrect. Pour confirmer cela, consultez le journal de débogage de l'assesseur EBS, disponible à l'adresse suivante : <HOME DIR>/ebsasserter.log. Par exemple :

Aug 22, 2018 2:26:34 PM oracle.apps.fnd.ext.common.EBiz init
FINE: Ebiz init(): sessionCookieDomain =.oracle.com ; protocol=https:; ssoCookieName= ORASSO_AUTH_HINT

Dans cet exemple, le journal de débogage de l'assesseur EBS indique que la valeur de sessionCookieDomain est incorrecte, étant définie sur .oracle.com.

La valeur ICX_PARAMETERS.SESSION_COOKIE_DOMAIN ne doit être définie sur aucune valeur.

  1. Mettez à jour le paramètre SESSION_COOKIE_DOMAIN dans ICX_PARAMETERS.
    SQL> select SESSION_COOKIE_DOMAIN from ICX_PARAMETERS;
    
    SESSION_COOKIE_DOMAIN
    ------------------------------
    .oracle.com
  2. Définissez session_cookie_domain sur NULL dans ICX_PARAMETERS
    update ICX_PARAMETERS set SESSION_COOKIE_DOMAIN = NULL;
    commit;
  3. Redémarrez tous les services.
  4. Testez de nouveau le problème.

Résoudre une erreur de serveur interne lors de la déconnexion

Lorsque vous êtes déconnecté d'Oracle EBS, le navigateur génère un message d'erreur Internal Server Error.

Ce problème survient car il existe une ancienne version de AppsLogoutRedirect.java côté Oracle EBS.

Vérifiez l'en-tête AppsLogoutRedirect.java dans Oracle EBS pour voir le numéro de version, par exemple

adident Header $JAVA_TOP/oracle/apps/fnd/sso/AppsLogoutRedirect.class
$Header AppsLogoutRedirect.java 120.10.12010000.7 2010/01/19 20:18:52 rsantis ship $

Résolvez ce problème en appliquant la dernière mise à jour de patch critique d'Oracle E-Business Suite version 12, janvier 2013, ou une version plus récente. Cette mise à jour de patches critiques permet à AppsLogoutRedirect.java d'utiliser les profils APPS_SSO et APPS_AUTH_AGENT. Pour plus d'informations sur l'application de ce patch, consultez le document de connaissances (juillet 2018) (ID de document 2379675.1).

Résolution d'un problème de synchronisation temporelle

Lorsque vous accédez à l'URL de l'application de l'assesseur EBS, le flux de connexion à l'application Oracle EBS a généré une erreur de serveur interne.

La trace d'en-tête HTTP se présente comme suit

GET https://xxxxxxxxxxxxxxxxxx.oracle.com:7002/ebs/response?code=AQIDBAVcZbun_M5qU4-t9LUCYDjAOgWYiDOrf1Kb5ndbWAEYd05C-uxDfSwP8Ejfn51WT-gTuYj6bLFFYAFHQEqgYy26MTEgRU5DUllQZZIIFFVElPTl9LRVkxNCB7djF9NCAFFFABCDEF= HTTP/1.1

Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it from fulfilling the request

session_exp est défini sur 1537715029. Utilisez EpochConverter pour convertir la période Unix actuelle au format Epoch en date et heure lisibles par l'utilisateur. Par conséquent, le délai d'expiration dans le jeton est défini sur Sunday, September 23, 2018 3:03:49 PM GMT. Cependant, l'heure dans le journal des domaines de l'assesseur EBS est Sep 23, 2018 6:53:31,380 PM AST. L'heure de Greenwich est antérieure de 4 heures à l'heure normale de l'Atlantique. L'heure définie est donc Sep 23, 2018 10:53:31 PM GMT.

Le système sur lequel l'assesseur EBS est déployé n'est ni synchronisé temporellement avec IAM, et de ce fait, le jeton transmis par IAM est en dehors de la période de validité, ce qui cause l'erreur Token Expired.

Assurez-vous que la date et l'heure du système sur lequel l'assesseur EBS est déployé est synchronisée avec le serveur NTP et, par conséquent, l'hôte IAM.

Gérer l'erreur Java ExceptionInInitializerError

Lorsque vous accédez à l'URL de l'application d'assesseur EBS, l'application Oracle EBS génère l'erreur java.lang.ExceptionInInitializerError.

Le journal de débogage de l'assesseur EBS affiche l'erreur Java suivante

<Feb 26, 2019 2:17:16,884 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@2100554246[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.ExceptionInInitializerError
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:36)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78

Elle survient en raison de paramètres incorrects dans le fichier bridge.properties. Vérifiez le fichier bridge.properties et assurez-vous qu'il présente la configuration requise. Vérifiez également que le chemin indiqué dans wallet.path dans le fichier bridge.properties est valide.

Gérer l'erreur Java RuntimeException

Lorsque vous accédez à l'URL de l'application d'assesseur EBS, l'application Oracle EBS génère l'erreur java.lang.RuntimeException.

Le journal de débogage de l'assesseur EBS affiche l'erreur Java suivante

<Feb 26, 2019 2:01:33,454 PM PST> <Error> <HTTP> <BEA-101020> 
<[ServletContext@1207779454[app:ebs module:ebs.war path:null spec-version:3.1]] Servlet failed with an Exception
java.lang.RuntimeException: javax.naming.NameNotFoundException: Unable to resolve 'visionDS1'. Resolved ''; remaining name 'visionDS1'
at com.oracle.ebs.sso.ConnectionProvider.getConnection(ConnectionProvider.java:42)
at com.oracle.ebs.sso.RequestWrapperFilter.doFilter(RequestWrapperFilter.java:34)

Pour résoudre ce problème, définissez la valeur ebs.ds.name définie sur le même nom que celui de la source de données créée dans WebLogic.

Résoudre un problème de lien profond

Après l'authentification IAM, au lieu d'accéder à Oracle EBS, l'utilisateur est redirigé vers EBS avec le message d'erreur You have insufficient privileges for the current operation. L'utilisateur est invité à se reconnecter.

Cela peut arriver parce que le lien profond ne fonctionne pas.

Vérifiez que la propriété de pont whitelist.urls est configurée. Si le problème persiste, indiquez les numéros de port explicitement dans la configuration whitelist.urls. Par exemple : whitelist.urls=http://ebs.oracle.com:80/OA_HTML….

Vérifiez également le nom du cookie d'ID JSESSION de l'application d'assesseur E-Business Suite dans le fichier weblogic.xml. S'il existe dans WebLogic une autre application Web avec le même nom, un conflit survient.

Problèmes lors de la déconnexion

Si vous rencontrez des problèmes au cours du processus de déconnexions, vérifiez la valeur des paramètres URL de réacheminement post-déconnexion dans IAM et la valeur des paramètres post.logout.url dans le fichier bridge.properties.

Le paramètre post.logout.url dans le fichier bridge.properties est facultatif et, par défaut, vous n'avez pas besoin de fournir de valeur. Vous utilisez ce paramètre pour que l'application d'assesseur EBS redirige le navigateur utilisateur vers l'URL indiquée une fois que l'assesseur EBS a terminé le processus de déconnexion.

Si cette option est activée, la valeur de post.logout.url dans le fichier bridge.properties doit correspondre à la valeur du paramètre URL de réacheminement post-déconnexion pour l'application d'assesseur EBS dans IAM.

  1. Ouvrez l'application d'assesseur EBS dans IAM et mettez à jour la valeur URL de réacheminement post-déconnexion.
  2. Ouvrez le fichier ebs.war, mettez à jour le fichier bridge.properties, régénérez le fichier war et redéployez le fichier sur le serveur WebLogic. Assurez-vous que la valeur de ce paramètre correspond au paramètre URL du réacheminement post-déconnexion dans IAM.

Erreur client non valide avec échec de l'authentification client

Vous obtenez une erreur qui incluait invalid_client et l'authentification du client a échoué, comme ceci

<Error> <oracle.security.jps.idcsbinding.shared.AuthenticationManagerImpl> <BEA-000000> <getting error from server>

oracle.security.jps.idcsbinding.shared.AuthenticationManagerImpl clientCredentials

SEVERE: {"error":"invalid_client","error_description":"Client authentication failed.","ecid":"xxxx-xxxx-xxxx-xxxx-xxxx-xxxx"}
  1. Vérifiez l'ID client et la clé secrète client générés dans l'application confidentielle IAM.
  2. Régénérez le fichier de portefeuille à l'aide de l'ID client et de la clé secrète client corrects.
  3. Redéployez le fichier asserter.war sur les serveurs Weblogic.

Profils de base Oracle EBS non disponibles pour modification

Vous obtenez une erreur indiquant que les profils de base Oracle EBS ne sont pas disponibles pour modification. Pour résoudre ce problème :

  1. Dans Oracle EBS, accédez à la page Administration d'Oracle Applications dans Oracle EBS. Sélectionnez l'onglet Services de base, puis l'onglet Profils.
  2. Lorsque l'application Oracle EBS ne contient aucune valeur, le bouton Modifier est désactivé.
  3. Sélectionnez Définir un profil et entrez des valeurs de profil.

Impossible de se connecter à Oracle EBS avec l'assesseur EBS avec une erreur d'autorisation

Un message qui inclut
The Applications user,
          EBSASSERTER is not authorized to access the database
tel que celui-ci.
<Error> <Deployer> <wahatast> <AdminServer> <[STANDBY] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <c596f25b-e3d0-42e2-81a9-682c623d2d1c-00000162> <1677049594045> <[severity-value: 8] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <BEA-149265> 
<Failure occurred in the execution of deployment request with ID "24806329095989206" for task "weblogic.deploy.configChangeTask.2" on [partition-name: DOMAIN]. 
Error is: "weblogic.application.ModuleException: weblogic.common.ResourceException: ORA-20001: Oracle error -20001: The Applications user, EBSASSERTER is not authorized to access the database. has been detected in FND_SECURITY_PKG.FND_ENCRYPTED_PWD_X.

Cette erreur se produit lorsque le rôle correct n'a pas été affecté à l'utilisateur asserteur présent dans l'application EBS. Connectez-vous à l'application Oracle EBS et fournissez le rôle APPS_CONNECT_SCHEMA à l'utilisateur asserteur.

Utilisation de la connexion active JDBC pour l'assesseur EBS sur Weblogic

L'assesseur EBS utilise le service JNDI dans le serveur WebLogic pour créer des connexions de base de données avec la base de données Oracle EBS. Au fil du temps, le nombre de connexions continue d'augmenter et les sessions inactives sont fermées. Le pool de connexions est alors saturé et aucune nouvelle connexion avec Oracle EBS DatabaseThis n'est possible, ce qui entraîne une erreur de connexion au niveau de l'assesseur EBS.

<Error> <HTTP> <BEA-101017> <[ServletContext@784524422[app:ebs module:ebs.war path:null spec-version:3.1]] Root cause of ServletException.
weblogic.jdbc.extensions.PoolLimitSQLException: weblogic.common.resourcepool.ResourceLimitException: No resources currently available in pool PAVCRIDS to allocate to applications, please increase the size of the pool and retry..
at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:280)
at weblogic.jdbc.pool.Driver.connect(Driver.java:154)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:665)
at weblogic.jdbc.jts.Driver.connect(Driver.java:129)
at weblogic.jdbc.common.internal.WLDataSourceImpl.getConnectionInternal(WLDataSourceImpl.java:655)

Le redémarrage des serveurs WebLogic sert de correctif temporaire pour rendre l'assesseur disponible pour les nouvelles connexions.

Pour résoudre ce problème de manière permanente, indiquez une valeur pour Inactive Connection Timeout dans la page Source de données JDBC : Configuration : Pool de connexions de la console d'administration. Lorsque vous définissez une valeur pour
Inactive
        Connection Timeout
, le serveur WebLogic renvoie de force une connexion à la source de données lorsqu'il n'y a aucune activité sur une connexion réservée pendant le nombre de secondes que vous indiquez. Lorsqu'elle est définie sur 0 (valeur par défaut), cette fonctionnalité est désactivée.
Pour définir une valeur positive pour
Inactive Connection
        Timeout
:
  1. Connectez-vous à la console d'administration de Weblogic Server.
  2. Accédez à Sources de données.
  3. Recherchez le nom de source de données à modifier, puis sélectionnez Source de données.
  4. Sélectionnez Configurer un pool de connexions.
  5. Développez l'onglet Avancé.
  6. Mettez à jour le délai d'expiration de connexion inactive avec la nouvelle valeur.

    Par exemple : Délai d'expiration de connexion inactive = 900 (15 minutes).

Remarque

Ces configurations sont spécifiques à l'environnement de chaque client. Nous vous recommandons d'effectuer des tests de charge dans leur environnement et de régler vos configurations en fonction des résultats.

Erreur de base de données dans l'assesseur EBS

La connexion de l'assesseur EBS à la base de données échoue avec invalid table name. Par exemple :
Test "select count * from select 1 from fnd_nodes;" set up for pool "EbsDS1" failed with exception: "java.sql.SQLSyntaxErrorException: ORA-00903: invalid table name.

Cette erreur est due à une non-concordance de nom, où le paramètre ebs.ds.name dans bridge.properties n'est pas identique au nom de la source de données créée dans WebLogic d'EBSAsserter.

Pour résoudre ce problème, définissez la valeur ebs.ds.name définie sur le même nom que celui de la source de données créée dans WebLogic.