Problèmes connus relatifs à l'assesseur EBS

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

Résoudre une erreur de privilèges insuffisants

Après l'authentification IAM, au lieu d'obtenir l'accès à 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 <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 à 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 de 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 $

Pour résoudre ce problème, appliquez la dernière mise à jour de patch critique Oracle E-Business Suite version 12 (janvier 2013) ou une version plus récente. Cette mise à jour des patches critiques permet à AppsLogoutRedirect.java d'exploiter les profils APPS_SSO et APPS_AUTH_AGENT. Pour plus d'informations sur l'application de ce patch, consultez le document de la base 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 d'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 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 de domaine 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 pas en synchronisation temporelle avec IAM et, par conséquent, le jeton transmis par IAM est en dehors de la période de validité et, par conséquent, l'erreur Jeton arrivé à expiration.

Assurez-vous que la date et l'heure du système sur lequel l'assesseur EBS est déployé sont synchronisées avec les serveurs NTP, et donc 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.

Traitement de 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 le jeu de valeurs ebs.ds.name sur la même valeur que le nom de source de données créé dans WebLogic.

Résolution d'un problème de lien profond

Après l'authentification IAM, au lieu d'obtenir l'accès à 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 de cookie JSESSION ID de l'application d'assesseur E-Business Suite dans le fichier weblogic.xml. S'il existe une autre application Web dans WebLogic avec le même nom de cookie, cela provoquera un conflit.

Problèmes lors de la déconnexion

Si vous rencontrez des problèmes au cours du processus de déconnexion, vérifiez la valeur du paramètre URL de réacheminement après déconnexion dans IAM et la valeur du paramètre 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. 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 d'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 de l'URL de réacheminement après la 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 vers le serveur WebLogic. Assurez-vous que la valeur de ce paramètre correspond au paramètre URL de réacheminement post-déconnexion dans IAM.

Erreur de client non valide : échec de l'authentification du client

Vous obtenez une erreur qui inclut invalid_client et l'échec de l'authentification du client, par exemple :

<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 du 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.

Les profils principaux Oracle EBS ne peuvent pas être modifiés

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

  1. Dans Oracle EBS, accédez à la page Administration des applications Oracle d'Oracle EBS. Cliquez sur l'onglet Services de base, puis sur l'onglet Profils.
  2. Lorsque l'application Oracle EBS ne contient aucune valeur, le bouton Modifier est désactivé.
  3. Cliquez sur 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

Le message qui inclut
The Applications user,
          EBSASSERTER is not authorized to access the database
comme 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 approprié n'a pas été affecté à l'utilisateur asserteur présent dans l'application EBS. Connectez-vous à l'application Oracle EBS et attribuez 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 au sein du 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 ne cesse d'augmenter et les sessions inactives sont fermées. Cela entraîne le remplissage du pool de connexions et l'impossibilité d'établir de nouvelles connexions avec Oracle EBS DatabaseThis 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)

Un redémarrage des serveurs WebLogic agit comme un 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 en l'absence d'activité sur une connexion réservée pendant le nombre de secondes indiqué. Lorsque cette option 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 du serveur Weblogic.
  2. Accédez à Sources de données.
  3. Recherchez le nom de la source de données à modifier, puis cliquez sur Source de données.
  4. Cliquez sur Configurer un pool de connexions.
  5. Développez l'onglet Advanced.
  6. Mettez à jour le délai d'expiration de connexion inactive sur la nouvelle valeur.

    Par exemple : Inactive Connection Timeout = 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 le jeu de valeurs ebs.ds.name sur la même valeur que le nom de source de données créé dans WebLogic.