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
には値を設定しないでください。
ICX_PARAMETERS
のSESSION_COOKIE_DOMAIN
設定を更新しますSQL> select SESSION_COOKIE_DOMAIN from ICX_PARAMETERS; SESSION_COOKIE_DOMAIN ------------------------------ .oracle.com
ICX_PARAMETERS
でsession_cookie_domain
をNULL
に設定しますupdate ICX_PARAMETERS set SESSION_COOKIE_DOMAIN = NULL; commit;
- すべてのサービスを再起動します。
- 問題を再テストします。
ログアウト中の内部サーバー・エラーの解決
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 Critical Patch Update Jan 2013、またはより新しいバージョンを適用します。このクリティカル・パッチ・アップデートにより、AppsLogoutRedirect.java
でAPPS_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 Asserterデバッグ・ログには、次の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
これは、bridge.properties
ファイルの設定が間違っているために発生します。bridge.properties
ファイルを確認し、必要な構成が含まれていることをチェックします。また、bridge.properties
ファイルのwallet.path
で指定されたパスが有効であることを確認します。
JavaエラーRuntimeExceptionの処理
EBS AsserterアプリケーションURLにアクセスしているときに、Oracle EBSアプリケーションがjava.lang.RuntimeException
エラーをスローします。
EBS Asserterデバッグ・ログには、次の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」パラメータの値と一致する必要があります。
- IAMでEBS Asserterアプリケーションを開き、ログアウト後のリダイレクトURLの値を更新します。
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"}
- IAM機密アプリケーションで生成されたクライアントIDおよびクライアント・シークレットを確認してください。
- 正しいクライアントIDおよびクライアント・シークレットを使用してウォレット・ファイルを再生成します。
- Weblogic Serverに
asserter.war
ファイルを再デプロイします。
Oracle EBSコア・プロファイルを編集できない
Oracle EBSコア・プロファイルを編集できないというエラーが表示されます。これを解決するには:
- Oracle EBSで、Oracle EBSの「Oracle Applications管理」ページに移動します。「コア・サービス」タブをクリックし、「プロファイル」タブをクリックします。
- Oracle EBSアプリケーションに値が含まれていない場合、「編集」ボタンは無効になります。
- 「プロファイルの定義」をクリックし、プロファイル値を入力します。
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サーバーの再起動は、アサータを新しい接続で使用できるようにするための一時的な修正として機能します。
Inactive Connection Timeout
の値を指定します。次の値を設定したとき Inactive
Connection Timeout
0
(デフォルト値)に設定した場合、この機能は無効になります。Inactive Connection
Timeout
- Weblogic Server管理コンソールにサインインします。
- 「データ・ソース」に移動します。
- 変更するデータ・ソース名を検索し、「データ・ソース」をクリックします。
- 「接続プールの構成」をクリックします。
- 「Advanced」タブを展開します。
- 「非アクティブ接続タイムアウト」を新しい値に更新します。
たとえば、「Inactive Connection Timeout」は900 (15分)です。
これらの構成は、各顧客の環境に固有です。負荷テストを環境で実行し、結果に基づいて構成を調整することをお薦めします。
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.properties
のebs.ds.name
パラメータが、EBSAsserterのWebLogicで作成されたデータソースの名前と同じではありません。
これを解決するには、ebs.ds.name
値セットをWebLogicで作成したデータソース名と同じ値に設定します。