EBS Asserterの既知の問題

IAMでEBS Asserterを操作するための既知の問題。

権限不足エラーの解決

IAM認証後、Oracle EBSへのアクセス権を取得するかわりに、ユーザーはエラー・メッセージYou have insufficient privileges for the current operation.を使用してEBSにリダイレクトされますユーザーは再度サインインするように求められます。

通常、Oracle EBSアプリケーションがこのエラーをスローする場合、不正なドメインでCookieが設定されています。これを確認するには、<HOME DIR>/ebsasserter.logにあるEBS Asserterデバッグ・ログを確認します。次に例を示します

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

この例では、EBS Asserterデバッグ・ログは、sessionCookieDomainに正しくない値が.oracle.comに設定されていることを示しています。

ICX_PARAMETERS.SESSION_COOKIE_DOMAINには値を設定しないでください。

  1. ICX_PARAMETERSSESSION_COOKIE_DOMAIN設定を更新します
    SQL> select SESSION_COOKIE_DOMAIN from ICX_PARAMETERS;
    
    SESSION_COOKIE_DOMAIN
    ------------------------------
    .oracle.com
  2. ICX_PARAMETERSsession_cookie_domainNULLに設定します
    update ICX_PARAMETERS set SESSION_COOKIE_DOMAIN = NULL;
    commit;
  3. すべてのサービスを再起動します。
  4. 問題を再テストします。

ログアウト中の内部サーバー・エラーの解決

Oracle EBSからログアウトすると、ブラウザによってエラー・メッセージInternal Server Errorがスローされます。

この問題は、Oracle EBS側に古いバージョンのAppsLogoutRedirect.javaがあるために発生します。

Oracle EBSのAppsLogoutRedirect.javaのヘッダーをチェックして、バージョン番号を確認します。次に例を示します。

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 $

これを解決するには、最新のOracle E-Business Suiteリリース12クリティカル・パッチ・アップデート(2013年1月)または最新バージョンを適用します。このクリティカル・パッチ・アップデートにより、AppsLogoutRedirect.javaAPPS_SSOおよびAPPS_AUTH_AGENTプロファイルを利用できます。このパッチの適用方法の詳細は、ナレッジ・ドキュメント(2018年7月) (ドキュメントID 2379675.1)を確認してください。

時間同期の問題の修正

EBS AsserterアプリケーションURLへのアクセス中に、Oracle EBSアプリケーションのサインイン・フローにより内部サーバー・エラーが発生しました。

HTTPヘッダー・トレースは次のようになります

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は、1537715029に設定されています。EpochConverterを使用して、現在のUnixエポック時間を読取り可能な日時に変換します。つまり、トークンの有効期限は、Sunday, September 23, 2018 3:03:49 PM GMTに設定されています。ただし、EBS Asserterドメイン・ログの時間はSep 23, 2018 6:53:31,380 PM ASTです。グリニッジ標準時は、大西洋標準時より4時間進んでいることに注意してください。つまり、時間セットはSep 23, 2018 10:53:31 PM GMTです。

EBS AsserterがデプロイされているシステムはIAMと時間どおり同期されていません。その結果、IAMによって渡されたトークンは有効期間外となり、トークン失効済エラーになります。

EBS Asserterがデプロイされているシステムの日時がNTPサーバーおよびIAMホストと時間同期されていることを確認してください。

JavaエラーExceptionInInitializerErrorの処理

EBS AsserterアプリケーションURLにアクセスしている間、Oracle EBSアプリケーションによってjava.lang.ExceptionInInitializerErrorエラーがスローされます。

EBSアサータ・デバッグ・ログに、次のJavaエラーが表示されます

<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

Javaエラーの処理 RuntimeException

EBS AsserterアプリケーションURLにアクセスしている間、Oracle EBSアプリケーションによってjava.lang.RuntimeExceptionエラーがスローされます。

EBSアサータのデバッグ・ログに、次のJavaエラーが表示されます

<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)

これを解決するには、ebs.ds.name値セットをWebLogicで作成されたデータソース名と同じ値に設定します。

ディープ・リンクの問題の修正

IAM認証後、Oracle EBSへのアクセス権を取得するかわりに、ユーザーはエラー・メッセージYou have insufficient privileges for the current operation.を使用してEBSにリダイレクトされますユーザーは再度サインインするように求められます。

これは、ディープ・リンクが機能していないために発生する可能性があります。

whitelist.urlsブリッジ・プロパティが構成されていることを確認します。問題が解決されない場合は、whitelist.urls構成でポート番号を明示的に指定します。たとえば、whitelist.urls=http://ebs.oracle.com:80/OA_HTML…です。

また、weblogic.xmlファイルで、E-Business Suite AsserterアプリケーションのJSESSION ID Cookie名を確認してください。WebLogicに同じCookie名の他のWebアプリケーションがある場合、競合が発生します。

サインアウト時の問題

サインアウト・プロセス中に問題が見つかった場合は、IAMの「ログアウト後のリダイレクトURL」パラメータ値およびbridge.propertiesファイルのpost.logout.URLパラメータ値を確認します。

bridge.propertiesファイルのpost.logout.urlはオプション・パラメータであり、デフォルトでは値を指定する必要はありません。このパラメータを使用して、EBS Asserterがサインアウト・プロセスを終了した後、EBS Asserterアプリケーションがユーザー・ブラウザを指定されたURLにリダイレクトします。

有効な場合、bridge.propertiesファイルのpost.logout.URLの値は、IAMのEBS Asserterアプリケーションの「ログアウト後のリダイレクトURL」パラメータの値と一致する必要があります。

  1. IAMでEBS Asserterアプリケーションを開き、「ログアウト後のリダイレクトURL」の値を更新します。
  2. ebs.warファイルを開き、bridge.propertiesファイルを更新し、warファイルを再生成して、そのファイルをWebLogic Serverに再デプロイします。このパラメータの値が、IAMの「ログアウト後のリダイレクトURL」パラメータと一致していることを確認します。

クライアント認証で無効なクライアント・エラーが発生しました

invalid_clientを含むエラーが発生し、次のようなクライアント認証に失敗しました

<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. IAM機密アプリケーションで生成されたクライアントIDおよびクライアント・シークレットを確認します。
  2. 正しいクライアントIDおよびクライアント・シークレットを使用してウォレット・ファイルを再生成します。
  3. Weblogic Serverでasserter.warファイルを再デプロイします。

編集できないOracle EBSコア・プロファイル

Oracle EBSコア・プロファイルを編集できないというエラーが表示されます。これを解決するには:

  1. Oracle EBSで、Oracle EBSの「Oracle Applications管理」ページに移動します。「コア・サービス」タブをクリックし、「プロファイル」タブをクリックします。
  2. Oracle EBSアプリケーションに値が含まれていない場合、「編集」ボタンは無効になります。
  3. 「プロファイルの定義」をクリックし、プロファイル値を入力します。

EBS Asserterが認可エラーでOracle EBSに接続できない

次のメッセージが表示されます
The Applications user,
          EBSASSERTER is not authorized to access the database
こんな感じです。
<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.

このエラーは、EBSアプリケーションに存在するアサータ・ユーザーに正しいロールが割り当てられていない場合に発生します。Oracle EBSアプリケーションにサインインし、アサータ・ユーザーにAPPS_CONNECT_SCHEMAロールを指定します。

Weblogic上のEBS AsserterのJDBCアクティブ接続の使用

EBS Asserterは、WebLogicサーバー内のJNDIサービスを使用して、Oracle EBS DBとのDB接続を作成します。時間の経過とともに、接続数は増加し続け、非アクティブ・セッションはクローズされます。これにより、接続プールが一杯になり、Oracle EBS DatabaseThisで新しい接続を行うことができないため、EBS Asserterで接続エラーが発生します。

<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)

WebLogicサーバーを再起動すると、アサータを新しい接続で使用できるようにするための一時的な修正として機能します。

これを完全に修正する方法は、管理コンソールの「JDBCデータ・ソース: 構成: 接続プール」ページでInactive Connection Timeoutの値を指定することです。次の値を設定する場合
Inactive
        Connection Timeout
WebLogicサーバーは、指定した秒数の予約された接続に対してアクティビティが発生しなかった場合、接続をデータ・ソースに強制的に戻します。0(デフォルト値)に設定した場合、この機能は無効になります。
正の値を設定するには
Inactive Connection
        Timeout
:
  1. Weblogic Server管理コンソールにサインインします。
  2. 「データ・ソース」に移動します。
  3. 変更するデータ・ソース名を検索し、「データ・ソース」をクリックします。
  4. 「接続プールの構成」をクリックします。
  5. 「詳細」タブを展開します。
  6. 「非アクティブ接続タイムアウト」を新しい値に更新します。

    例: 非アクティブな接続タイムアウト= 900 (15分)。

ノート

これらの構成は、各顧客の環境に固有です。環境内で負荷テストを実行し、結果に基づいて構成をチューニングすることをお薦めします。

EBS Asserterのデータベース・エラー

EBS Asserterのデータベースへの接続がinvalid table nameで失敗します。次に例を示します
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.

このエラーは、名前が一致しないためで、bridge.propertiesebs.ds.nameパラメータがEBSAsserterのWebLogicで作成されたデータソースの名前と同じではありません。

これを解決するには、ebs.ds.name値セットをWebLogicで作成されたデータソース名と同じ値に設定します。